@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.11 kB
JavaScript
const e=(e,t,n)=>e.addColumn(t.column.name,t.column.type,e=>{let r=e;if(t.column.primary&&(r=n.primaryKeyColumnBuilder(r)),t.column.nullable===!1&&(r=r.notNull()),t.column.default!==void 0){let e=n.formatDefaultValue(t.column.type,t.column.default);e!==null&&(r=r.defaultTo(e))}return t.column.foreignKey&&(r=r.references(`${t.column.foreignKey.table}.${t.column.foreignKey.column}`),t.column.foreignKey.onDelete&&(r=r.onDelete(t.column.foreignKey.onDelete)),t.column.foreignKey.onUpdate&&(r=r.onUpdate(t.column.foreignKey.onUpdate))),r}),t=(e,t)=>e.dropColumn(t.columnName),n=(e,t,n)=>{if(!n.supports(`alterColumn`))return e;let r=e;return t.changes.nullable!==void 0&&(r=r.alterColumn(t.column.name,e=>t.changes.nullable?.to?e.dropNotNull():e.setNotNull())),t.changes.default!==void 0&&(r=r.alterColumn(t.column.name,e=>{if(t.changes.default?.to===void 0||t.changes.default?.to===null)return e.dropDefault();let r=n.formatDefaultValue(t.column.type,t.changes.default?.to);return r===null?e:e.setDefault(r)})),r};export{e as addColumn,t as dropColumn,n as modifyColumn};
//# sourceMappingURL=column-builder.mjs.map