@zudojs/database 0.0.1 → 0.1.0

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 (29) hide show
  1. package/dist/database/database.core.js +133 -0
  2. package/dist/database/database.core.js.map +1 -0
  3. package/dist/databaseType/databaseType.type.d.ts.map +1 -0
  4. package/dist/databaseType/databaseType.type.js +45 -0
  5. package/dist/databaseType/databaseType.type.js.map +1 -0
  6. package/dist/migration/migration.helpers.js +99 -0
  7. package/dist/migration/migration.helpers.js.map +1 -0
  8. package/dist/migration/migration.types.js +2 -0
  9. package/dist/migration/migration.types.js.map +1 -0
  10. package/dist/pagination/pagination.core.d.ts.map +1 -0
  11. package/dist/pagination/pagination.core.js +210 -0
  12. package/dist/pagination/pagination.core.js.map +1 -0
  13. package/dist/queryBuilder/queryBuilder.core.d.ts.map +1 -0
  14. package/dist/queryBuilder/queryBuilder.core.js +342 -0
  15. package/dist/queryBuilder/queryBuilder.core.js.map +1 -0
  16. package/dist/queryBuilder/queryBuilder.factory.d.ts.map +1 -0
  17. package/dist/queryBuilder/queryBuilder.factory.js +33 -0
  18. package/dist/queryBuilder/queryBuilder.factory.js.map +1 -0
  19. package/dist/queryBuilder/queryBuilder.filter.d.ts.map +1 -0
  20. package/dist/queryBuilder/queryBuilder.filter.js +336 -0
  21. package/dist/queryBuilder/queryBuilder.filter.js.map +1 -0
  22. package/dist/queryBuilder/queryBuilder.type.d.ts.map +1 -0
  23. package/dist/queryBuilder/queryBuilder.type.js +2 -0
  24. package/dist/queryBuilder/queryBuilder.type.js.map +1 -0
  25. package/dist/relations/relations.definition.d.ts.map +1 -0
  26. package/dist/relations/relations.definition.js +195 -0
  27. package/dist/relations/relations.definition.js.map +1 -0
  28. package/package.json +9 -9
  29. package/LICENSE +0 -21
