@grandlinex/bundle-sqlight
Version:
> SQLight support GrandlineX using better-sqlite3
32 lines (31 loc) • 1.18 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = mappingWithDataType;
const resolveDBType_js_1 = __importDefault(require("./resolveDBType.js"));
function mappingWithDataType(meta, out, key) {
if (!meta.dataType) {
throw new Error('DataType not set');
}
if (meta.dataType === 'serial') {
out.push(`${String(key)} INTEGER AUTOINCREMENT NOT NUL`);
}
else {
let canBeNull = `${meta.canBeNull ? '' : ' NOT NULL'}`;
if (meta.primaryKey) {
canBeNull = ' NOT NULL PRIMARY KEY';
}
const unique = `${meta.unique ? ' UNIQUE' : ''}`;
let foreignKey;
if (meta.foreignKey && !meta.foreignKey.schema) {
foreignKey = ` REFERENCES ${meta.foreignKey.relation}(${meta.foreignKey.key})`;
}
else {
foreignKey = '';
}
const dbType = (0, resolveDBType_js_1.default)(meta.dataType);
out.push(`${String(key)} ${dbType}${foreignKey}${canBeNull}${unique}`);
}
}