create-monolayer-app 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template/_gitignore +5 -0
- package/template/lib/db/client.ts +30 -0
- package/template/lib/db/db.ts +4 -0
- package/template/oxlint.config.ts +11 -0
- package/template/package.json +23 -3
- package/template/tsconfig.json +3 -2
- package/template/vendor/kysely-dsql/dsql/adapter.ts +15 -0
- package/template/vendor/kysely-dsql/dsql/alter-column-builder.ts +105 -0
- package/template/vendor/kysely-dsql/dsql/alter-table-builders.ts +195 -0
- package/template/vendor/kysely-dsql/dsql/compatibility-rules.ts +235 -0
- package/template/vendor/kysely-dsql/dsql/create-column-builder.ts +187 -0
- package/template/vendor/kysely-dsql/dsql/create-table-builder.ts +115 -0
- package/template/vendor/kysely-dsql/dsql/dialect.ts +41 -0
- package/template/vendor/kysely-dsql/dsql/dsql-kysely.ts +93 -0
- package/template/vendor/kysely-dsql/dsql/dsql-token.ts +29 -0
- package/template/vendor/kysely-dsql/dsql/index-view-builders.ts +206 -0
- package/template/vendor/kysely-dsql/dsql/pool.ts +40 -0
- package/template/vendor/kysely-dsql/dsql/query-compiler-error.ts +18 -0
- package/template/vendor/kysely-dsql/dsql/query-compiler.test.ts +765 -0
- package/template/vendor/kysely-dsql/dsql/query-compiler.ts +259 -0
- package/template/vendor/kysely-dsql/dsql/query-validation.test.ts +518 -0
- package/template/vendor/kysely-dsql/dsql/query-validation.ts +128 -0
- package/template/vendor/kysely-dsql/dsql/raw-statement.test.ts +167 -0
- package/template/vendor/kysely-dsql/dsql/raw-statement.ts +51 -0
- package/template/vendor/kysely-dsql/dsql/schema-module.ts +167 -0
- package/template/vendor/kysely-dsql/dsql/types.ts +4 -0
- package/template/vendor/kysely-dsql/generator/create-migration.ts +86 -0
- package/template/vendor/kysely-dsql/generator/generate-types-from-pglite.ts +40 -0
- package/template/vendor/kysely-dsql/generator/generated-types-writer.ts +73 -0
- package/template/vendor/kysely-dsql/generator/migration-file.ts +73 -0
- package/template/vendor/kysely-dsql/generator/type-generator.ts +330 -0
- package/template/vendor/kysely-dsql/plugins/auto-updated-at.plugin.ts +139 -0
- package/template/vendor/kysely-dsql/plugins/index.ts +10 -0
- package/template/vendor/kysely-dsql/plugins/soft-delete.plugin.ts +217 -0
- package/template/vitest.config.ts +23 -0
package/package.json
CHANGED
package/template/_gitignore
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import assert from "node:assert";
|
|
2
|
+
|
|
3
|
+
import { PGlite } from "@electric-sql/pglite";
|
|
4
|
+
import { PGliteDialect } from "kysely";
|
|
5
|
+
|
|
6
|
+
import { DSQLDialect } from "../../vendor/kysely-dsql/dsql/dialect";
|
|
7
|
+
import { DSQLKysely } from "../../vendor/kysely-dsql/dsql/dsql-kysely";
|
|
8
|
+
import { createDSQLPool } from "../../vendor/kysely-dsql/dsql/pool";
|
|
9
|
+
import plugins from "../../vendor/kysely-dsql/plugins";
|
|
10
|
+
import type { Database } from "./db.js";
|
|
11
|
+
|
|
12
|
+
function dialect() {
|
|
13
|
+
if (process.env.NODE_ENV === "production") {
|
|
14
|
+
const endpoint = process.env.CLUSTER_ENDPOINT;
|
|
15
|
+
assert.ok(endpoint);
|
|
16
|
+
return new DSQLDialect({
|
|
17
|
+
pool: createDSQLPool(endpoint),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return new PGliteDialect({
|
|
21
|
+
pglite: new PGlite(
|
|
22
|
+
`./.pglite_${process.env.NODE_ENV === "test" ? "test" : "development"}`
|
|
23
|
+
),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const db: DSQLKysely<Database> = new DSQLKysely<Database>({
|
|
28
|
+
dialect: dialect(),
|
|
29
|
+
plugins,
|
|
30
|
+
});
|
|
@@ -29,6 +29,17 @@ export default defineConfig({
|
|
|
29
29
|
"no-use-before-define": "off",
|
|
30
30
|
"no-empty-pattern": "off",
|
|
31
31
|
"react-doctor/rendering-svg-precision": "off",
|
|
32
|
+
"arrow-body-style": "off",
|
|
32
33
|
},
|
|
34
|
+
overrides: [
|
|
35
|
+
{
|
|
36
|
+
files: ["lib/db/migrations/*.ts"],
|
|
37
|
+
rules: {
|
|
38
|
+
"typescript/no-explicit-any": "off",
|
|
39
|
+
"no-unused-vars": "off",
|
|
40
|
+
"unicorn/filename-case": "off",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
],
|
|
33
44
|
settings: jsPluginSettings,
|
|
34
45
|
});
|
package/template/package.json
CHANGED
|
@@ -7,28 +7,48 @@
|
|
|
7
7
|
"dev": "react-router dev",
|
|
8
8
|
"start": "react-router-serve ./build/server/index.js",
|
|
9
9
|
"check": "react-router typegen && tsc && ultracite check",
|
|
10
|
-
"fix": "ultracite fix"
|
|
10
|
+
"fix": "ultracite fix",
|
|
11
|
+
"migrate:latest": "kysely migrate:latest",
|
|
12
|
+
"postmigrate:latest": "npm run db:create-types",
|
|
13
|
+
"migrate:up": "kysely migrate:up",
|
|
14
|
+
"postmigrate:up": "npm run db:create-types",
|
|
15
|
+
"migrate:down": "kysely migrate:down",
|
|
16
|
+
"postmigrate:down": "npm run db:create-types",
|
|
17
|
+
"migrate:list": "kysely migrate:list",
|
|
18
|
+
"migrate:make": "tsx vendor/kysely-dsql/generator/create-migration.ts",
|
|
19
|
+
"db:create-types": "tsx vendor/kysely-dsql/generator/generate-types-from-pglite.ts"
|
|
11
20
|
},
|
|
12
21
|
"dependencies": {
|
|
22
|
+
"@aws-sdk/dsql-signer": "^3.1126.0",
|
|
23
|
+
"@aws/aurora-dsql-node-postgres-connector": "^0.1.9",
|
|
24
|
+
"@kysera/infra": "^0.10.0",
|
|
13
25
|
"@react-router/node": "^8",
|
|
14
26
|
"@react-router/serve": "^8",
|
|
27
|
+
"@types/pg": "^8.23.1",
|
|
15
28
|
"isbot": "^5.1.36",
|
|
29
|
+
"kysely": "^0.29.5",
|
|
30
|
+
"pg": "^8.23.0",
|
|
16
31
|
"react": "^19.2.7",
|
|
17
32
|
"react-dom": "^19.2.7",
|
|
18
33
|
"react-router": "^8"
|
|
19
34
|
},
|
|
20
35
|
"devDependencies": {
|
|
36
|
+
"@electric-sql/pglite": "^0.5.8",
|
|
37
|
+
"@electric-sql/pglite-socket": "^0.2.11",
|
|
21
38
|
"@react-router/dev": "^8",
|
|
22
39
|
"@tailwindcss/vite": "^4.2.2",
|
|
23
|
-
"@types/node": "^
|
|
40
|
+
"@types/node": "^24",
|
|
24
41
|
"@types/react": "^19.2.14",
|
|
25
42
|
"@types/react-dom": "^19.2.3",
|
|
43
|
+
"kysely-ctl": "^0.21.0",
|
|
26
44
|
"oxfmt": "^0.65.0",
|
|
27
45
|
"oxlint": "^1.80.0",
|
|
28
46
|
"oxlint-plugin-react-doctor": "^0.9.12",
|
|
29
47
|
"tailwindcss": "^4.2.2",
|
|
48
|
+
"tsx": "^4.23.13",
|
|
30
49
|
"typescript": "^7.0.2",
|
|
31
50
|
"ultracite": "^7.10.7",
|
|
32
|
-
"vite": "^8.0.3"
|
|
51
|
+
"vite": "^8.0.3",
|
|
52
|
+
"vitest": "^5.0.0"
|
|
33
53
|
}
|
|
34
54
|
}
|
package/template/tsconfig.json
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
"**/*",
|
|
4
4
|
"**/.server/**/*",
|
|
5
5
|
"**/.client/**/*",
|
|
6
|
-
".react-router/types/**/*"
|
|
6
|
+
".react-router/types/**/*",
|
|
7
|
+
".config/*"
|
|
7
8
|
],
|
|
8
9
|
"compilerOptions": {
|
|
9
10
|
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
|
|
10
|
-
"lib": ["DOM", "DOM.Iterable", "ES2022"],
|
|
11
|
+
"lib": ["DOM", "DOM.Iterable", "ES2022", "ES2023"],
|
|
11
12
|
"types": ["node", "vite/client"],
|
|
12
13
|
"target": "ES2022",
|
|
13
14
|
"module": "ES2022",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// oxlint-disable typescript/no-explicit-any class-methods-use-this require-await
|
|
2
|
+
import { PostgresAdapter } from "kysely";
|
|
3
|
+
import type { MigrationLockOptions } from "kysely";
|
|
4
|
+
|
|
5
|
+
import type { AnyKysely } from "./types";
|
|
6
|
+
|
|
7
|
+
export class DQSLAdapter extends PostgresAdapter {
|
|
8
|
+
async acquireMigrationLock(_db: AnyKysely, _opt: MigrationLockOptions) {
|
|
9
|
+
console.log("ACQUIRE");
|
|
10
|
+
}
|
|
11
|
+
// oxlint-disable-next-line require-await class-methods-use-this
|
|
12
|
+
async releaseMigrationLock(_db: AnyKysely, _opt: MigrationLockOptions) {
|
|
13
|
+
console.log("RELEASE");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// oxlint-disable max-classes-per-file
|
|
2
|
+
import { AlterColumnBuilder, ColumnDefinitionBuilder } from "kysely";
|
|
3
|
+
import type { AlteredColumnBuilder } from "kysely";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Restricts column definition options when adding columns during table alteration.
|
|
7
|
+
*
|
|
8
|
+
* Aurora DSQL only allows the IF NOT EXISTS modifier when adding columns.
|
|
9
|
+
*/
|
|
10
|
+
// eslint-disable-next-line max-classes-per-file
|
|
11
|
+
export class DSQLAlterAddColumnDefinitionBuilder extends ColumnDefinitionBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* Adds the IF NOT EXISTS clause when adding a column.
|
|
14
|
+
*
|
|
15
|
+
* @returns The restricted column definition builder.
|
|
16
|
+
*/
|
|
17
|
+
declare ifNotExists: () => DSQLAlterAddColumnDefinitionBuilder;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Calls a custom transformation function.
|
|
21
|
+
*
|
|
22
|
+
* @param func - The transformation callback.
|
|
23
|
+
* @returns The callback result.
|
|
24
|
+
*/
|
|
25
|
+
declare $call: <T>(func: (qb: this) => T) => T;
|
|
26
|
+
|
|
27
|
+
declare primaryKey: (this: never, ...args: never[]) => never;
|
|
28
|
+
declare unique: (this: never, ...args: never[]) => never;
|
|
29
|
+
declare nullsNotDistinct: (this: never, ...args: never[]) => never;
|
|
30
|
+
declare notNull: (this: never, ...args: never[]) => never;
|
|
31
|
+
declare defaultTo: (this: never, ...args: never[]) => never;
|
|
32
|
+
declare check: (this: never, ...args: never[]) => never;
|
|
33
|
+
declare references: (this: never, ...args: never[]) => never;
|
|
34
|
+
declare onDelete: (this: never, ...args: never[]) => never;
|
|
35
|
+
declare onUpdate: (this: never, ...args: never[]) => never;
|
|
36
|
+
declare autoIncrement: (this: never, ...args: never[]) => never;
|
|
37
|
+
declare identity: (this: never, ...args: never[]) => never;
|
|
38
|
+
declare unsigned: (this: never, ...args: never[]) => never;
|
|
39
|
+
declare generatedAlwaysAs: (this: never, ...args: never[]) => never;
|
|
40
|
+
declare generatedAlwaysAsIdentity: (this: never, ...args: never[]) => never;
|
|
41
|
+
declare generatedByDefaultAsIdentity: (
|
|
42
|
+
this: never,
|
|
43
|
+
...args: never[]
|
|
44
|
+
) => never;
|
|
45
|
+
declare stored: (this: never, ...args: never[]) => never;
|
|
46
|
+
declare modifyFront: (this: never, ...args: never[]) => never;
|
|
47
|
+
declare modifyEnd: (this: never, ...args: never[]) => never;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Callback function to configure a column definition when adding a column to an existing table.
|
|
52
|
+
*/
|
|
53
|
+
export type DSQLAlterAddColumnDefinitionBuilderCallback = (
|
|
54
|
+
builder: DSQLAlterAddColumnDefinitionBuilder
|
|
55
|
+
) => DSQLAlterAddColumnDefinitionBuilder;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Restricts column alteration options in Aurora DSQL.
|
|
59
|
+
*
|
|
60
|
+
* Aurora DSQL supports setting/dropping defaults and dropping NOT NULL constraints.
|
|
61
|
+
*/
|
|
62
|
+
// eslint-disable-next-line max-classes-per-file
|
|
63
|
+
export class DSQLAlterColumnBuilder extends AlterColumnBuilder {
|
|
64
|
+
/**
|
|
65
|
+
* Sets a default value for the column.
|
|
66
|
+
*
|
|
67
|
+
* @param args - The default value arguments.
|
|
68
|
+
* @returns The altered column builder.
|
|
69
|
+
*/
|
|
70
|
+
declare setDefault: (
|
|
71
|
+
...args: Parameters<AlterColumnBuilder["setDefault"]>
|
|
72
|
+
) => AlteredColumnBuilder;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Drops the default value from the column.
|
|
76
|
+
*
|
|
77
|
+
* @returns The altered column builder.
|
|
78
|
+
*/
|
|
79
|
+
declare dropDefault: () => AlteredColumnBuilder;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Drops the NOT NULL constraint from the column.
|
|
83
|
+
*
|
|
84
|
+
* @returns The altered column builder.
|
|
85
|
+
*/
|
|
86
|
+
declare dropNotNull: () => AlteredColumnBuilder;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Calls a custom transformation function.
|
|
90
|
+
*
|
|
91
|
+
* @param func - The transformation callback.
|
|
92
|
+
* @returns The callback result.
|
|
93
|
+
*/
|
|
94
|
+
declare $call: <T>(func: (qb: this) => T) => T;
|
|
95
|
+
|
|
96
|
+
declare setNotNull: (this: never, ...args: never[]) => never;
|
|
97
|
+
declare setDataType: (this: never, ...args: never[]) => never;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Callback function to alter an existing column definition.
|
|
102
|
+
*/
|
|
103
|
+
export type DSQLAlterColumnBuilderCallback = (
|
|
104
|
+
builder: DSQLAlterColumnBuilder
|
|
105
|
+
) => AlteredColumnBuilder;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
// oxlint-disable-next-line max-classes-per-file
|
|
2
|
+
import { AlterTableBuilder, AlterTableColumnAlteringBuilder } from "kysely";
|
|
3
|
+
import type { DropColumnBuilderCallback } from "kysely";
|
|
4
|
+
|
|
5
|
+
import type {
|
|
6
|
+
DSQLAlterAddColumnDefinitionBuilderCallback,
|
|
7
|
+
DSQLAlterColumnBuilderCallback,
|
|
8
|
+
} from "./alter-column-builder.js";
|
|
9
|
+
import type { DSQLColumnDataType } from "./create-column-builder.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Restricts new column types after an Aurora DSQL table alteration starts.
|
|
13
|
+
*
|
|
14
|
+
* This class adds type declarations only. Kysely supplies all runtime behavior.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* db.schema.alterTable("person").dropColumn("name").addColumn("name", "text");
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
// eslint-disable-next-line max-classes-per-file
|
|
22
|
+
export class DSQLAlterTableColumnAlteringBuilder extends AlterTableColumnAlteringBuilder {
|
|
23
|
+
/**
|
|
24
|
+
* Adds a column with an Aurora DSQL data type.
|
|
25
|
+
*
|
|
26
|
+
* @param columnName - The column name.
|
|
27
|
+
* @param dataType - The Aurora DSQL data type.
|
|
28
|
+
* @param build - The optional column builder callback.
|
|
29
|
+
* @returns The restricted table alteration builder.
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* builder.addColumn("name", "text");
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare addColumn: (
|
|
36
|
+
columnName: string,
|
|
37
|
+
dataType: DSQLColumnDataType,
|
|
38
|
+
build?: DSQLAlterAddColumnDefinitionBuilderCallback
|
|
39
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Alters a column and keeps the restricted builder.
|
|
43
|
+
*
|
|
44
|
+
* @param column - The column name.
|
|
45
|
+
* @param alteration - The column alteration callback.
|
|
46
|
+
* @returns The restricted table alteration builder.
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* builder.alterColumn("name", (column) => column.dropNotNull());
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare alterColumn: (
|
|
53
|
+
column: string,
|
|
54
|
+
alteration: DSQLAlterColumnBuilderCallback
|
|
55
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Drops a column and keeps the restricted builder.
|
|
59
|
+
*
|
|
60
|
+
* @param column - The column name.
|
|
61
|
+
* @param build - Optional drop column callback.
|
|
62
|
+
* @returns The restricted table alteration builder.
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* builder.dropColumn("legacy_name");
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
declare dropColumn: (
|
|
69
|
+
column: string,
|
|
70
|
+
build?: DropColumnBuilderCallback
|
|
71
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Renames a column and keeps the restricted builder.
|
|
75
|
+
*
|
|
76
|
+
* @param column - The current column name.
|
|
77
|
+
* @param newColumn - The new column name.
|
|
78
|
+
* @returns The restricted table alteration builder.
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* builder.renameColumn("old_name", "new_name");
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
declare renameColumn: (
|
|
85
|
+
column: string,
|
|
86
|
+
newColumn: string
|
|
87
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Calls a custom transformation function.
|
|
91
|
+
*
|
|
92
|
+
* @param func - The transformation callback.
|
|
93
|
+
* @returns The callback result.
|
|
94
|
+
*/
|
|
95
|
+
declare $call: <T>(func: (qb: this) => T) => T;
|
|
96
|
+
|
|
97
|
+
declare modifyColumn: (this: never, ...args: never[]) => never;
|
|
98
|
+
declare addForeignKeyConstraint: (this: never, ...args: never[]) => never;
|
|
99
|
+
declare addPrimaryKeyConstraint: (this: never, ...args: never[]) => never;
|
|
100
|
+
declare addUniqueConstraint: (this: never, ...args: never[]) => never;
|
|
101
|
+
declare addIndex: (this: never, ...args: never[]) => never;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Restricts new column types for an Aurora DSQL table alteration.
|
|
106
|
+
*
|
|
107
|
+
* This class adds type declarations only. Kysely supplies all runtime behavior.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* db.schema.alterTable("person").addColumn("name", "text");
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
// eslint-disable-next-line max-classes-per-file
|
|
115
|
+
export class DSQLAlterTableBuilder extends AlterTableBuilder {
|
|
116
|
+
/**
|
|
117
|
+
* Adds a column with an Aurora DSQL data type.
|
|
118
|
+
*
|
|
119
|
+
* @param columnName - The column name.
|
|
120
|
+
* @param dataType - The Aurora DSQL data type.
|
|
121
|
+
* @param build - The optional column builder callback.
|
|
122
|
+
* @returns The restricted column alteration builder.
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* builder.addColumn("name", "text");
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
declare addColumn: (
|
|
129
|
+
columnName: string,
|
|
130
|
+
dataType: DSQLColumnDataType,
|
|
131
|
+
build?: DSQLAlterAddColumnDefinitionBuilderCallback
|
|
132
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Alters a column and returns the restricted builder.
|
|
136
|
+
*
|
|
137
|
+
* @param column - The column name.
|
|
138
|
+
* @param alteration - The column alteration callback.
|
|
139
|
+
* @returns The restricted column alteration builder.
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* builder.alterColumn("name", (column) => column.dropNotNull());
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
declare alterColumn: (
|
|
146
|
+
column: string,
|
|
147
|
+
alteration: DSQLAlterColumnBuilderCallback
|
|
148
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Drops a column and returns the restricted builder.
|
|
152
|
+
*
|
|
153
|
+
* @param column - The column name.
|
|
154
|
+
* @param build - Optional drop column callback.
|
|
155
|
+
* @returns The restricted column alteration builder.
|
|
156
|
+
* @example
|
|
157
|
+
* ```ts
|
|
158
|
+
* builder.dropColumn("legacy_name");
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
declare dropColumn: (
|
|
162
|
+
column: string,
|
|
163
|
+
build?: DropColumnBuilderCallback
|
|
164
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Renames a column and returns the restricted builder.
|
|
168
|
+
*
|
|
169
|
+
* @param column - The current column name.
|
|
170
|
+
* @param newColumn - The new column name.
|
|
171
|
+
* @returns The restricted column alteration builder.
|
|
172
|
+
* @example
|
|
173
|
+
* ```ts
|
|
174
|
+
* builder.renameColumn("old_name", "new_name");
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
declare renameColumn: (
|
|
178
|
+
column: string,
|
|
179
|
+
newColumn: string
|
|
180
|
+
) => DSQLAlterTableColumnAlteringBuilder;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Calls a custom transformation function.
|
|
184
|
+
*
|
|
185
|
+
* @param func - The transformation callback.
|
|
186
|
+
* @returns The callback result.
|
|
187
|
+
*/
|
|
188
|
+
declare $call: <T>(func: (qb: this) => T) => T;
|
|
189
|
+
|
|
190
|
+
declare modifyColumn: (this: never, ...args: never[]) => never;
|
|
191
|
+
declare addForeignKeyConstraint: (this: never, ...args: never[]) => never;
|
|
192
|
+
declare addPrimaryKeyConstraint: (this: never, ...args: never[]) => never;
|
|
193
|
+
declare addUniqueConstraint: (this: never, ...args: never[]) => never;
|
|
194
|
+
declare addIndex: (this: never, ...args: never[]) => never;
|
|
195
|
+
}
|