UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

59 lines 1.69 kB
import { ColumnBuilder } from "../../column-builder.js"; import { Column } from "../../column.js"; import { entityKind } from "../../entity.js"; import { ForeignKeyBuilder } from "../foreign-keys.js"; import { uniqueKeyName } from "../unique-constraint.js"; class SQLiteColumnBuilder extends ColumnBuilder { static [entityKind] = "SQLiteColumnBuilder"; foreignKeyConfigs = []; references(ref, actions = {}) { this.foreignKeyConfigs.push({ ref, actions }); return this; } unique(name) { this.config.isUnique = true; this.config.uniqueName = name; return this; } generatedAlwaysAs(as, config) { this.config.generated = { as, type: "always", mode: config?.mode ?? "virtual" }; return this; } /** @internal */ buildForeignKeys(column, table) { return this.foreignKeyConfigs.map(({ ref, actions }) => { return ((ref2, actions2) => { const builder = new ForeignKeyBuilder(() => { const foreignColumn = ref2(); return { columns: [column], foreignColumns: [foreignColumn] }; }); if (actions2.onUpdate) { builder.onUpdate(actions2.onUpdate); } if (actions2.onDelete) { builder.onDelete(actions2.onDelete); } return builder.build(table); })(ref, actions); }); } } class SQLiteColumn extends Column { constructor(table, config) { if (!config.uniqueName) { config.uniqueName = uniqueKeyName(table, [config.name]); } super(table, config); this.table = table; } static [entityKind] = "SQLiteColumn"; } export { SQLiteColumn, SQLiteColumnBuilder }; //# sourceMappingURL=common.js.map