| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { entityKind } from "../entity.js";
- import { TableName } from "../table.utils.js";
- function unique(name) {
- return new UniqueOnConstraintBuilder(name);
- }
- function uniqueKeyName(table, columns) {
- return `${table[TableName]}_${columns.join("_")}_unique`;
- }
- class UniqueConstraintBuilder {
- constructor(columns, name) {
- this.name = name;
- this.columns = columns;
- }
- static [entityKind] = "GelUniqueConstraintBuilder";
- /** @internal */
- columns;
- /** @internal */
- nullsNotDistinctConfig = false;
- nullsNotDistinct() {
- this.nullsNotDistinctConfig = true;
- return this;
- }
- /** @internal */
- build(table) {
- return new UniqueConstraint(table, this.columns, this.nullsNotDistinctConfig, this.name);
- }
- }
- class UniqueOnConstraintBuilder {
- static [entityKind] = "GelUniqueOnConstraintBuilder";
- /** @internal */
- name;
- constructor(name) {
- this.name = name;
- }
- on(...columns) {
- return new UniqueConstraintBuilder(columns, this.name);
- }
- }
- class UniqueConstraint {
- constructor(table, columns, nullsNotDistinct, name) {
- this.table = table;
- this.columns = columns;
- this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));
- this.nullsNotDistinct = nullsNotDistinct;
- }
- static [entityKind] = "GelUniqueConstraint";
- columns;
- name;
- nullsNotDistinct = false;
- getName() {
- return this.name;
- }
- }
- export {
- UniqueConstraint,
- UniqueConstraintBuilder,
- UniqueOnConstraintBuilder,
- unique,
- uniqueKeyName
- };
- //# sourceMappingURL=unique-constraint.js.map
|