@@ -0,0 +1,342 @@
1
+ import { cloneFilter } from "./queryBuilder.factory.js";
2
+ /**
3
+ * Query builder used to construct database-neutral query definitions.
4
+ *
5
+ * The builder does not execute queries. It produces a plain query
6
+ * definition that repositories or adapters can translate into their
7
+ * ORM-specific representation.
8
+ */
9
+ export class QueryBuilder {
10
+ filterState;
11
+ paginationState;
12
+ sortState = [];
13
+ selectState = [];
14
+ _revision = 0;
15
+ _cachedBuild;
16
+ invalidateCache() {
17
+ this._cachedBuild = undefined;
18
+ this._revision++;
19
+ }
20
+ /**
21
+ * Adds an equality condition.
22
+ */
23
+ where(field, value) {
24
+ return this.addCondition({
25
+ field,
26
+ operator: "equals",
27
+ value,
28
+ });
29
+ }
30
+ /**
31
+ * Adds a condition using a specific operator.
32
+ */
33
+ whereOperator(field, operator, value) {
34
+ return this.addCondition({
35
+ field,
36
+ operator,
37
+ value,
38
+ });
39
+ }
40
+ /**
41
+ * Adds a not-equal condition.
42
+ */
43
+ whereNot(field, value) {
44
+ return this.whereOperator(field, "not", value);
45
+ }
46
+ /**
47
+ * Adds an IN condition.
48
+ */
49
+ whereIn(field, values) {
50
+ return this.whereOperator(field, "in", [...values]);
51
+ }
52
+ /**
53
+ * Adds a NOT IN condition.
54
+ */
55
+ whereNotIn(field, values) {
56
+ return this.whereOperator(field, "notIn", [...values]);
57
+ }
58
+ /**
59
+ * Adds a less-than condition.
60
+ */
61
+ whereLessThan(field, value) {
62
+ return this.whereOperator(field, "lt", value);
63
+ }
64
+ /**
65
+ * Adds a less-than-or-equal condition.
66
+ */
67
+ whereLessThanOrEqual(field, value) {
68
+ return this.whereOperator(field, "lte", value);
69
+ }
70
+ /**
71
+ * Adds a greater-than condition.
72
+ */
73
+ whereGreaterThan(field, value) {
74
+ return this.whereOperator(field, "gt", value);
75
+ }
76
+ /**
77
+ * Adds a greater-than-or-equal condition.
78
+ */
79
+ whereGreaterThanOrEqual(field, value) {
80
+ return this.whereOperator(field, "gte", value);
81
+ }
82
+ /**
83
+ * Adds a contains condition.
84
+ */
85
+ whereContains(field, value) {
86
+ return this.whereOperator(field, "contains", value);
87
+ }
88
+ /**
89
+ * Adds a starts-with condition.
90
+ */
91
+ whereStartsWith(field, value) {
92
+ return this.whereOperator(field, "startsWith", value);
93
+ }
94
+ /**
95
+ * Adds an ends-with condition.
96
+ */
97
+ whereEndsWith(field, value) {
98
+ return this.whereOperator(field, "endsWith", value);
99
+ }
100
+ /**
101
+ * Adds an IS NULL condition.
102
+ */
103
+ whereNull(field) {
104
+ return this.whereOperator(field, "isNull");
105
+ }
106
+ /**
107
+ * Adds an IS NOT NULL condition.
108
+ */
109
+ whereNotNull(field) {
110
+ return this.whereOperator(field, "isNotNull");
111
+ }
112
+ /**
113
+ * Adds an AND group.
114
+ */
115
+ and(...filters) {
116
+ const existing = this.filterState;
117
+ const group = {
118
+ and: filters,
119
+ };
120
+ this.filterState = existing
121
+ ? {
122
+ and: [existing, group],
123
+ }
124
+ : group;
125
+ this.invalidateCache();
126
+ return this;
127
+ }
128
+ /**
129
+ * Adds an OR group.
130
+ */
131
+ or(...filters) {
132
+ const existing = this.filterState;
133
+ const group = {
134
+ or: filters,
135
+ };
136
+ this.filterState = existing
137
+ ? {
138
+ and: [existing, group],
139
+ }
140
+ : group;
141
+ this.invalidateCache();
142
+ return this;
143
+ }
144
+ /**
145
+ * Adds a NOT group.
146
+ */
147
+ not(filter) {
148
+ const existing = this.filterState;
149
+ const group = {
150
+ not: filter,
151
+ };
152
+ this.filterState = existing
153
+ ? {
154
+ and: [existing, group],
155
+ }
156
+ : group;
157
+ this.invalidateCache();
158
+ return this;
159
+ }
160
+ /**
161
+ * Sets the requested page.
162
+ */
163
+ page(page) {
164
+ this.paginationState = {
165
+ ...this.paginationState,
166
+ page,
167
+ };
168
+ this.invalidateCache();
169
+ return this;
170
+ }
171
+ /**
172
+ * Sets the requested page size.
173
+ */
174
+ limit(limit) {
175
+ this.paginationState = {
176
+ ...this.paginationState,
177
+ limit,
178
+ };
179
+ this.invalidateCache();
180
+ return this;
181
+ }
182
+ /**
183
+ * Sets pagination.
184
+ */
185
+ paginate(pagination) {
186
+ this.paginationState = {
187
+ ...pagination,
188
+ };
189
+ this.invalidateCache();
190
+ return this;
191
+ }
192
+ /**
193
+ * Sorts ascending by a field.
194
+ */
195
+ orderByAsc(field) {
196
+ return this.orderBy(field, "asc");
197
+ }
198
+ /**
199
+ * Sorts descending by a field.
200
+ */
201
+ orderByDesc(field) {
202
+ return this.orderBy(field, "desc");
203
+ }
204
+ /**
205
+ * Adds a sort definition.
206
+ */
207
+ orderBy(field, direction = "asc") {
208
+ this.sortState.push({
209
+ field,
210
+ direction,
211
+ });
212
+ this.invalidateCache();
213
+ return this;
214
+ }
215
+ /**
216
+ * Replaces all sort definitions.
217
+ */
218
+ sort(sort) {
219
+ this.sortState = [...sort];
220
+ this.invalidateCache();
221
+ return this;
222
+ }
223
+ /**
224
+ * Selects specific fields.
225
+ */
226
+ select(...fields) {
227
+ this.selectState = [...new Set(fields)];
228
+ this.invalidateCache();
229
+ return this;
230
+ }
231
+ /**
232
+ * Clears all filters.
233
+ */
234
+ clearFilters() {
235
+ this.filterState = undefined;
236
+ this.invalidateCache();
237
+ return this;
238
+ }
239
+ /**
240
+ * Clears pagination.
241
+ */
242
+ clearPagination() {
243
+ this.paginationState = undefined;
244
+ this.invalidateCache();
245
+ return this;
246
+ }
247
+ /**
248
+ * Clears sorting.
249
+ */
250
+ clearSort() {
251
+ this.sortState = [];
252
+ this.invalidateCache();
253
+ return this;
254
+ }
255
+ /**
256
+ * Clears selected fields.
257
+ */
258
+ clearSelect() {
259
+ this.selectState = [];
260
+ this.invalidateCache();
261
+ return this;
262
+ }
263
+ /**
264
+ * Returns the immutable query definition.
265
+ */
266
+ build() {
267
+ if (this._cachedBuild) {
268
+ return this._cachedBuild;
269
+ }
270
+ const result = Object.freeze({
271
+ filter: cloneFilter(this.filterState),
272
+ pagination: this.paginationState
273
+ ? Object.freeze({
274
+ ...this.paginationState,
275
+ })
276
+ : undefined,
277
+ sort: this.sortState.length > 0
278
+ ? Object.freeze([...this.sortState])
279
+ : undefined,
280
+ select: this.selectState.length > 0
281
+ ? Object.freeze([...this.selectState])
282
+ : undefined,
283
+ });
284
+ this._cachedBuild = result;
285
+ return result;
286
+ }
287
+ /**
288
+ * Converts the builder into generic query options.
289
+ */
290
+ toQueryOptions() {
291
+ return {
292
+ pagination: this.paginationState,
293
+ sort: this.sortState.length > 0 ? [...this.sortState] : undefined,
294
+ };
295
+ }
296
+ /**
297
+ * Creates an independent copy of the builder.
298
+ */
299
+ clone() {
300
+ const builder = new QueryBuilder();
301
+ builder.filterState = cloneFilter(this.filterState);
302
+ builder.paginationState = this.paginationState
303
+ ? {
304
+ ...this.paginationState,
305
+ }
306
+ : undefined;
307
+ builder.sortState = [...this.sortState];
308
+ builder.selectState = [...this.selectState];
309
+ return builder;
310
+ }
311
+ /**
312
+ * Adds a condition to the current filter.
313
+ */
314
+ addCondition(condition) {
315
+ const existing = this.filterState;
316
+ if (!existing) {
317
+ this.filterState = {
318
+ conditions: [condition],
319
+ };
320
+ this.invalidateCache();
321
+ return this;
322
+ }
323
+ if (existing.conditions && !existing.and && !existing.or && !existing.not) {
324
+ this.filterState = {
325
+ conditions: [...existing.conditions, condition],
326
+ };
327
+ this.invalidateCache();
328
+ return this;
329
+ }
330
+ this.filterState = {
331
+ and: [
332
+ existing,
333
+ {
334
+ conditions: [condition],
335
+ },
336
+ ],
337
+ };
338
+ this.invalidateCache();
339
+ return this;
340
+ }
341
+ }
342
+ //# sourceMappingURL=queryBuilder.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.core.js","sourceRoot":"","sources":["../../src/queryBuilder/queryBuilder.core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.factory.d.ts","sourceRoot":"","sources":["../../src/queryBuilder/queryBuilder.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,SAAS,MAAM,GAAG,MAAM,KAC3B,YAAY,CAAC,MAAM,CAAC,CAExB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAyBzE"}
@@ -0,0 +1,33 @@
1
+ import { QueryBuilder } from "./queryBuilder.core.js";
2
+ /**
3
+ * Creates a new query builder.
4
+ */
5
+ export function createQueryBuilder() {
6
+ return new QueryBuilder();
7
+ }
8
+ /**
9
+ * Clones a query filter without sharing mutable arrays.
10
+ */
11
+ export function cloneFilter(filter) {
12
+ if (!filter) {
13
+ return undefined;
14
+ }
15
+ return {
16
+ conditions: filter.conditions
17
+ ? filter.conditions.map((condition) => ({
18
+ ...condition,
19
+ ...(Array.isArray(condition.value)
20
+ ? {
21
+ value: [...condition.value],
22
+ }
23
+ : {}),
24
+ }))
25
+ : undefined,
26
+ and: filter.and
27
+ ? filter.and.map((child) => cloneFilter(child))
28
+ : undefined,
29
+ or: filter.or ? filter.or.map((child) => cloneFilter(child)) : undefined,
30
+ not: filter.not ? cloneFilter(filter.not) : undefined,
31
+ };
32
+ }
33
+ //# sourceMappingURL=queryBuilder.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.factory.js","sourceRoot":"","sources":["../../src/queryBuilder/queryBuilder.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAGhC,OAAO,IAAI,YAAY,EAAU,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;YAC3B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACpC,GAAG,SAAS;gBACZ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;oBAChC,CAAC,CAAC;wBACE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;qBAC5B;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACL,CAAC,CAAC,SAAS;QAEb,GAAG,EAAE,MAAM,CAAC,GAAG;YACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC;YAChD,CAAC,CAAC,SAAS;QAEb,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAEzE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;KACtD,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.filter.d.ts","sourceRoot":"","sources":["../../src/queryBuilder/queryBuilder.filter.ts"],"names":[],"mappings":"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"}