ts-convict
Version:
Model style decorators for your convict config.
28 lines (27 loc) • 1.02 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Property = exports.Config = void 0;
const Reflector_1 = __importDefault(require("./Reflector"));
function Config(opts = {}) {
return (constructor) => {
Reflector_1.default.setConvictMetaForClass(opts, constructor);
};
}
exports.Config = Config;
function Property(schemaObj) {
return (target, propertyName) => {
if (typeof schemaObj === "object" &&
typeof schemaObj.format === "undefined") {
const tsType = Reflector_1.default.getTsType(target, propertyName);
if (tsType) {
schemaObj.format = tsType;
}
}
Reflector_1.default.setConvictMetaForProperty(schemaObj, target, propertyName);
Reflector_1.default.setPropertyForClass(target, propertyName);
};
}
exports.Property = Property;