@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.
Files changed (119) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1360 -34
  3. package/lib/base/database.d.ts +71 -13
  4. package/lib/base/database.d.ts.map +1 -1
  5. package/lib/base/database.js +128 -4
  6. package/lib/base/database.js.map +1 -1
  7. package/lib/base/dialect.d.ts +27 -10
  8. package/lib/base/dialect.d.ts.map +1 -1
  9. package/lib/base/dialect.js +32 -0
  10. package/lib/base/dialect.js.map +1 -1
  11. package/lib/base/index.d.ts +1 -0
  12. package/lib/base/index.d.ts.map +1 -1
  13. package/lib/base/index.js +1 -0
  14. package/lib/base/index.js.map +1 -1
  15. package/lib/base/model.d.ts +105 -12
  16. package/lib/base/model.d.ts.map +1 -1
  17. package/lib/base/model.js +224 -3
  18. package/lib/base/model.js.map +1 -1
  19. package/lib/base/query-classes.d.ts +204 -33
  20. package/lib/base/query-classes.d.ts.map +1 -1
  21. package/lib/base/query-classes.js +276 -0
  22. package/lib/base/query-classes.js.map +1 -1
  23. package/lib/base/thenable.d.ts +7 -7
  24. package/lib/base/thenable.d.ts.map +1 -1
  25. package/lib/base/thenable.js +5 -4
  26. package/lib/base/thenable.js.map +1 -1
  27. package/lib/base/transaction.d.ts +46 -0
  28. package/lib/base/transaction.d.ts.map +1 -0
  29. package/lib/base/transaction.js +186 -0
  30. package/lib/base/transaction.js.map +1 -0
  31. package/lib/dialects/memory.d.ts +13 -8
  32. package/lib/dialects/memory.d.ts.map +1 -1
  33. package/lib/dialects/memory.js +10 -7
  34. package/lib/dialects/memory.js.map +1 -1
  35. package/lib/dialects/mongodb.d.ts +12 -8
  36. package/lib/dialects/mongodb.d.ts.map +1 -1
  37. package/lib/dialects/mongodb.js +21 -18
  38. package/lib/dialects/mongodb.js.map +1 -1
  39. package/lib/dialects/mysql.d.ts +36 -7
  40. package/lib/dialects/mysql.d.ts.map +1 -1
  41. package/lib/dialects/mysql.js +140 -21
  42. package/lib/dialects/mysql.js.map +1 -1
  43. package/lib/dialects/pg.d.ts +36 -7
  44. package/lib/dialects/pg.d.ts.map +1 -1
  45. package/lib/dialects/pg.js +140 -21
  46. package/lib/dialects/pg.js.map +1 -1
  47. package/lib/dialects/redis.d.ts +13 -8
  48. package/lib/dialects/redis.d.ts.map +1 -1
  49. package/lib/dialects/redis.js +14 -11
  50. package/lib/dialects/redis.js.map +1 -1
  51. package/lib/dialects/sqlite.d.ts +20 -7
  52. package/lib/dialects/sqlite.d.ts.map +1 -1
  53. package/lib/dialects/sqlite.js +66 -13
  54. package/lib/dialects/sqlite.js.map +1 -1
  55. package/lib/index.d.ts +1 -0
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +1 -0
  58. package/lib/index.js.map +1 -1
  59. package/lib/migration.d.ts +132 -0
  60. package/lib/migration.d.ts.map +1 -0
  61. package/lib/migration.js +475 -0
  62. package/lib/migration.js.map +1 -0
  63. package/lib/registry.d.ts +26 -23
  64. package/lib/registry.d.ts.map +1 -1
  65. package/lib/registry.js +1 -5
  66. package/lib/registry.js.map +1 -1
  67. package/lib/type/document/database.d.ts +12 -12
  68. package/lib/type/document/database.d.ts.map +1 -1
  69. package/lib/type/document/database.js +1 -1
  70. package/lib/type/document/database.js.map +1 -1
  71. package/lib/type/document/model.d.ts +8 -8
  72. package/lib/type/document/model.d.ts.map +1 -1
  73. package/lib/type/document/model.js +1 -1
  74. package/lib/type/document/model.js.map +1 -1
  75. package/lib/type/keyvalue/database.d.ts +12 -12
  76. package/lib/type/keyvalue/database.d.ts.map +1 -1
  77. package/lib/type/keyvalue/database.js +1 -1
  78. package/lib/type/keyvalue/database.js.map +1 -1
  79. package/lib/type/keyvalue/model.d.ts +3 -3
  80. package/lib/type/keyvalue/model.d.ts.map +1 -1
  81. package/lib/type/keyvalue/model.js +1 -1
  82. package/lib/type/keyvalue/model.js.map +1 -1
  83. package/lib/type/related/database.d.ts +49 -14
  84. package/lib/type/related/database.d.ts.map +1 -1
  85. package/lib/type/related/database.js +259 -28
  86. package/lib/type/related/database.js.map +1 -1
  87. package/lib/type/related/model.d.ts +252 -16
  88. package/lib/type/related/model.d.ts.map +1 -1
  89. package/lib/type/related/model.js +648 -23
  90. package/lib/type/related/model.js.map +1 -1
  91. package/lib/types.d.ts +475 -37
  92. package/lib/types.d.ts.map +1 -1
  93. package/lib/types.js +6 -0
  94. package/lib/types.js.map +1 -1
  95. package/package.json +10 -5
  96. package/src/base/database.ts +168 -24
  97. package/src/base/dialect.ts +49 -10
  98. package/src/base/index.ts +2 -1
  99. package/src/base/model.ts +258 -18
  100. package/src/base/query-classes.ts +471 -63
  101. package/src/base/thenable.ts +12 -11
  102. package/src/base/transaction.ts +213 -0
  103. package/src/dialects/memory.ts +17 -16
  104. package/src/dialects/mongodb.ts +44 -42
  105. package/src/dialects/mysql.ts +155 -26
  106. package/src/dialects/pg.ts +152 -25
  107. package/src/dialects/redis.ts +45 -43
  108. package/src/dialects/sqlite.ts +77 -19
  109. package/src/index.ts +1 -2
  110. package/src/migration.ts +544 -0
  111. package/src/registry.ts +33 -33
  112. package/src/type/document/database.ts +33 -33
  113. package/src/type/document/model.ts +15 -15
  114. package/src/type/keyvalue/database.ts +33 -33
  115. package/src/type/keyvalue/model.ts +19 -19
  116. package/src/type/related/database.ts +309 -34
  117. package/src/type/related/model.ts +801 -34
  118. package/src/types.ts +559 -44
  119. 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<T extends object = object, D=any> extends Model<D, T, KeyValueQueryResult> {
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: string
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()]