validata
Version:
Type safe data validation and sanitization
65 lines • 2.48 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const array_1 = require("../array");
const boolean_1 = require("../boolean");
const number_1 = require("../number");
const object_1 = require("../object");
const record_1 = require("../record");
const string_1 = require("../string");
const tuple_1 = require("../tuple");
const types_1 = require("../types");
const common_1 = require("./../common");
const sampleContract = {
maybeString: (0, string_1.maybeString)(),
myString: (0, string_1.isString)(),
numericString: (0, string_1.asString)(),
};
const sample = (0, object_1.isObject)(sampleContract);
console.log(JSON.stringify(sample.process({
maybeString: 123,
myString: 123,
numericString: 123,
})));
console.log(JSON.stringify(sample.process({
myString: '123',
numericString: 123,
})));
const sample2 = (0, array_1.isArray)((0, number_1.isNumber)({ min: 17 }), {
minLength: 1,
});
console.log(JSON.stringify(sample2.process([])));
console.log(JSON.stringify(sample2.process([1])));
console.log(sample2.process([102, 123]));
console.log(JSON.stringify(sample2.process([new Date()])));
const result = sample2.process([new Date()]);
if ((0, types_1.isIssue)(result)) {
console.log('Issues', result.issues);
}
else {
console.log('Accepted value', result.value);
}
const sample3 = (0, boolean_1.isBoolean)();
const sample31 = (0, boolean_1.asBoolean)();
console.log(JSON.stringify(sample3.process(true)));
console.log(JSON.stringify(sample31.process('true')));
const sample4 = (0, tuple_1.isTuple)([
(0, number_1.isNumber)(),
(0, string_1.asString)(),
]);
console.log(JSON.stringify(sample4.process(['foo', 'bar'])));
console.log(sample4.process([102, '123']));
console.log(sample4.process([102, 123]));
console.log(JSON.stringify(sample4.process([345])));
console.log(JSON.stringify(sample4.process([1, 2, 3])));
const sample5 = (0, record_1.isRecord)((0, number_1.asNumber)());
console.log(JSON.stringify(sample5.process({ foo: 'bar' })));
console.log(sample5.process({ foo: '123' }));
console.log(sample5.process({ foo: 123 }));
const sample6 = (0, common_1.isNullable)((0, string_1.isString)());
console.log(sample6.process(null));
console.log(sample6.process('asd'));
const sample7 = (0, common_1.asNullable)((0, string_1.isString)(), { default: null });
console.log(sample7.process(null));
console.log(sample7.process('asd'));
console.log(sample7.process(undefined));
//# sourceMappingURL=index.js.map
;