@tunnel-cast/tunnel-cast
Version:
<br>
27 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.decoratorAdapter = void 0;
require("reflect-metadata");
const constants_1 = require("../../constants");
function decoratorAdapter(fieldProcedure) {
return function (target, propertyKey) {
return defineFieldDecoratorMetadata(fieldProcedure, target, propertyKey);
};
}
exports.decoratorAdapter = decoratorAdapter;
function defineFieldDecoratorMetadata(fieldProcedure, target, propertyKey) {
let fieldMetadata = [];
let fieldsList = new Map();
if (Reflect.hasMetadata(constants_1.CAST_FIELD_METADATA, target, propertyKey)) {
fieldMetadata = Reflect.getMetadata(constants_1.CAST_FIELD_METADATA, target, propertyKey);
}
if (Reflect.hasMetadata(constants_1.CAST_DECORATED_FIELDS_LIST, target)) {
fieldsList = Reflect.getMetadata(constants_1.CAST_DECORATED_FIELDS_LIST, target);
}
fieldProcedure.fieldName = propertyKey;
fieldMetadata.push(fieldProcedure);
Reflect.defineMetadata(constants_1.CAST_FIELD_METADATA, fieldMetadata, target, propertyKey);
!fieldsList.has(propertyKey) ? fieldsList.set(propertyKey, fieldsList.size + 1) : 0;
Reflect.defineMetadata(constants_1.CAST_DECORATED_FIELDS_LIST, fieldsList, target);
}
//# sourceMappingURL=decorator-adapter.js.map