@sqb/connect
Version:
Multi-dialect database connection framework written with TypeScript
29 lines (28 loc) • 1.05 kB
JavaScript
import _ from 'lodash';
export 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, _.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 || (ColumnFieldMetadata = {}));