CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
common.js59 linesDownload Raw Back to columns
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