UNPKG

@grandlinex/bundle-postgresql

Version:
26 lines (25 loc) 909 B
import resolveDBType from './resolveDBType.js'; export default function mappingWithDataType(meta, out, key, schemaName) { if (!meta.dataType) { throw new Error('DataType not set'); } if (meta.dataType === 'serial') { out.push(`${String(key)} SERIAL 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) { foreignKey = ` REFERENCES ${meta.foreignKey.schema || schemaName}.${meta.foreignKey.relation}(${meta.foreignKey.key})`; } else { foreignKey = ''; } const dbType = resolveDBType(meta.dataType); out.push(`${String(key)} ${dbType}${foreignKey}${canBeNull}${unique}`); } }