@simplysm/orm-common 13.0.83 → 13.0.84
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/dist/ddl/initialize.d.ts +2 -2
- package/dist/ddl/initialize.js +1 -1
- package/dist/ddl/initialize.js.map +1 -1
- package/dist/ddl/table-ddl.d.ts +1 -1
- package/dist/exec/queryable.d.ts +115 -115
- package/dist/exec/queryable.js +68 -68
- package/dist/exec/queryable.js.map +1 -1
- package/dist/expr/expr.d.ts +248 -248
- package/dist/expr/expr.js +250 -250
- package/dist/query-builder/base/expr-renderer-base.d.ts +7 -7
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +3 -3
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +5 -5
- package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +7 -7
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +2 -2
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +4 -4
- package/dist/query-builder/mysql/mysql-query-builder.d.ts +10 -10
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +4 -4
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +2 -2
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +4 -4
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +8 -8
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +7 -7
- package/dist/query-builder/query-builder.d.ts +1 -1
- package/dist/schema/factory/column-builder.d.ts +46 -46
- package/dist/schema/factory/column-builder.js +25 -25
- package/dist/schema/factory/index-builder.d.ts +22 -22
- package/dist/schema/factory/index-builder.js +14 -14
- package/dist/schema/factory/relation-builder.d.ts +93 -93
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js +37 -37
- package/dist/schema/procedure-builder.d.ts +38 -38
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js +26 -26
- package/dist/schema/table-builder.d.ts +38 -38
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +29 -29
- package/dist/schema/view-builder.d.ts +26 -26
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +18 -18
- package/dist/types/db.d.ts +40 -40
- package/dist/types/expr.d.ts +75 -75
- package/dist/types/expr.d.ts.map +1 -1
- package/dist/types/query-def.d.ts +32 -32
- package/dist/types/query-def.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ddl/initialize.ts +16 -16
- package/src/ddl/table-ddl.ts +1 -1
- package/src/exec/queryable.ts +163 -163
- package/src/expr/expr.ts +257 -257
- package/src/query-builder/base/expr-renderer-base.ts +8 -8
- package/src/query-builder/mssql/mssql-expr-renderer.ts +20 -20
- package/src/query-builder/mssql/mssql-query-builder.ts +28 -28
- package/src/query-builder/mysql/mysql-expr-renderer.ts +22 -22
- package/src/query-builder/mysql/mysql-query-builder.ts +65 -65
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +15 -15
- package/src/query-builder/postgresql/postgresql-query-builder.ts +43 -43
- package/src/query-builder/query-builder.ts +1 -1
- package/src/schema/factory/column-builder.ts +48 -48
- package/src/schema/factory/index-builder.ts +22 -22
- package/src/schema/factory/relation-builder.ts +95 -95
- package/src/schema/procedure-builder.ts +38 -38
- package/src/schema/table-builder.ts +38 -38
- package/src/schema/view-builder.ts +28 -28
- package/src/types/db.ts +41 -41
- package/src/types/expr.ts +79 -79
- package/src/types/query-def.ts +37 -37
- package/tests/ddl/basic.expected.ts +8 -8
package/src/types/query-def.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { ColumnPrimitive, DataType } from "./column";
|
|
2
2
|
import type { Expr, WhereExpr } from "./expr";
|
|
3
3
|
|
|
4
|
-
//#region ==========
|
|
4
|
+
//#region ========== Common ==========
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* DB object
|
|
7
|
+
* DB object name (table, View, Procedure, etc.)
|
|
8
8
|
*
|
|
9
|
-
* DBMS
|
|
10
|
-
* - MySQL: `database.name` (schema
|
|
11
|
-
* - MSSQL: `database.schema.name` (schema
|
|
12
|
-
* - PostgreSQL: `schema.name` (database
|
|
9
|
+
* DBMS-specific namespaces:
|
|
10
|
+
* - MySQL: `database.name` (schema ignored)
|
|
11
|
+
* - MSSQL: `database.schema.name` (schema defaults to dbo)
|
|
12
|
+
* - PostgreSQL: `schema.name` (database is for connection only)
|
|
13
13
|
*/
|
|
14
14
|
export interface QueryDefObjectName {
|
|
15
15
|
database?: string;
|
|
@@ -22,9 +22,9 @@ export interface QueryDefObjectName {
|
|
|
22
22
|
//#region ========== DML ==========
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* CUD query
|
|
25
|
+
* CUD query OUTPUT clause definition
|
|
26
26
|
*
|
|
27
|
-
* INSERT/UPDATE/DELETE
|
|
27
|
+
* Define return values after INSERT/UPDATE/DELETE
|
|
28
28
|
*/
|
|
29
29
|
export interface CudOutputDef {
|
|
30
30
|
columns: string[];
|
|
@@ -36,19 +36,19 @@ export interface CudOutputDef {
|
|
|
36
36
|
* SELECT Query definition
|
|
37
37
|
*
|
|
38
38
|
* @property type - Query type ("select")
|
|
39
|
-
* @property from - FROM
|
|
40
|
-
* @property as - Table
|
|
41
|
-
* @property select - SELECT
|
|
42
|
-
* @property distinct - DISTINCT
|
|
39
|
+
* @property from - FROM clause (table/Subquery)
|
|
40
|
+
* @property as - Table alias
|
|
41
|
+
* @property select - SELECT clause column mapping
|
|
42
|
+
* @property distinct - Whether DISTINCT
|
|
43
43
|
* @property top - TOP N (MSSQL)
|
|
44
|
-
* @property lock -
|
|
44
|
+
* @property lock - Whether to lock
|
|
45
45
|
* @property where - WHERE condition array
|
|
46
46
|
* @property joins - JOIN definition array
|
|
47
|
-
* @property orderBy - ORDER BY [column,
|
|
47
|
+
* @property orderBy - ORDER BY [column, direction] array
|
|
48
48
|
* @property limit - LIMIT [offset, count]
|
|
49
49
|
* @property groupBy - GROUP BY expression array
|
|
50
50
|
* @property having - HAVING condition array
|
|
51
|
-
* @property with -
|
|
51
|
+
* @property with - Recursive CTE definition
|
|
52
52
|
*/
|
|
53
53
|
export interface SelectQueryDef {
|
|
54
54
|
type: "select";
|
|
@@ -70,19 +70,19 @@ export interface SelectQueryDef {
|
|
|
70
70
|
/**
|
|
71
71
|
* JOIN Query definition
|
|
72
72
|
*
|
|
73
|
-
* SelectQueryDef
|
|
73
|
+
* SelectQueryDef extension + isSingle flag
|
|
74
74
|
*/
|
|
75
75
|
export interface SelectQueryDefJoin extends SelectQueryDef {
|
|
76
|
-
/**
|
|
76
|
+
/** Whether single result (1:1 relation) */
|
|
77
77
|
isSingle?: boolean;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
81
|
* INSERT Query definition
|
|
82
82
|
*
|
|
83
|
-
* @property records -
|
|
84
|
-
* @property overrideIdentity -
|
|
85
|
-
* @property output - OUTPUT
|
|
83
|
+
* @property records - Record array to insert
|
|
84
|
+
* @property overrideIdentity - Whether to enable IDENTITY_INSERT
|
|
85
|
+
* @property output - OUTPUT clause definition
|
|
86
86
|
*/
|
|
87
87
|
export interface InsertQueryDef {
|
|
88
88
|
type: "insert";
|
|
@@ -93,9 +93,9 @@ export interface InsertQueryDef {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
96
|
+
* Conditional INSERT Query definition
|
|
97
97
|
*
|
|
98
|
-
*
|
|
98
|
+
* Insert only if not exists
|
|
99
99
|
*/
|
|
100
100
|
export interface InsertIfNotExistsQueryDef {
|
|
101
101
|
type: "insertIfNotExists";
|
|
@@ -109,7 +109,7 @@ export interface InsertIfNotExistsQueryDef {
|
|
|
109
109
|
/**
|
|
110
110
|
* INSERT INTO SELECT Query definition
|
|
111
111
|
*
|
|
112
|
-
*
|
|
112
|
+
* Insert subquery results
|
|
113
113
|
*/
|
|
114
114
|
export interface InsertIntoQueryDef {
|
|
115
115
|
type: "insertInto";
|
|
@@ -122,8 +122,8 @@ export interface InsertIntoQueryDef {
|
|
|
122
122
|
/**
|
|
123
123
|
* UPDATE Query definition
|
|
124
124
|
*
|
|
125
|
-
* @property record -
|
|
126
|
-
* @property joins - UPDATE JOIN (
|
|
125
|
+
* @property record - Column/value mapping to update
|
|
126
|
+
* @property joins - UPDATE JOIN (when supported)
|
|
127
127
|
*/
|
|
128
128
|
export interface UpdateQueryDef {
|
|
129
129
|
type: "update";
|
|
@@ -170,7 +170,7 @@ export interface UpsertQueryDef {
|
|
|
170
170
|
|
|
171
171
|
//#region ========== Utils ==========
|
|
172
172
|
|
|
173
|
-
/** FK constraint
|
|
173
|
+
/** FK constraint enable/disable */
|
|
174
174
|
export interface SwitchFkQueryDef {
|
|
175
175
|
type: "switchFk";
|
|
176
176
|
table: QueryDefObjectName;
|
|
@@ -181,7 +181,7 @@ export interface SwitchFkQueryDef {
|
|
|
181
181
|
|
|
182
182
|
//#region ========== DDL - Schema ==========
|
|
183
183
|
|
|
184
|
-
/** Clear schema (
|
|
184
|
+
/** Clear schema (delete all objects) */
|
|
185
185
|
export interface ClearSchemaQueryDef {
|
|
186
186
|
type: "clearSchema";
|
|
187
187
|
database: string;
|
|
@@ -249,7 +249,7 @@ export interface DropColumnQueryDef {
|
|
|
249
249
|
column: string;
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
/** MODIFY COLUMN (type/property
|
|
252
|
+
/** MODIFY COLUMN (type/property change) */
|
|
253
253
|
export interface ModifyColumnQueryDef {
|
|
254
254
|
type: "modifyColumn";
|
|
255
255
|
table: QueryDefObjectName;
|
|
@@ -385,13 +385,13 @@ export interface SchemaExistsQueryDef {
|
|
|
385
385
|
|
|
386
386
|
//#endregion
|
|
387
387
|
|
|
388
|
-
//#region ========== DDL type
|
|
388
|
+
//#region ========== DDL type constants ==========
|
|
389
389
|
|
|
390
390
|
/**
|
|
391
|
-
* DDL QueryDef union (
|
|
391
|
+
* DDL QueryDef union (for compile-time validation)
|
|
392
392
|
*
|
|
393
393
|
* @remarks
|
|
394
|
-
* switchFk
|
|
394
|
+
* switchFk is excluded because it is not DDL (can be used within transactions)
|
|
395
395
|
*/
|
|
396
396
|
type DdlQueryDef =
|
|
397
397
|
| ClearSchemaQueryDef
|
|
@@ -415,13 +415,13 @@ type DdlQueryDef =
|
|
|
415
415
|
| DropProcQueryDef;
|
|
416
416
|
|
|
417
417
|
/**
|
|
418
|
-
* DDL (Data Definition Language) type
|
|
418
|
+
* DDL (Data Definition Language) type constants
|
|
419
419
|
*
|
|
420
|
-
*
|
|
421
|
-
* satisfies
|
|
420
|
+
* Used for blocking DDL within transactions and DDL type validation
|
|
421
|
+
* Uses satisfies keyword for compile-time synchronization with DdlQueryDef
|
|
422
422
|
*
|
|
423
423
|
* @remarks
|
|
424
|
-
* switchFk
|
|
424
|
+
* switchFk is excluded because it is not DDL (can be used within transactions)
|
|
425
425
|
*/
|
|
426
426
|
export const DDL_TYPES = [
|
|
427
427
|
"clearSchema",
|
|
@@ -450,10 +450,10 @@ export type DdlType = (typeof DDL_TYPES)[number];
|
|
|
450
450
|
|
|
451
451
|
//#endregion
|
|
452
452
|
|
|
453
|
-
//#region ==========
|
|
453
|
+
//#region ========== Combined Union Type ==========
|
|
454
454
|
|
|
455
455
|
/**
|
|
456
|
-
*
|
|
456
|
+
* All Query definition union type
|
|
457
457
|
*
|
|
458
458
|
* DML (SELECT/INSERT/UPDATE/DELETE/UPSERT) +
|
|
459
459
|
* DDL (Table/Column/PK/FK/Index/View/Procedure) +
|
|
@@ -18,22 +18,22 @@ SET FOREIGN_KEY_CHECKS = 1
|
|
|
18
18
|
DECLARE @sql NVARCHAR(MAX);
|
|
19
19
|
SET @sql = N'';
|
|
20
20
|
|
|
21
|
-
-- FK
|
|
21
|
+
-- Drop FK constraints
|
|
22
22
|
SELECT @sql = @sql + N'ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' + QUOTENAME(OBJECT_NAME(parent_object_id)) + N' DROP CONSTRAINT ' + QUOTENAME(name) + N';' + CHAR(13)
|
|
23
23
|
FROM [TestDb].sys.foreign_keys
|
|
24
24
|
WHERE OBJECT_SCHEMA_NAME(parent_object_id) = 'TestSchema';
|
|
25
25
|
|
|
26
|
-
-- Drop
|
|
26
|
+
-- Drop tables
|
|
27
27
|
SELECT @sql = @sql + N'DROP TABLE ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + N';' + CHAR(13)
|
|
28
28
|
FROM [TestDb].sys.tables
|
|
29
29
|
WHERE SCHEMA_NAME(schema_id) = 'TestSchema';
|
|
30
30
|
|
|
31
|
-
-- Drop
|
|
31
|
+
-- Drop views
|
|
32
32
|
SELECT @sql = @sql + N'DROP VIEW ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + N';' + CHAR(13)
|
|
33
33
|
FROM [TestDb].sys.views
|
|
34
34
|
WHERE schema_id = SCHEMA_ID('TestSchema');
|
|
35
35
|
|
|
36
|
-
--
|
|
36
|
+
-- Drop procedures
|
|
37
37
|
SELECT @sql = @sql + N'DROP PROCEDURE ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + N';' + CHAR(13)
|
|
38
38
|
FROM [TestDb].sys.procedures
|
|
39
39
|
WHERE SCHEMA_NAME(schema_id) = 'TestSchema';
|
|
@@ -45,7 +45,7 @@ DO $$
|
|
|
45
45
|
DECLARE
|
|
46
46
|
r RECORD;
|
|
47
47
|
BEGIN
|
|
48
|
-
-- FK
|
|
48
|
+
-- Drop FK constraints
|
|
49
49
|
FOR r IN (SELECT conname, conrelid::regclass AS tablename
|
|
50
50
|
FROM pg_constraint
|
|
51
51
|
WHERE contype = 'f' AND connamespace = 'TestSchema'::regnamespace)
|
|
@@ -53,19 +53,19 @@ BEGIN
|
|
|
53
53
|
EXECUTE 'ALTER TABLE ' || r.tablename || ' DROP CONSTRAINT ' || quote_ident(r.conname);
|
|
54
54
|
END LOOP;
|
|
55
55
|
|
|
56
|
-
-- Drop
|
|
56
|
+
-- Drop tables
|
|
57
57
|
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'TestSchema')
|
|
58
58
|
LOOP
|
|
59
59
|
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
|
|
60
60
|
END LOOP;
|
|
61
61
|
|
|
62
|
-
-- Drop
|
|
62
|
+
-- Drop views
|
|
63
63
|
FOR r IN (SELECT viewname FROM pg_views WHERE schemaname = 'TestSchema')
|
|
64
64
|
LOOP
|
|
65
65
|
EXECUTE 'DROP VIEW IF EXISTS ' || quote_ident(r.viewname) || ' CASCADE';
|
|
66
66
|
END LOOP;
|
|
67
67
|
|
|
68
|
-
--
|
|
68
|
+
-- Drop functions
|
|
69
69
|
FOR r IN (SELECT proname, pg_get_function_identity_arguments(oid) AS args
|
|
70
70
|
FROM pg_proc WHERE pronamespace = 'TestSchema'::regnamespace)
|
|
71
71
|
LOOP
|