AK-21/Graphite-Industrial-Intelligence
0
1import { ColumnBuilder } from "../../column-builder.js";2import { Column } from "../../column.js";3import { entityKind } from "../../entity.js";4import { ForeignKeyBuilder } from "../foreign-keys.js";5import { uniqueKeyName } from "../unique-constraint.js";6class SQLiteColumnBuilder extends ColumnBuilder {7 static [entityKind] = "SQLiteColumnBuilder";8 foreignKeyConfigs = [];9 references(ref, actions = {}) {10 this.foreignKeyConfigs.push({ ref, actions });11 return this;12 }13 unique(name) {14 this.config.isUnique = true;15 this.config.uniqueName = name;16 return this;17 }18 generatedAlwaysAs(as, config) {19 this.config.generated = {20 as,21 type: "always",22 mode: config?.mode ?? "virtual"23 };24 return this;25 }26 /** @internal */27 buildForeignKeys(column, table) {28 return this.foreignKeyConfigs.map(({ ref, actions }) => {29 return ((ref2, actions2) => {30 const builder = new ForeignKeyBuilder(() => {31 const foreignColumn = ref2();32 return { columns: [column], foreignColumns: [foreignColumn] };33 });34 if (actions2.onUpdate) {35 builder.onUpdate(actions2.onUpdate);36 }37 if (actions2.onDelete) {38 builder.onDelete(actions2.onDelete);39 }40 return builder.build(table);41 })(ref, actions);42 });43 }44}45class SQLiteColumn extends Column {46 constructor(table, config) {47 if (!config.uniqueName) {48 config.uniqueName = uniqueKeyName(table, [config.name]);49 }50 super(table, config);51 this.table = table;52 }53 static [entityKind] = "SQLiteColumn";54}55export {56 SQLiteColumn,57 SQLiteColumnBuilder58};59//# sourceMappingURL=common.js.map