tspace-mysql 1.9.0 → 1.9.1-beta.2
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 +4580 -133
- package/dist/lib/config/index.d.ts +2 -2
- package/dist/lib/config/index.js +24 -16
- package/dist/lib/config/index.js.map +1 -1
- package/dist/lib/constants/index.d.ts +10 -1
- package/dist/lib/constants/index.js +11 -2
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +27 -23
- package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
- package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractDB.d.ts +5 -2
- package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractModel.d.ts +7 -2
- package/dist/lib/core/Abstracts/AbstractModel.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
- package/dist/lib/core/Blueprint.d.ts +37 -17
- package/dist/lib/core/Blueprint.js +38 -14
- package/dist/lib/core/Blueprint.js.map +1 -1
- package/dist/lib/core/Builder.d.ts +314 -42
- package/dist/lib/core/Builder.js +686 -391
- package/dist/lib/core/Builder.js.map +1 -1
- package/dist/lib/core/Cache/DBCache.js +19 -20
- package/dist/lib/core/Cache/DBCache.js.map +1 -1
- package/dist/lib/core/Cache/MemoryCache.js +3 -3
- package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
- package/dist/lib/core/Cache/RedisCache.js +27 -17
- package/dist/lib/core/Cache/RedisCache.js.map +1 -1
- package/dist/lib/core/Cache/index.js +37 -17
- package/dist/lib/core/Cache/index.js.map +1 -1
- package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
- package/dist/lib/core/Contracts/AlterTable.js +243 -0
- package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
- package/dist/lib/core/Contracts/Audit.d.ts +1 -1
- package/dist/lib/core/Contracts/Audit.js +2 -5
- package/dist/lib/core/Contracts/Audit.js.map +1 -1
- package/dist/lib/core/Contracts/Logger.d.ts +1 -1
- package/dist/lib/core/Contracts/Logger.js.map +1 -1
- package/dist/lib/core/DB.d.ts +103 -11
- package/dist/lib/core/DB.js +158 -32
- package/dist/lib/core/DB.js.map +1 -1
- package/dist/lib/core/Decorator.d.ts +144 -16
- package/dist/lib/core/Decorator.js +156 -14
- package/dist/lib/core/Decorator.js.map +1 -1
- package/dist/lib/core/Driver/index.d.ts +50 -14
- package/dist/lib/core/Driver/index.js +13 -9
- package/dist/lib/core/Driver/index.js.map +1 -1
- package/dist/lib/core/Driver/mariadb/MariadbDriver.js +84 -29
- package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +48 -12
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +189 -28
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
- package/dist/lib/core/Driver/mongodb/MongodbDriver.js +261 -0
- package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +571 -0
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
- package/dist/lib/core/Driver/mysql/MysqlDriver.js +115 -97
- package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +48 -12
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +189 -28
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/postgres/PostgresDriver.js +106 -73
- package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +53 -12
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +318 -48
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +21 -0
- package/dist/lib/core/Driver/sqlite/SqliteDriver.js +213 -0
- package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +146 -0
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +705 -0
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
- package/dist/lib/core/Join.d.ts +63 -5
- package/dist/lib/core/Join.js +92 -15
- package/dist/lib/core/Join.js.map +1 -1
- package/dist/lib/core/JoinModel.d.ts +65 -9
- package/dist/lib/core/JoinModel.js +81 -52
- package/dist/lib/core/JoinModel.js.map +1 -1
- package/dist/lib/core/Meta.d.ts +22 -16
- package/dist/lib/core/Meta.js +28 -21
- package/dist/lib/core/Meta.js.map +1 -1
- package/dist/lib/core/Model.d.ts +644 -134
- package/dist/lib/core/Model.js +1361 -631
- package/dist/lib/core/Model.js.map +1 -1
- package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
- package/dist/lib/{tools/index.js → core/Package.js} +20 -7
- package/dist/lib/core/Package.js.map +1 -0
- package/dist/lib/core/Pool.js +42 -30
- package/dist/lib/core/Pool.js.map +1 -1
- package/dist/lib/core/Queue.d.ts +249 -0
- package/dist/lib/core/Queue.js +726 -0
- package/dist/lib/core/Queue.js.map +1 -0
- package/dist/lib/core/RelationManager.d.ts +4 -4
- package/dist/lib/core/RelationManager.js +168 -41
- package/dist/lib/core/RelationManager.js.map +1 -1
- package/dist/lib/core/Repository.d.ts +73 -207
- package/dist/lib/core/Repository.js +122 -234
- package/dist/lib/core/Repository.js.map +1 -1
- package/dist/lib/core/Schema.d.ts +211 -1
- package/dist/lib/core/Schema.js +370 -65
- package/dist/lib/core/Schema.js.map +1 -1
- package/dist/lib/core/StateManager.d.ts +31 -12
- package/dist/lib/core/StateManager.js +11 -5
- package/dist/lib/core/StateManager.js.map +1 -1
- package/dist/lib/core/UtilityTypes.d.ts +103 -81
- package/dist/lib/core/UtilityTypes.js.map +1 -1
- package/dist/lib/core/index.d.ts +4 -0
- package/dist/lib/core/index.js +6 -2
- package/dist/lib/core/index.js.map +1 -1
- package/dist/lib/types/decorator/index.d.ts +1 -1
- package/dist/lib/types/index.d.ts +120 -30
- package/dist/lib/types/repository/index.d.ts +68 -37
- package/dist/lib/utils/index.d.ts +13 -2
- package/dist/lib/utils/index.js +81 -2
- package/dist/lib/utils/index.js.map +1 -1
- package/package.json +14 -6
- package/dist/lib/tools/index.js.map +0 -1
package/dist/lib/core/Meta.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { type T, Model } from '..';
|
|
2
|
+
type NullableKeys<T> = ({
|
|
3
|
+
[K in keyof T]: null extends T[K] ? K : never;
|
|
4
|
+
}[keyof T]) & {};
|
|
2
5
|
declare class ModelMeta<M extends Model> {
|
|
3
6
|
private model;
|
|
4
7
|
constructor(model: M);
|
|
@@ -19,22 +22,24 @@ declare class ModelMeta<M extends Model> {
|
|
|
19
22
|
* Build a fully qualified column reference with an optional alias.
|
|
20
23
|
*
|
|
21
24
|
* @param {T.ColumnKeys<M>} column - The column key.
|
|
22
|
-
* @param {{ alias?: string | null }} [
|
|
25
|
+
* @param {{ alias?: string | null }} [opts] - Optional alias for the table.
|
|
23
26
|
* @returns {`${string}.${T.ColumnKeys<M>}`} The column reference.
|
|
24
27
|
*/
|
|
25
|
-
columnReference
|
|
28
|
+
columnReference<K extends T.ColumnKeys<M> = T.ColumnKeys<M>>(column: K, opts?: {
|
|
26
29
|
alias?: string | null;
|
|
27
|
-
|
|
30
|
+
raw?: boolean | null;
|
|
31
|
+
}): `${string}.${K}`;
|
|
28
32
|
/**
|
|
29
33
|
* Alias for {@link columnReference}.
|
|
30
34
|
*
|
|
31
35
|
* @param {T.ColumnKeys<M>} column - The column key.
|
|
32
|
-
* @param {{ alias?: string | null }} [
|
|
33
|
-
* @returns {`${string}.${
|
|
36
|
+
* @param {{ alias?: string | null }} [opts] - Optional alias for the table.
|
|
37
|
+
* @returns {`${string}.${K}`} The column reference.
|
|
34
38
|
*/
|
|
35
|
-
columnRef
|
|
39
|
+
columnRef<K extends T.ColumnKeys<M> = T.ColumnKeys<M>>(column: K, opts?: {
|
|
36
40
|
alias?: string | null;
|
|
37
|
-
|
|
41
|
+
raw?: boolean | null;
|
|
42
|
+
}): `${string}.${K}`;
|
|
38
43
|
/**
|
|
39
44
|
* Get all column keys defined in the model schema.
|
|
40
45
|
*
|
|
@@ -61,11 +66,11 @@ declare class ModelMeta<M extends Model> {
|
|
|
61
66
|
*/
|
|
62
67
|
indexes(): string[];
|
|
63
68
|
/**
|
|
64
|
-
* Get all
|
|
69
|
+
* Get all nullables columns in the model schema.
|
|
65
70
|
*
|
|
66
|
-
* @returns {string[]} An array of
|
|
71
|
+
* @returns {string[]} An array of nullables column keys.
|
|
67
72
|
*/
|
|
68
|
-
|
|
73
|
+
nullables(): NullableKeys<T.Columns<M>>[];
|
|
69
74
|
/**
|
|
70
75
|
* Get the default values for all columns in the schema.
|
|
71
76
|
*
|
|
@@ -108,6 +113,7 @@ declare class ModelMeta<M extends Model> {
|
|
|
108
113
|
*
|
|
109
114
|
* @example
|
|
110
115
|
* import { Meta, Model , Blueprint , type T } from 'tspace-mysql';
|
|
116
|
+
* import { Column } from './Decorator';
|
|
111
117
|
*
|
|
112
118
|
* const schema = {
|
|
113
119
|
* id : Blueprint.int().notNull().primary().autoIncrement(),
|
|
@@ -134,15 +140,15 @@ declare class ModelMeta<M extends Model> {
|
|
|
134
140
|
* const meta = Meta(User)
|
|
135
141
|
* // --- get metadata of User ---
|
|
136
142
|
* const table = meta.table() // 'users'
|
|
137
|
-
* const column = meta.
|
|
138
|
-
* const columnRef = meta.
|
|
139
|
-
* const columnTypeOf = meta.
|
|
140
|
-
* const columnType = meta.
|
|
141
|
-
* const columns = meta.
|
|
143
|
+
* const column = meta.column('id') // id
|
|
144
|
+
* const columnRef = meta.columnRef('id') // `users`.`id`
|
|
145
|
+
* const columnTypeOf = meta.columnTypeOf('id') // number
|
|
146
|
+
* const columnType = meta.columnType('id') // Int
|
|
147
|
+
* const columns = meta.columns() // ['id','uuid',...'updatedAt']
|
|
142
148
|
* const hasColumn = meta.hasColumn('id') // false
|
|
143
149
|
* const primaryKey = meta.primaryKey() // 'id'
|
|
144
150
|
* const indexes = meta.indexes() // ['users.email@index']
|
|
145
|
-
* const
|
|
151
|
+
* const nullables = meta.nullables() // ['uuid','name','createdAt','updatedAt']
|
|
146
152
|
* const defaults = meta.defaults() // { id : null, ..., status : 0, role: 'user', ..updatedAt : null }
|
|
147
153
|
* const enums = meta.enums('role') // [ 'admin', 'user' ]
|
|
148
154
|
* const enumsObj = meta.enum('role', { asObject: true }) // { admin: 'admin', user: 'user' }
|
package/dist/lib/core/Meta.js
CHANGED
|
@@ -21,29 +21,34 @@ class ModelMeta {
|
|
|
21
21
|
* @returns {T.ColumnKeys<M>} The validated column key.
|
|
22
22
|
*/
|
|
23
23
|
column(column) {
|
|
24
|
-
return column;
|
|
24
|
+
return String(column).replace(/`/g, '');
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Build a fully qualified column reference with an optional alias.
|
|
28
28
|
*
|
|
29
29
|
* @param {T.ColumnKeys<M>} column - The column key.
|
|
30
|
-
* @param {{ alias?: string | null }} [
|
|
30
|
+
* @param {{ alias?: string | null }} [opts] - Optional alias for the table.
|
|
31
31
|
* @returns {`${string}.${T.ColumnKeys<M>}`} The column reference.
|
|
32
32
|
*/
|
|
33
|
-
columnReference(column,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
columnReference(column, opts = {}) {
|
|
34
|
+
let base = `\`${this.table()}\`.\`${String(column)}\``;
|
|
35
|
+
if (opts.alias) {
|
|
36
|
+
base = `\`${opts.alias}\`.\`${String(column)}\``;
|
|
37
|
+
}
|
|
38
|
+
if (opts.raw) {
|
|
39
|
+
base = base.replace(/`/g, '');
|
|
40
|
+
}
|
|
41
|
+
return base;
|
|
37
42
|
}
|
|
38
43
|
/**
|
|
39
44
|
* Alias for {@link columnReference}.
|
|
40
45
|
*
|
|
41
46
|
* @param {T.ColumnKeys<M>} column - The column key.
|
|
42
|
-
* @param {{ alias?: string | null }} [
|
|
43
|
-
* @returns {`${string}.${
|
|
47
|
+
* @param {{ alias?: string | null }} [opts] - Optional alias for the table.
|
|
48
|
+
* @returns {`${string}.${K}`} The column reference.
|
|
44
49
|
*/
|
|
45
|
-
columnRef(column,
|
|
46
|
-
return this.columnReference(column,
|
|
50
|
+
columnRef(column, opts = {}) {
|
|
51
|
+
return this.columnReference(column, opts);
|
|
47
52
|
}
|
|
48
53
|
/**
|
|
49
54
|
* Get all column keys defined in the model schema.
|
|
@@ -107,22 +112,23 @@ class ModelMeta {
|
|
|
107
112
|
.filter(v => v != null);
|
|
108
113
|
}
|
|
109
114
|
/**
|
|
110
|
-
* Get all
|
|
115
|
+
* Get all nullables columns in the model schema.
|
|
111
116
|
*
|
|
112
|
-
* @returns {string[]} An array of
|
|
117
|
+
* @returns {string[]} An array of nullables column keys.
|
|
113
118
|
*/
|
|
114
|
-
|
|
119
|
+
nullables() {
|
|
115
120
|
const schemaModel = this.model.getSchemaModel();
|
|
116
121
|
if (schemaModel == null)
|
|
117
122
|
return [];
|
|
118
|
-
|
|
123
|
+
const nullables = Object.entries(schemaModel)
|
|
119
124
|
.map(([key, blueprint]) => {
|
|
120
125
|
const attr = blueprint['_attributes'];
|
|
121
126
|
return Array.from(attr).includes(this.model['$constants']('NULL'))
|
|
122
127
|
? key
|
|
123
128
|
: undefined;
|
|
124
129
|
})
|
|
125
|
-
.filter(v => v != null);
|
|
130
|
+
.filter((v) => v != null);
|
|
131
|
+
return nullables;
|
|
126
132
|
}
|
|
127
133
|
/**
|
|
128
134
|
* Get the default values for all columns in the schema.
|
|
@@ -226,6 +232,7 @@ class ModelMeta {
|
|
|
226
232
|
*
|
|
227
233
|
* @example
|
|
228
234
|
* import { Meta, Model , Blueprint , type T } from 'tspace-mysql';
|
|
235
|
+
* import { Column } from './Decorator';
|
|
229
236
|
*
|
|
230
237
|
* const schema = {
|
|
231
238
|
* id : Blueprint.int().notNull().primary().autoIncrement(),
|
|
@@ -252,15 +259,15 @@ class ModelMeta {
|
|
|
252
259
|
* const meta = Meta(User)
|
|
253
260
|
* // --- get metadata of User ---
|
|
254
261
|
* const table = meta.table() // 'users'
|
|
255
|
-
* const column = meta.
|
|
256
|
-
* const columnRef = meta.
|
|
257
|
-
* const columnTypeOf = meta.
|
|
258
|
-
* const columnType = meta.
|
|
259
|
-
* const columns = meta.
|
|
262
|
+
* const column = meta.column('id') // id
|
|
263
|
+
* const columnRef = meta.columnRef('id') // `users`.`id`
|
|
264
|
+
* const columnTypeOf = meta.columnTypeOf('id') // number
|
|
265
|
+
* const columnType = meta.columnType('id') // Int
|
|
266
|
+
* const columns = meta.columns() // ['id','uuid',...'updatedAt']
|
|
260
267
|
* const hasColumn = meta.hasColumn('id') // false
|
|
261
268
|
* const primaryKey = meta.primaryKey() // 'id'
|
|
262
269
|
* const indexes = meta.indexes() // ['users.email@index']
|
|
263
|
-
* const
|
|
270
|
+
* const nullables = meta.nullables() // ['uuid','name','createdAt','updatedAt']
|
|
264
271
|
* const defaults = meta.defaults() // { id : null, ..., status : 0, role: 'user', ..updatedAt : null }
|
|
265
272
|
* const enums = meta.enums('role') // [ 'admin', 'user' ]
|
|
266
273
|
* const enumsObj = meta.enum('role', { asObject: true }) // { admin: 'admin', user: 'user' }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../../src/lib/core/Meta.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../../src/lib/core/Meta.ts"],"names":[],"mappings":"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"}
|