joiful
Version:
TypeScript Declarative Validation. Decorate your class properties to validate them using Joi.
22 lines • 1.26 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createObjectPropertyDecorator = exports.getObjectSchemaModifierProviders = void 0;
const core_1 = require("../core");
const common_1 = require("./common");
const any_1 = require("./any");
function getObjectSchemaModifierProviders(getJoi) {
const result = Object.assign(Object.assign({}, any_1.getAnySchemaModifierProviders(getJoi)), { keys: (keyShemaMap) => ({ schema }) => schema.keys((typeof keyShemaMap === 'function') ?
keyShemaMap(getJoi()) :
keyShemaMap) });
return result;
}
exports.getObjectSchemaModifierProviders = getObjectSchemaModifierProviders;
const createObjectPropertyDecorator = (options, joifulOptions) => (common_1.createPropertyDecorator()(({ joi, target, propertyKey }) => {
const elementType = (options && options.objectClass) ?
options.objectClass :
Reflect.getMetadata('design:type', target, propertyKey);
const schema = ((elementType && elementType !== Object) && core_1.getJoiSchema(elementType, joi)) || joi.object();
return schema;
}, getObjectSchemaModifierProviders, joifulOptions));
exports.createObjectPropertyDecorator = createObjectPropertyDecorator;
//# sourceMappingURL=object.js.map
;