@sqb/connect
Version:
Multi-dialect database connection framework written with TypeScript
33 lines (32 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ColumnFieldMetadata = void 0;
const tslib_1 = require("tslib");
const lodash_1 = tslib_1.__importDefault(require("lodash"));
var ColumnFieldMetadata;
(function (ColumnFieldMetadata) {
function create(entity, name, options = {}) {
const result = {
kind: 'column',
entity,
name,
fieldName: name,
};
if (options)
ColumnFieldMetadata.assign(result, options);
return result;
}
ColumnFieldMetadata.create = create;
function assign(target, options) {
Object.assign(target, lodash_1.default.omit(options, ['entity', 'name', 'kind']));
}
ColumnFieldMetadata.assign = assign;
function checkEnumValue(col, v) {
if (v === undefined || !col.enum || (v == null && !col.notNull))
return;
const enumKeys = Array.isArray(col.enum) ? col.enum : Object.keys(col.enum);
if (!enumKeys.includes(v))
throw new Error(`${col.entity.name}.${col.name} value must be one of (${enumKeys})`);
}
ColumnFieldMetadata.checkEnumValue = checkEnumValue;
})(ColumnFieldMetadata || (exports.ColumnFieldMetadata = ColumnFieldMetadata = {}));