firebird-orm
Version:
Um ORM elegante e tipado para Firebird
45 lines (44 loc) • 1.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.PRIMARY_COLUMN_METADATA_KEY = exports.COLUMN_METADATA_KEY = exports.ENTITY_METADATA_KEY = void 0;
exports.Entity = Entity;
exports.Column = Column;
exports.PrimaryGeneratedColumn = PrimaryGeneratedColumn;
require("reflect-metadata");
exports.ENTITY_METADATA_KEY = Symbol('entity');
exports.COLUMN_METADATA_KEY = Symbol('column');
exports.PRIMARY_COLUMN_METADATA_KEY = Symbol('primary');
function Entity(options = {}) {
return (target) => {
Reflect.defineMetadata(exports.ENTITY_METADATA_KEY, {
name: options.name || target.name.toLowerCase(),
target
}, target);
};
}
function Column(options = {}) {
return (target, propertyKey) => {
const columns = Reflect.getMetadata(exports.COLUMN_METADATA_KEY, target.constructor) || [];
columns.push({
name: options.name || propertyKey,
propertyKey,
type: options.type,
nullable: options.nullable,
length: options.length
});
Reflect.defineMetadata(exports.COLUMN_METADATA_KEY, columns, target.constructor);
};
}
function PrimaryGeneratedColumn() {
return (target, propertyKey) => {
const columns = Reflect.getMetadata(exports.PRIMARY_COLUMN_METADATA_KEY, target.constructor) || [];
columns.push({
name: propertyKey,
propertyKey,
type: 'number',
isPrimary: true,
isGenerated: true
});
Reflect.defineMetadata(exports.PRIMARY_COLUMN_METADATA_KEY, columns, target.constructor);
};
}
;