Array
Creation
class User {
public numbers: number[];
}
const numbersField = new NumberArrayField();
const USER_META = new ObjectMeta({
builder: User,
fields: {
numbers: numbersField
}
});
const values = [
{
numbers: [1, 2, 3, 4, 5]
},
{
numbers: {}
}
];
const result = JTC.convert({
id: `Array`,
meta: new ObjectArrayMeta({ meta: USER_META }),
values,
});
const log = JTC.log.asString(result.tree);
/* 1 (EXCLUDED) -> {...} | Validation failed for all fields
1 (EXCLUDED) -> numbers -> {...} | Expected array, but got object
*/
console.log(log);
Validation
class User {
public numbers: number[];
}
const numbersField = new NumberArrayField({
/* Minimal array size */
minSize: 2,
/* Maximum array size */
maxSize: 5,
/* Entry validation config */
entry: {
isNullable: true,
min: 2,
max: 3,
}
});
const USER_META = new ObjectMeta({
builder: User,
fields: {
numbers: numbersField
}
});
const values = [
{
numbers: [1, 2, 3, null, 4, 5]
}
];
const result = JTC.convert({
id: `Number Array`,
meta: new ObjectArrayMeta({ meta: USER_META }),
values,
});
const log = JTC.log.asString(result.tree);
/* 0 -> numbers -> 0 -> 1 | Smaller than expected(2)
0 -> numbers -> 4 -> 4 | Bigger than expected(3)
0 -> numbers -> 5 -> 5 | Bigger than expected(3)
0 -> numbers -> INSTANCE -> [...] | Size(6) is more than expected(5)
*/
console.log(log);
Types
Each data type have specific class which describes array of such data.
Last updated
Was this helpful?