@zhin.js/database 1.0.3 → 1.0.5
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/CHANGELOG.md +12 -0
- package/README.md +1360 -34
- package/lib/base/database.d.ts +71 -13
- package/lib/base/database.d.ts.map +1 -1
- package/lib/base/database.js +128 -4
- package/lib/base/database.js.map +1 -1
- package/lib/base/dialect.d.ts +27 -10
- package/lib/base/dialect.d.ts.map +1 -1
- package/lib/base/dialect.js +32 -0
- package/lib/base/dialect.js.map +1 -1
- package/lib/base/index.d.ts +1 -0
- package/lib/base/index.d.ts.map +1 -1
- package/lib/base/index.js +1 -0
- package/lib/base/index.js.map +1 -1
- package/lib/base/model.d.ts +105 -12
- package/lib/base/model.d.ts.map +1 -1
- package/lib/base/model.js +224 -3
- package/lib/base/model.js.map +1 -1
- package/lib/base/query-classes.d.ts +204 -33
- package/lib/base/query-classes.d.ts.map +1 -1
- package/lib/base/query-classes.js +276 -0
- package/lib/base/query-classes.js.map +1 -1
- package/lib/base/thenable.d.ts +7 -7
- package/lib/base/thenable.d.ts.map +1 -1
- package/lib/base/thenable.js +5 -4
- package/lib/base/thenable.js.map +1 -1
- package/lib/base/transaction.d.ts +46 -0
- package/lib/base/transaction.d.ts.map +1 -0
- package/lib/base/transaction.js +186 -0
- package/lib/base/transaction.js.map +1 -0
- package/lib/dialects/memory.d.ts +13 -8
- package/lib/dialects/memory.d.ts.map +1 -1
- package/lib/dialects/memory.js +10 -7
- package/lib/dialects/memory.js.map +1 -1
- package/lib/dialects/mongodb.d.ts +12 -8
- package/lib/dialects/mongodb.d.ts.map +1 -1
- package/lib/dialects/mongodb.js +21 -18
- package/lib/dialects/mongodb.js.map +1 -1
- package/lib/dialects/mysql.d.ts +36 -7
- package/lib/dialects/mysql.d.ts.map +1 -1
- package/lib/dialects/mysql.js +140 -21
- package/lib/dialects/mysql.js.map +1 -1
- package/lib/dialects/pg.d.ts +36 -7
- package/lib/dialects/pg.d.ts.map +1 -1
- package/lib/dialects/pg.js +140 -21
- package/lib/dialects/pg.js.map +1 -1
- package/lib/dialects/redis.d.ts +13 -8
- package/lib/dialects/redis.d.ts.map +1 -1
- package/lib/dialects/redis.js +14 -11
- package/lib/dialects/redis.js.map +1 -1
- package/lib/dialects/sqlite.d.ts +20 -7
- package/lib/dialects/sqlite.d.ts.map +1 -1
- package/lib/dialects/sqlite.js +66 -13
- package/lib/dialects/sqlite.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/migration.d.ts +132 -0
- package/lib/migration.d.ts.map +1 -0
- package/lib/migration.js +475 -0
- package/lib/migration.js.map +1 -0
- package/lib/registry.d.ts +26 -23
- package/lib/registry.d.ts.map +1 -1
- package/lib/registry.js +1 -5
- package/lib/registry.js.map +1 -1
- package/lib/type/document/database.d.ts +12 -12
- package/lib/type/document/database.d.ts.map +1 -1
- package/lib/type/document/database.js +1 -1
- package/lib/type/document/database.js.map +1 -1
- package/lib/type/document/model.d.ts +8 -8
- package/lib/type/document/model.d.ts.map +1 -1
- package/lib/type/document/model.js +1 -1
- package/lib/type/document/model.js.map +1 -1
- package/lib/type/keyvalue/database.d.ts +12 -12
- package/lib/type/keyvalue/database.d.ts.map +1 -1
- package/lib/type/keyvalue/database.js +1 -1
- package/lib/type/keyvalue/database.js.map +1 -1
- package/lib/type/keyvalue/model.d.ts +3 -3
- package/lib/type/keyvalue/model.d.ts.map +1 -1
- package/lib/type/keyvalue/model.js +1 -1
- package/lib/type/keyvalue/model.js.map +1 -1
- package/lib/type/related/database.d.ts +49 -14
- package/lib/type/related/database.d.ts.map +1 -1
- package/lib/type/related/database.js +259 -28
- package/lib/type/related/database.js.map +1 -1
- package/lib/type/related/model.d.ts +252 -16
- package/lib/type/related/model.d.ts.map +1 -1
- package/lib/type/related/model.js +648 -23
- package/lib/type/related/model.js.map +1 -1
- package/lib/types.d.ts +475 -37
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +6 -0
- package/lib/types.js.map +1 -1
- package/package.json +10 -5
- package/src/base/database.ts +168 -24
- package/src/base/dialect.ts +49 -10
- package/src/base/index.ts +2 -1
- package/src/base/model.ts +258 -18
- package/src/base/query-classes.ts +471 -63
- package/src/base/thenable.ts +12 -11
- package/src/base/transaction.ts +213 -0
- package/src/dialects/memory.ts +17 -16
- package/src/dialects/mongodb.ts +44 -42
- package/src/dialects/mysql.ts +155 -26
- package/src/dialects/pg.ts +152 -25
- package/src/dialects/redis.ts +45 -43
- package/src/dialects/sqlite.ts +77 -19
- package/src/index.ts +1 -2
- package/src/migration.ts +544 -0
- package/src/registry.ts +33 -33
- package/src/type/document/database.ts +33 -33
- package/src/type/document/model.ts +15 -15
- package/src/type/keyvalue/database.ts +33 -33
- package/src/type/keyvalue/model.ts +19 -19
- package/src/type/related/database.ts +309 -34
- package/src/type/related/model.ts +801 -34
- package/src/types.ts +559 -44
- package/tests/database.test.ts +1738 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Model, } from '../../base';
|
|
1
|
+
import { Model, } from '../../base/index.js';
|
|
2
2
|
import { KeyValueDatabase } from './database.js';
|
|
3
3
|
import { KeyValueQueryResult } from '../../types.js';
|
|
4
4
|
|
|
@@ -6,10 +6,10 @@ import { KeyValueQueryResult } from '../../types.js';
|
|
|
6
6
|
* 键值模型类
|
|
7
7
|
* 继承自 Model,提供键值数据库特有的操作
|
|
8
8
|
*/
|
|
9
|
-
export class KeyValueModel<
|
|
9
|
+
export class KeyValueModel<D=any, S extends Record<string, object> = Record<string, object>, T extends keyof S = keyof S> extends Model<D, S, KeyValueQueryResult, T> {
|
|
10
10
|
constructor(
|
|
11
|
-
database: KeyValueDatabase<D>,
|
|
12
|
-
name:
|
|
11
|
+
database: KeyValueDatabase<D, S>,
|
|
12
|
+
name: T
|
|
13
13
|
) {
|
|
14
14
|
super(database, name);
|
|
15
15
|
}
|
|
@@ -20,7 +20,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
20
20
|
async set(key: string, value: any, ttl?: number): Promise<void> {
|
|
21
21
|
await this.dialect.query({
|
|
22
22
|
operation: 'set',
|
|
23
|
-
bucket: this.name,
|
|
23
|
+
bucket: this.name as string,
|
|
24
24
|
key,
|
|
25
25
|
value,
|
|
26
26
|
ttl,
|
|
@@ -34,7 +34,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
34
34
|
const results = await this.dialect.query(
|
|
35
35
|
{
|
|
36
36
|
operation: 'get',
|
|
37
|
-
bucket: this.name,
|
|
37
|
+
bucket: this.name as string,
|
|
38
38
|
key,
|
|
39
39
|
},
|
|
40
40
|
[key]
|
|
@@ -62,7 +62,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
62
62
|
const result = await this.dialect.query(
|
|
63
63
|
{
|
|
64
64
|
operation: 'delete',
|
|
65
|
-
bucket: this.name,
|
|
65
|
+
bucket: this.name as string,
|
|
66
66
|
key,
|
|
67
67
|
},
|
|
68
68
|
[key]
|
|
@@ -77,7 +77,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
77
77
|
const results = await this.dialect.query(
|
|
78
78
|
{
|
|
79
79
|
operation: 'has',
|
|
80
|
-
bucket: this.name,
|
|
80
|
+
bucket: this.name as string,
|
|
81
81
|
key,
|
|
82
82
|
},
|
|
83
83
|
[key, Date.now()]
|
|
@@ -92,7 +92,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
92
92
|
const results = await this.dialect.query(
|
|
93
93
|
{
|
|
94
94
|
operation: 'keys',
|
|
95
|
-
bucket: this.name,
|
|
95
|
+
bucket: this.name as string,
|
|
96
96
|
},
|
|
97
97
|
[Date.now()]
|
|
98
98
|
);
|
|
@@ -106,7 +106,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
106
106
|
const results = await this.dialect.query(
|
|
107
107
|
{
|
|
108
108
|
operation: 'values',
|
|
109
|
-
bucket: this.name,
|
|
109
|
+
bucket: this.name as string,
|
|
110
110
|
},
|
|
111
111
|
[Date.now()]
|
|
112
112
|
);
|
|
@@ -120,7 +120,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
120
120
|
const results = await this.dialect.query(
|
|
121
121
|
{
|
|
122
122
|
operation: 'entries',
|
|
123
|
-
bucket: this.name,
|
|
123
|
+
bucket: this.name as string,
|
|
124
124
|
},
|
|
125
125
|
[Date.now()]
|
|
126
126
|
);
|
|
@@ -133,7 +133,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
133
133
|
async clear(): Promise<void> {
|
|
134
134
|
await this.dialect.query({
|
|
135
135
|
operation: 'clear',
|
|
136
|
-
bucket: this.name,
|
|
136
|
+
bucket: this.name as string,
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
139
|
|
|
@@ -144,7 +144,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
144
144
|
const results = await this.dialect.query(
|
|
145
145
|
{
|
|
146
146
|
operation: 'size',
|
|
147
|
-
bucket: this.name,
|
|
147
|
+
bucket: this.name as string,
|
|
148
148
|
},
|
|
149
149
|
[Date.now()]
|
|
150
150
|
);
|
|
@@ -161,7 +161,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
161
161
|
await this.dialect.query(
|
|
162
162
|
{
|
|
163
163
|
operation: 'set',
|
|
164
|
-
bucket: this.name,
|
|
164
|
+
bucket: this.name as string,
|
|
165
165
|
key,
|
|
166
166
|
value,
|
|
167
167
|
ttl,
|
|
@@ -179,7 +179,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
179
179
|
const result = await this.dialect.query(
|
|
180
180
|
{
|
|
181
181
|
operation: 'expire',
|
|
182
|
-
bucket: this.name,
|
|
182
|
+
bucket: this.name as string,
|
|
183
183
|
key,
|
|
184
184
|
ttl,
|
|
185
185
|
},
|
|
@@ -195,7 +195,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
195
195
|
const results = await this.dialect.query(
|
|
196
196
|
{
|
|
197
197
|
operation: 'ttl',
|
|
198
|
-
bucket: this.name,
|
|
198
|
+
bucket: this.name as string,
|
|
199
199
|
key,
|
|
200
200
|
},
|
|
201
201
|
[key]
|
|
@@ -221,7 +221,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
221
221
|
const result = await this.dialect.query(
|
|
222
222
|
{
|
|
223
223
|
operation: 'persist',
|
|
224
|
-
bucket: this.name,
|
|
224
|
+
bucket: this.name as string,
|
|
225
225
|
key,
|
|
226
226
|
},
|
|
227
227
|
[key]
|
|
@@ -236,7 +236,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
236
236
|
const result = await this.dialect.query(
|
|
237
237
|
{
|
|
238
238
|
operation: 'cleanup',
|
|
239
|
-
bucket: this.name,
|
|
239
|
+
bucket: this.name as string,
|
|
240
240
|
},
|
|
241
241
|
[Date.now()]
|
|
242
242
|
);
|
|
@@ -252,7 +252,7 @@ export class KeyValueModel<T extends object = object, D=any> extends Model<D, T,
|
|
|
252
252
|
const results = await this.dialect.query(
|
|
253
253
|
{
|
|
254
254
|
operation: 'keysByPattern',
|
|
255
|
-
bucket: this.name,
|
|
255
|
+
bucket: this.name as string,
|
|
256
256
|
pattern: sqlPattern,
|
|
257
257
|
},
|
|
258
258
|
[sqlPattern, Date.now()]
|