@lambda-group/charydbis
Version:
๐ NodeJS ScyllaDB ORM. ๐งช๐ง
75 lines (66 loc) โข 2.42 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});
var _chunk3I6T4JNZjs = require('./chunk-3I6T4JNZ.js');
var _chunkKI3NM7CIjs = require('./chunk-KI3NM7CI.js');
// src/decorators/column.ts
require('reflect-metadata');
var ColumnType;
(function(ColumnType2) {
ColumnType2["TEXT"] = "TEXT";
ColumnType2["ASCII"] = "ASCII";
ColumnType2["FLOAT"] = "FLOAT";
ColumnType2["TIMESTAMP"] = "TIMESTAMP";
ColumnType2["DATE"] = "DATE";
ColumnType2["UUID"] = "UUID";
})(ColumnType || (ColumnType = exports.ColumnType = {}));
var getColumnType = /* @__PURE__ */ _chunkKI3NM7CIjs.__name.call(void 0, (type) => {
const lowerType = type == null ? void 0 : type.toLowerCase();
switch (lowerType) {
case "string":
return "TEXT";
case "number":
return "FLOAT";
case "date":
return "DATE";
case "uuid":
return "UUID";
default:
return "TEXT";
}
}, "getColumnType");
function Column(options) {
return (target, key) => {
const constructor_ = target.constructor;
if (!constructor_.columns) constructor_.columns = [];
const propType = Reflect.getMetadata("design:type", target, key);
const propColumnType = getColumnType(propType.name);
let columnName = _chunk3I6T4JNZjs.snakeCaseTransform.call(void 0, key);
let columnType = propColumnType;
let isPartitionKey = false;
let isClusteringKey = false;
let clusteringKeySequence = 0;
if (typeof options === "string") columnName = options;
else if (typeof options === "object") {
columnName = options.name || key;
columnType = options.type || propColumnType;
if (options.partitionKey) isPartitionKey = options.partitionKey;
if (options.clusteringKey) {
isClusteringKey = options.clusteringKey;
clusteringKeySequence = options.clusteringKeySequence || 0;
}
}
constructor_.columns.push(_chunkKI3NM7CIjs.__spreadValues.call(void 0, _chunkKI3NM7CIjs.__spreadValues.call(void 0, _chunkKI3NM7CIjs.__spreadValues.call(void 0, {
key,
columnName,
columnType
}, isPartitionKey && {
partitionKey: true
}), isClusteringKey && {
clusteringKey: true
}), isClusteringKey && {
clusteringKeySequence
}));
};
}
_chunkKI3NM7CIjs.__name.call(void 0, Column, "Column");
exports.ColumnType = ColumnType; exports.Column = Column;
//# sourceMappingURL=chunk-ZIY2LTNA.js.map