@simplysm/orm-common 13.0.82 → 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/README.md +106 -0
- 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/docs/db-context.md +238 -0
- package/docs/expressions.md +413 -0
- package/docs/query-builder.md +198 -0
- package/docs/queryable.md +420 -0
- package/docs/schema-builders.md +216 -0
- package/docs/types-and-utilities.md +353 -0
- package/package.json +4 -3
- 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/db.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { DbContextBase, DbContextDdlMethods } from "./db-context-def";
|
|
|
7
7
|
// ============================================
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Supported Database dialects
|
|
11
11
|
*
|
|
12
12
|
* - `mysql`: MySQL 8.0.14+
|
|
13
13
|
* - `mssql`: Microsoft SQL Server 2012+
|
|
@@ -16,9 +16,9 @@ import type { DbContextBase, DbContextDdlMethods } from "./db-context-def";
|
|
|
16
16
|
export type Dialect = "mysql" | "mssql" | "postgresql";
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* List of all supported Database dialects
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* Used for per-dialect validation in testing
|
|
22
22
|
*
|
|
23
23
|
* @example
|
|
24
24
|
* ```typescript
|
|
@@ -33,14 +33,14 @@ export const dialects: Dialect[] = ["mysql", "mssql", "postgresql"];
|
|
|
33
33
|
/**
|
|
34
34
|
* QueryBuilder.build() return type
|
|
35
35
|
*
|
|
36
|
-
*
|
|
36
|
+
* Built SQL string and metadata for multiple result set processing
|
|
37
37
|
*
|
|
38
|
-
* @property sql -
|
|
39
|
-
* @property resultSetIndex - Result
|
|
40
|
-
* - MySQL INSERT with OUTPUT: 1 (INSERT + SELECT
|
|
41
|
-
* @property resultSetStride -
|
|
42
|
-
* -
|
|
43
|
-
* - MySQL
|
|
38
|
+
* @property sql - Built SQL string
|
|
39
|
+
* @property resultSetIndex - Result set index to fetch results from (default: 0)
|
|
40
|
+
* - MySQL INSERT with OUTPUT: 1 (SELECT from INSERT + SELECT)
|
|
41
|
+
* @property resultSetStride - Extract every Nth result set from multiple results
|
|
42
|
+
* - Example: index=1, stride=2 -> returns result sets 1, 3, 5, 7...
|
|
43
|
+
* - MySQL multiple INSERT: INSERT;SELECT; x N -> 1, 3, 5...
|
|
44
44
|
*/
|
|
45
45
|
export interface QueryBuildResult {
|
|
46
46
|
sql: string;
|
|
@@ -51,10 +51,10 @@ export interface QueryBuildResult {
|
|
|
51
51
|
/**
|
|
52
52
|
* Transaction isolation level
|
|
53
53
|
*
|
|
54
|
-
* - `READ_UNCOMMITTED`:
|
|
55
|
-
* - `READ_COMMITTED`:
|
|
56
|
-
* - `REPEATABLE_READ`:
|
|
57
|
-
* - `SERIALIZABLE`:
|
|
54
|
+
* - `READ_UNCOMMITTED`: Can read uncommitted data (Dirty Read)
|
|
55
|
+
* - `READ_COMMITTED`: Read only committed data (default)
|
|
56
|
+
* - `REPEATABLE_READ`: Guarantees same query returns same result within transaction
|
|
57
|
+
* - `SERIALIZABLE`: Full serialization (most strict)
|
|
58
58
|
*/
|
|
59
59
|
export type IsolationLevel =
|
|
60
60
|
| "READ_UNCOMMITTED"
|
|
@@ -63,20 +63,20 @@ export type IsolationLevel =
|
|
|
63
63
|
| "SERIALIZABLE";
|
|
64
64
|
|
|
65
65
|
// ============================================
|
|
66
|
-
// DataRecord - Result data type (
|
|
66
|
+
// DataRecord - Result data type (recursive, nesting allowed)
|
|
67
67
|
// ============================================
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* Query result data record type
|
|
71
71
|
*
|
|
72
|
-
*
|
|
72
|
+
* Represents nested relation (include) results with recursive structure
|
|
73
73
|
*
|
|
74
74
|
* @example
|
|
75
75
|
* ```typescript
|
|
76
|
-
* //
|
|
76
|
+
* // Simple record
|
|
77
77
|
* type User = { id: number; name: string; }
|
|
78
78
|
*
|
|
79
|
-
* //
|
|
79
|
+
* // Nested relation include
|
|
80
80
|
* type UserWithPosts = {
|
|
81
81
|
* id: number;
|
|
82
82
|
* name: string;
|
|
@@ -94,14 +94,14 @@ export type DataRecord = {
|
|
|
94
94
|
// ============================================
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* DbContext
|
|
97
|
+
* DbContext executor interface
|
|
98
98
|
*
|
|
99
|
-
*
|
|
100
|
-
* NodeDbContextExecutor (
|
|
99
|
+
* Responsible for actual DB connection and query execution
|
|
100
|
+
* Implemented by NodeDbContextExecutor (server) or SdOrmServiceClientDbContextExecutor (client)
|
|
101
101
|
*
|
|
102
102
|
* @example
|
|
103
103
|
* ```typescript
|
|
104
|
-
* //
|
|
104
|
+
* // Server-side implementation example
|
|
105
105
|
* class NodeDbContextExecutor implements IDbContextExecutor {
|
|
106
106
|
* async connect(): Promise<void> {
|
|
107
107
|
* await this.connection.connect();
|
|
@@ -110,43 +110,43 @@ export type DataRecord = {
|
|
|
110
110
|
* }
|
|
111
111
|
* ```
|
|
112
112
|
*
|
|
113
|
-
* @see {@link DbContext}
|
|
113
|
+
* @see {@link DbContext} Used in DbContext
|
|
114
114
|
*/
|
|
115
115
|
export interface DbContextExecutor {
|
|
116
116
|
/**
|
|
117
|
-
* DB
|
|
117
|
+
* Establish DB connection
|
|
118
118
|
*/
|
|
119
119
|
connect(): Promise<void>;
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
|
-
* DB
|
|
122
|
+
* Close DB connection
|
|
123
123
|
*/
|
|
124
124
|
close(): Promise<void>;
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
|
-
*
|
|
127
|
+
* Begin transaction
|
|
128
128
|
*
|
|
129
|
-
* @param isolationLevel -
|
|
129
|
+
* @param isolationLevel - Isolation level (optional)
|
|
130
130
|
*/
|
|
131
131
|
beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
|
|
132
132
|
|
|
133
133
|
/**
|
|
134
|
-
*
|
|
134
|
+
* Commit transaction
|
|
135
135
|
*/
|
|
136
136
|
commitTransaction(): Promise<void>;
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
|
-
*
|
|
139
|
+
* Rollback transaction
|
|
140
140
|
*/
|
|
141
141
|
rollbackTransaction(): Promise<void>;
|
|
142
142
|
|
|
143
143
|
/**
|
|
144
|
-
* QueryDef array
|
|
144
|
+
* Execute QueryDef array
|
|
145
145
|
*
|
|
146
146
|
* @template T - Result record type
|
|
147
|
-
* @param defs -
|
|
148
|
-
* @param resultMetas -
|
|
149
|
-
* @returns
|
|
147
|
+
* @param defs - QueryDef array to execute
|
|
148
|
+
* @param resultMetas - Metadata for result transformation (optional)
|
|
149
|
+
* @returns Array of result arrays per QueryDef
|
|
150
150
|
*/
|
|
151
151
|
executeDefs<T = DataRecord>(
|
|
152
152
|
defs: QueryDef[],
|
|
@@ -155,12 +155,12 @@ export interface DbContextExecutor {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
/**
|
|
158
|
-
*
|
|
158
|
+
* Metadata for query result transformation
|
|
159
159
|
*
|
|
160
|
-
*
|
|
160
|
+
* Used when transforming SELECT results into TypeScript objects
|
|
161
161
|
*
|
|
162
|
-
* @property columns - Column
|
|
163
|
-
* @property joins - JOIN
|
|
162
|
+
* @property columns - Column name -> ColumnPrimitiveStr mapping
|
|
163
|
+
* @property joins - JOIN alias -> single/array indicator
|
|
164
164
|
*/
|
|
165
165
|
export interface ResultMeta {
|
|
166
166
|
columns: Record<string, ColumnPrimitiveStr>;
|
|
@@ -174,10 +174,10 @@ export interface ResultMeta {
|
|
|
174
174
|
/**
|
|
175
175
|
* Database migration definition
|
|
176
176
|
*
|
|
177
|
-
* schema
|
|
177
|
+
* Version-control schema changes
|
|
178
178
|
*
|
|
179
|
-
* @property name - Migration
|
|
180
|
-
* @property up - Migration
|
|
179
|
+
* @property name - Unique Migration name (timestamp recommended)
|
|
180
|
+
* @property up - Migration execution function
|
|
181
181
|
*
|
|
182
182
|
* @example
|
|
183
183
|
* ```typescript
|
|
@@ -200,7 +200,7 @@ export interface ResultMeta {
|
|
|
200
200
|
* ];
|
|
201
201
|
* ```
|
|
202
202
|
*
|
|
203
|
-
* @see {@link DbContext.initialize} migration
|
|
203
|
+
* @see {@link DbContext.initialize} migration execution
|
|
204
204
|
*/
|
|
205
205
|
export interface Migration {
|
|
206
206
|
name: string;
|