Boolean

Creation

class User {
   public isAdmin: boolean;
}

const isAdminField = new BooleanField();

const USER_META = new ObjectMeta({
   builder: User,
   fields: {
      isAdmin: isAdminField,
   }
});

const values = [
   {
      isAdmin: true,
   },
   {
      isAdmin: 0,
   }
];

const result = JTC.convert({
   id: `Boolean`,
   meta: new ObjectArrayMeta({ meta: USER_META }),
   values,
});

const log = JTC.log.asString(result.tree);

console.log(result.converted.all);

/* 1 (EXCLUDED) -> {...} | Validation failed for all fields
   1 (EXCLUDED) -> isAdmin -> 0 | Expected boolean, but got number */
console.log(log);

Validation

class User {
   public isAdmin: boolean;
   public isAlive: boolean;
}

const isAdminField = new BooleanField({ mode: `FALSY` });
const isAliveField = new BooleanField({ mode: `TRUTHY` });

const USER_META = new ObjectMeta({
   builder: User,
   fields: {
      isAdmin: isAdminField,
      isAlive: isAliveField
   }
});

const values = [
   {
      isAdmin: false,
      isAlive: true,
   },
   {
      isAdmin: true,
      isAlive: true,
   },
   {
      isAdmin: false,
      isAlive: false,
   },
   {
      isAdmin: true,
      isAlive: false,
   },
];

const result = JTC.convert({
   id: `Boolean Truthy`,
   meta: new ObjectArrayMeta({ meta: USER_META }),
   values,
});

const validation = isAdminField.validate({ value: true });
const log = JTC.log.asString(result.tree);

console.log(result.converted.all);

/* 1 -> isAdmin -> true | Should always be falsy
   2 -> isAlive -> false | Should always be truthy
   3 -> isAdmin -> true | Should always be falsy
   3 -> isAlive -> false | Should always be truthy */
console.log(log);
console.log(validation.errors);
/* true */
console.log(validation.isInvalid);

Last updated

Was this helpful?