UNPKG

joiful

Version:

TypeScript Declarative Validation. Decorate your class properties to validate them using Joi.

43 lines 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAnyPropertyDecorator = exports.getAnySchemaModifierProviders = void 0; const common_1 = require("./common"); function getAnySchemaModifierProviders(getJoi) { const result = { allow: (value, ...values) => ({ schema }) => schema.allow(...(value instanceof Array ? [...value, ...values] : [value, ...values])), valid: (value, ...values) => ({ schema }) => schema.valid(...(value instanceof Array ? [...value, ...values] : [value, ...values])), only: () => ({ schema }) => schema.only(), equal: (value, ...values) => ({ schema }) => schema.equal(...(value instanceof Array ? [...value, ...values] : [value, ...values])), required: () => ({ schema }) => schema.required(), optional: () => ({ schema }) => schema.optional(), invalid: (value, ...values) => ({ schema }) => schema.invalid(value, ...values), disallow: (value, ...values) => ({ schema }) => schema.disallow(value, ...values), not: (value, ...values) => ({ schema }) => schema.not(value, ...values), forbidden: () => ({ schema }) => schema.forbidden(), strip: () => ({ schema }) => schema.strip(), description: (description) => ({ schema }) => schema.description(description), note: (notes) => ({ schema }) => schema.note(notes), tag: (tag, ...tags) => ({ schema }) => schema.tag(...(tag instanceof Array ? [...tag, ...tags] : [tag, ...tags])), meta: (meta) => ({ schema }) => schema.meta(meta), example: (value) => ({ schema }) => schema.example(value), unit: (name) => ({ schema }) => schema.unit(name), options: (options) => ({ schema }) => schema.options(options), strict: (isStrict = true) => ({ schema }) => schema.strict(isStrict), default: (value) => ({ schema }) => schema.default(value), label: (label) => ({ schema }) => schema.label(label), raw: (isRaw = true) => ({ schema }) => schema.raw(isRaw), empty: (schema) => ({ schema: existingSchema }) => existingSchema.empty(schema), error: (err) => ({ schema }) => { if (!schema.error) { throw new common_1.NotImplemented('Joi.error'); } return schema.error(err); }, custom: (schemaBuilder) => ({ schema }) => schemaBuilder({ schema, joi: getJoi() }), }; return result; } exports.getAnySchemaModifierProviders = getAnySchemaModifierProviders; const createAnyPropertyDecorator = (joifulOptions) => (common_1.createPropertyDecorator()(({ joi }) => joi.any(), getAnySchemaModifierProviders, joifulOptions)); exports.createAnyPropertyDecorator = createAnyPropertyDecorator; //# sourceMappingURL=any.js.map