pims
Version:
An ORM for document-oriented database systems, written in and for TypeScript.
30 lines • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const model_1 = require("./model");
function Column(info) {
return (target, key, descriptor) => {
let computed = false;
if (descriptor) {
if (!descriptor.get) {
throw new Error('Cannot apply column decorator to methods');
}
computed = true;
}
const columnInfo = Object.assign({ modelKey: String(key), key: String(key), tags: [], computed }, info);
const modelInfo = model_1.createModelInfo(target.constructor, {
columns: [columnInfo],
tags: new Map(columnInfo.tags.map(tag => [
tag,
new Set([columnInfo.key]),
])),
});
columnInfo.secondary &&
modelInfo.indexes.push({
name: columnInfo.key,
keys: [columnInfo.key],
});
columnInfo.primary && (modelInfo.primaryKey = columnInfo.key);
};
}
exports.Column = Column;
//# sourceMappingURL=column.js.map