UNPKG

mongo-ts-struct

Version:

Mongoose wrapper for Typescript supports

42 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const mongoose_1 = require("mongoose"); const helpers_1 = require("../../../../helpers"); const to_schema_1 = require("../../../to-schema"); const create_property_decorator_1 = require("../create-property-decorator"); /** * @description * using the standard syntax: * { type: [{ type: <TYPE>, default: [] }] } * where <TYPE> is the one of Schema.Types.(String | Number | Boolean | Mixed | TypedSchemaClass) * @param type */ function ArrayOf(type, definition = {}) { return create_property_decorator_1.createPropertyDecorator('ArrayOf', (targetPrototype, propertyName) => { return { type: [{ type: toMatchTypes(type) }], definition }; }); } exports.ArrayOf = ArrayOf; const toMatchTypes = (type) => { switch (type) { case 'string': return mongoose_1.Schema.Types.String; case 'number': return mongoose_1.Schema.Types.Number; case 'boolean': return mongoose_1.Schema.Types.Boolean; case 'any': return mongoose_1.Schema.Types.Mixed; default: if (helpers_1.isTypedSchemaClass(type)) { return to_schema_1.toSchema(type); } else { return mongoose_1.Schema.Types.Mixed; } } }; //# sourceMappingURL=array-of.js.map