UNPKG

@grandlinex/bundle-sqlight

Version:

> SQLight support GrandlineX using better-sqlite3

26 lines (25 loc) 899 B
import resolveDBType from './resolveDBType.js'; export default 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 = resolveDBType(meta.dataType); out.push(`${String(key)} ${dbType}${foreignKey}${canBeNull}${unique}`); } }