slim-ef
Version:
An implementation of basic entity framework functionnalities in typescript
41 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEntitySet = exports.getEntitySetKeys = exports.getEntitySchema = exports.DbSetEntity = exports.EntityRepository = void 0;
const repositoryMetadataKey = Symbol('entityRepository:key');
const entityMetadataKey = Symbol('entity:key');
const propMetadataKey = Symbol('prop:key');
const propListPropertyName = 'prop:list';
function EntityRepository(entity) {
return (target) => {
Reflect.defineMetadata(repositoryMetadataKey, entity, target);
Reflect.defineMetadata(entityMetadataKey, entity, entity);
};
}
exports.EntityRepository = EntityRepository;
function DbSetEntity(entity) {
return (target, propertykey) => {
Reflect.defineMetadata(repositoryMetadataKey, entity, target.constructor, propertykey);
const props = Reflect.getOwnMetadata(propMetadataKey, target.constructor, propListPropertyName) || [];
props.push(propertykey);
Reflect.defineMetadata(propMetadataKey, props, target.constructor, propListPropertyName);
EntityRepository(entity)(target);
};
}
exports.DbSetEntity = DbSetEntity;
function getEntitySchema(target) {
return (Reflect.getOwnMetadata(repositoryMetadataKey, target.constructor) ||
Reflect.getOwnMetadata(entityMetadataKey, target.constructor) ||
Reflect.getOwnMetadata(repositoryMetadataKey, target) ||
Reflect.getOwnMetadata(entityMetadataKey, target));
}
exports.getEntitySchema = getEntitySchema;
function getEntitySetKeys(target) {
return Reflect.getOwnMetadata(propMetadataKey, target.constructor, propListPropertyName);
}
exports.getEntitySetKeys = getEntitySetKeys;
function getEntitySet(target, propertykey) {
return (Reflect.getOwnMetadata(entityMetadataKey, target.constructor, propertykey) ||
Reflect.getOwnMetadata(repositoryMetadataKey, target.constructor, propertykey));
}
exports.getEntitySet = getEntitySet;
//# sourceMappingURL=repository.decorator.js.map