UNPKG

express-cargo

Version:

express middleware for class-based request parsing

54 lines (53 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: Object.getOwnPropertyDescriptor(all, name).get }); } _export(exports, { get Array () { return Array; }, get Default () { return Default; }, get Optional () { return Optional; } }); const _metadata = require("./metadata"); const TYPE_MAP = { string: String, number: Number, boolean: Boolean, date: Date }; function Optional() { return (target, propertyKey)=>{ const classMeta = new _metadata.CargoClassMetadata(target); const fieldMeta = classMeta.getFieldMetadata(propertyKey); fieldMeta.setOptional(true); classMeta.setFieldMetadata(propertyKey, fieldMeta); }; } function Array(elementType) { return (target, propertyKey)=>{ const classMeta = new _metadata.CargoClassMetadata(target); const fieldMeta = classMeta.getFieldMetadata(propertyKey); const actualType = typeof elementType === 'string' ? TYPE_MAP[elementType] : elementType; fieldMeta.setArrayElementType(actualType); classMeta.setFieldMetadata(propertyKey, fieldMeta); }; } function Default(value) { return (target, propertyKey)=>{ const classMeta = new _metadata.CargoClassMetadata(target); const fieldMeta = classMeta.getFieldMetadata(propertyKey); fieldMeta.setDefault(value); classMeta.setFieldMetadata(propertyKey, fieldMeta); }; }