@decaf-ts/core 0.8.24 → 0.8.25
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 +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/query/Condition.js +21 -0
- package/lib/esm/query/Condition.js.map +1 -1
- package/lib/esm/query/Statement.d.ts +6 -2
- package/lib/esm/query/Statement.js +31 -5
- package/lib/esm/query/Statement.js.map +1 -1
- package/lib/esm/query/constants.d.ts +2 -0
- package/lib/esm/query/constants.js +2 -1
- package/lib/esm/query/constants.js.map +1 -1
- package/lib/esm/query/options.d.ts +30 -0
- package/lib/esm/ram/RamAdapter.d.ts +10 -5
- package/lib/esm/ram/RamAdapter.js +128 -7
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/RamStatement.d.ts +7 -0
- package/lib/esm/ram/RamStatement.js +109 -1
- package/lib/esm/ram/RamStatement.js.map +1 -1
- package/lib/esm/ram/types.d.ts +6 -16
- package/lib/esm/repository/Repository.d.ts +48 -0
- package/lib/esm/repository/Repository.js +78 -0
- package/lib/esm/repository/Repository.js.map +1 -1
- package/lib/esm/tasks/TaskContext.d.ts +9 -0
- package/lib/esm/tasks/TaskContext.js +39 -0
- package/lib/esm/tasks/TaskContext.js.map +1 -1
- package/lib/esm/tasks/TaskEngine.d.ts +14 -0
- package/lib/esm/tasks/TaskEngine.js +99 -2
- package/lib/esm/tasks/TaskEngine.js.map +1 -1
- package/lib/esm/tasks/TaskErrors.d.ts +20 -0
- package/lib/esm/tasks/TaskErrors.js +42 -0
- package/lib/esm/tasks/TaskErrors.js.map +1 -0
- package/lib/esm/tasks/TaskStateChangeError.d.ts +11 -0
- package/lib/esm/tasks/TaskStateChangeError.js +9 -0
- package/lib/esm/tasks/TaskStateChangeError.js.map +1 -0
- package/lib/esm/tasks/TaskTracker.d.ts +7 -5
- package/lib/esm/tasks/TaskTracker.js +72 -36
- package/lib/esm/tasks/TaskTracker.js.map +1 -1
- package/lib/esm/tasks/constants.d.ts +1 -0
- package/lib/esm/tasks/constants.js +1 -0
- package/lib/esm/tasks/constants.js.map +1 -1
- package/lib/esm/tasks/index.d.ts +1 -0
- package/lib/esm/tasks/index.js +1 -0
- package/lib/esm/tasks/index.js.map +1 -1
- package/lib/esm/tasks/logging.js +4 -1
- package/lib/esm/tasks/logging.js.map +1 -1
- package/lib/esm/tasks/models/TaskModel.d.ts +1 -0
- package/lib/esm/tasks/models/TaskModel.js +5 -0
- package/lib/esm/tasks/models/TaskModel.js.map +1 -1
- package/lib/esm/tasks/types.d.ts +2 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/query/Condition.cjs +21 -0
- package/lib/query/Condition.js.map +1 -1
- package/lib/query/Statement.cjs +31 -5
- package/lib/query/Statement.d.ts +6 -2
- package/lib/query/Statement.js.map +1 -1
- package/lib/query/constants.cjs +2 -1
- package/lib/query/constants.d.ts +2 -0
- package/lib/query/constants.js.map +1 -1
- package/lib/query/options.d.ts +30 -0
- package/lib/ram/RamAdapter.cjs +128 -7
- package/lib/ram/RamAdapter.d.ts +10 -5
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/RamStatement.cjs +109 -1
- package/lib/ram/RamStatement.d.ts +7 -0
- package/lib/ram/RamStatement.js.map +1 -1
- package/lib/ram/types.d.ts +6 -16
- package/lib/repository/Repository.cjs +78 -0
- package/lib/repository/Repository.d.ts +48 -0
- package/lib/repository/Repository.js.map +1 -1
- package/lib/tasks/TaskContext.cjs +39 -0
- package/lib/tasks/TaskContext.d.ts +9 -0
- package/lib/tasks/TaskContext.js.map +1 -1
- package/lib/tasks/TaskEngine.cjs +99 -2
- package/lib/tasks/TaskEngine.d.ts +14 -0
- package/lib/tasks/TaskEngine.js.map +1 -1
- package/lib/tasks/TaskErrors.cjs +50 -0
- package/lib/tasks/TaskErrors.d.ts +20 -0
- package/lib/tasks/TaskErrors.js.map +1 -0
- package/lib/tasks/TaskStateChangeError.cjs +13 -0
- package/lib/tasks/TaskStateChangeError.d.ts +11 -0
- package/lib/tasks/TaskStateChangeError.js.map +1 -0
- package/lib/tasks/TaskTracker.cjs +72 -36
- package/lib/tasks/TaskTracker.d.ts +7 -5
- package/lib/tasks/TaskTracker.js.map +1 -1
- package/lib/tasks/constants.cjs +1 -0
- package/lib/tasks/constants.d.ts +1 -0
- package/lib/tasks/constants.js.map +1 -1
- package/lib/tasks/index.cjs +1 -0
- package/lib/tasks/index.d.ts +1 -0
- package/lib/tasks/index.js.map +1 -1
- package/lib/tasks/logging.cjs +4 -1
- package/lib/tasks/logging.js.map +1 -1
- package/lib/tasks/models/TaskModel.cjs +5 -0
- package/lib/tasks/models/TaskModel.d.ts +1 -0
- package/lib/tasks/models/TaskModel.js.map +1 -1
- package/lib/tasks/types.d.ts +2 -0
- package/package.json +1 -1
package/lib/ram/RamAdapter.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RamAdapter = void 0;
|
|
4
4
|
const RamStatement_1 = require("./RamStatement.cjs");
|
|
5
|
+
const query_1 = require("./../query/index.cjs");
|
|
5
6
|
const persistence_1 = require("./../persistence/index.cjs");
|
|
6
7
|
const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
|
|
7
8
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
@@ -302,16 +303,14 @@ class RamAdapter extends persistence_1.Adapter {
|
|
|
302
303
|
}
|
|
303
304
|
/**
|
|
304
305
|
* @description Gets or creates a table in the in-memory storage
|
|
305
|
-
* @summary Retrieves the Map representing a table for a given model
|
|
306
|
-
* If the table doesn't exist, it creates a new one
|
|
307
|
-
*
|
|
306
|
+
* @summary Retrieves the Map representing a table for a given model class.
|
|
307
|
+
* If the table doesn't exist, it creates a new one so callers can insert or
|
|
308
|
+
* query entities without null reference checks.
|
|
308
309
|
* @template M - The model type for the table
|
|
309
|
-
* @param {
|
|
310
|
+
* @param {Constructor<M>} from - The model class
|
|
310
311
|
* @return {Map<string | number, any> | undefined} The table Map or undefined
|
|
311
312
|
*/
|
|
312
313
|
tableFor(from) {
|
|
313
|
-
if (typeof from === "string")
|
|
314
|
-
from = decorator_validation_1.Model.get(from);
|
|
315
314
|
const table = decorator_validation_1.Model.tableName(from);
|
|
316
315
|
if (!this.client.has(table))
|
|
317
316
|
this.client.set(table, new Map());
|
|
@@ -363,17 +362,108 @@ class RamAdapter extends persistence_1.Adapter {
|
|
|
363
362
|
async raw(rawInput, docsOnly = true, ...args) {
|
|
364
363
|
const { log, ctx } = this.logCtx(args, this.raw);
|
|
365
364
|
log.debug(`performing raw query: ${JSON.stringify(rawInput)}`);
|
|
366
|
-
const { where, sort, limit, skip, from, groupBy } = rawInput;
|
|
365
|
+
const { where, sort, limit, skip, from, groupBy, count: countField, min: minField, max: maxField, sum: sumField, avg: avgField, distinct: distinctField, } = rawInput;
|
|
367
366
|
let { select } = rawInput;
|
|
368
367
|
const collection = this.tableFor(from);
|
|
369
368
|
if (!collection)
|
|
370
369
|
throw new db_decorators_1.InternalError(`Table ${from} not found in RamAdapter`);
|
|
370
|
+
const clazz = from;
|
|
371
371
|
const id = decorator_validation_1.Model.pk(from);
|
|
372
372
|
const props = decoration_1.Metadata.get(from, decoration_1.Metadata.key(db_decorators_1.DBKeys.ID, id));
|
|
373
373
|
let result = Array.from(collection.entries()).map(([pk, r]) => this.revert(r, from, persistence_1.Sequence.parseValue(props.type, pk), undefined, ctx));
|
|
374
374
|
if (sort)
|
|
375
375
|
result = result.sort(sort);
|
|
376
376
|
result = where ? result.filter(where) : result;
|
|
377
|
+
// Handle aggregate operations
|
|
378
|
+
if ('count' in rawInput) {
|
|
379
|
+
// Count operation
|
|
380
|
+
if (!countField) {
|
|
381
|
+
// Count all records (COUNT(*))
|
|
382
|
+
return result.length;
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
// Count specific field (non-null values) (COUNT(field))
|
|
386
|
+
const count = result.filter(r => r[countField] !== undefined && r[countField] !== null).length;
|
|
387
|
+
return count;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
if (minField !== undefined) {
|
|
391
|
+
this.ensureFieldType(clazz, minField, "MIN operation", (type) => this.isNumericType(type) || type === "date", "numeric or date");
|
|
392
|
+
// Min operation
|
|
393
|
+
if (result.length === 0)
|
|
394
|
+
return null;
|
|
395
|
+
const values = result.map(r => r[minField]).filter(v => v !== undefined && v !== null);
|
|
396
|
+
if (values.length === 0)
|
|
397
|
+
return null;
|
|
398
|
+
// Find minimum value preserving original type
|
|
399
|
+
let minValue = values[0];
|
|
400
|
+
for (const v of values) {
|
|
401
|
+
const comparison = v instanceof Date ? v.getTime() : (typeof v === 'bigint' ? Number(v) : Number(v));
|
|
402
|
+
const minComparison = minValue instanceof Date ? minValue.getTime() : (typeof minValue === 'bigint' ? Number(minValue) : Number(minValue));
|
|
403
|
+
if (comparison < minComparison) {
|
|
404
|
+
minValue = v;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return minValue;
|
|
408
|
+
}
|
|
409
|
+
if (maxField !== undefined) {
|
|
410
|
+
this.ensureFieldType(clazz, maxField, "MAX operation", (type) => this.isNumericType(type) || type === "date", "numeric or date");
|
|
411
|
+
// Max operation
|
|
412
|
+
if (result.length === 0)
|
|
413
|
+
return null;
|
|
414
|
+
const values = result.map(r => r[maxField]).filter(v => v !== undefined && v !== null);
|
|
415
|
+
if (values.length === 0)
|
|
416
|
+
return null;
|
|
417
|
+
// Find maximum value preserving original type
|
|
418
|
+
let maxValue = values[0];
|
|
419
|
+
for (const v of values) {
|
|
420
|
+
const comparison = v instanceof Date ? v.getTime() : (typeof v === 'bigint' ? Number(v) : Number(v));
|
|
421
|
+
const maxComparison = maxValue instanceof Date ? maxValue.getTime() : (typeof maxValue === 'bigint' ? Number(maxValue) : Number(maxValue));
|
|
422
|
+
if (comparison > maxComparison) {
|
|
423
|
+
maxValue = v;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
return maxValue;
|
|
427
|
+
}
|
|
428
|
+
if (sumField !== undefined) {
|
|
429
|
+
this.ensureFieldType(clazz, sumField, "SUM operation", (type) => this.isNumericType(type), "numeric");
|
|
430
|
+
if (result.length === 0)
|
|
431
|
+
return null;
|
|
432
|
+
const values = result
|
|
433
|
+
.map((r) => r[sumField])
|
|
434
|
+
.filter((v) => v !== undefined && v !== null);
|
|
435
|
+
if (values.length === 0)
|
|
436
|
+
return null;
|
|
437
|
+
const sum = values.reduce((acc, v) => acc + this.toNumericValue(v, sumField, "SUM operation"), 0);
|
|
438
|
+
return sum;
|
|
439
|
+
}
|
|
440
|
+
if (avgField !== undefined) {
|
|
441
|
+
this.ensureFieldType(clazz, avgField, "AVG operation", (type) => this.isNumericType(type), "numeric");
|
|
442
|
+
if (result.length === 0)
|
|
443
|
+
return null;
|
|
444
|
+
const values = result
|
|
445
|
+
.map((r) => r[avgField])
|
|
446
|
+
.filter((v) => v !== undefined && v !== null);
|
|
447
|
+
if (values.length === 0)
|
|
448
|
+
return null;
|
|
449
|
+
const total = values.reduce((acc, v) => acc + this.toNumericValue(v, avgField, "AVG operation"), 0);
|
|
450
|
+
const average = total / values.length;
|
|
451
|
+
return average;
|
|
452
|
+
}
|
|
453
|
+
if (distinctField !== undefined) {
|
|
454
|
+
// Distinct operation
|
|
455
|
+
const seen = new Set();
|
|
456
|
+
const distinctResults = [];
|
|
457
|
+
for (const item of result) {
|
|
458
|
+
const value = item[distinctField];
|
|
459
|
+
const key = JSON.stringify(value);
|
|
460
|
+
if (!seen.has(key)) {
|
|
461
|
+
seen.add(key);
|
|
462
|
+
distinctResults.push(value);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
return distinctResults;
|
|
466
|
+
}
|
|
377
467
|
if (groupBy && groupBy.length) {
|
|
378
468
|
const groupedResults = [];
|
|
379
469
|
const seen = new Map();
|
|
@@ -493,6 +583,37 @@ class RamAdapter extends persistence_1.Adapter {
|
|
|
493
583
|
.define((0, db_decorators_1.onCreateUpdate)(handlers_1.createdByOnRamCreateUpdate), (0, decoration_1.propMetadata)(updatedByKey, {}))
|
|
494
584
|
.apply();
|
|
495
585
|
}
|
|
586
|
+
ensureFieldType(clazz, field, context, predicate, description) {
|
|
587
|
+
const type = this.resolveFieldType(clazz, field);
|
|
588
|
+
if (!type || !predicate(type)) {
|
|
589
|
+
throw new query_1.QueryError(`${context} requires ${description} attribute, but "${field}" is ${type || "unknown"}`);
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
resolveFieldType(clazz, field) {
|
|
593
|
+
const propKey = field;
|
|
594
|
+
const metaType = decoration_1.Metadata.type(clazz, propKey) ??
|
|
595
|
+
decoration_1.Metadata.getPropDesignTypes(clazz, propKey)?.designType;
|
|
596
|
+
return this.normalizeMetaType(metaType);
|
|
597
|
+
}
|
|
598
|
+
normalizeMetaType(metaType) {
|
|
599
|
+
if (!metaType)
|
|
600
|
+
return undefined;
|
|
601
|
+
if (typeof metaType === "string")
|
|
602
|
+
return metaType.toLowerCase();
|
|
603
|
+
if (typeof metaType === "function" && metaType.name)
|
|
604
|
+
return metaType.name.toLowerCase();
|
|
605
|
+
return undefined;
|
|
606
|
+
}
|
|
607
|
+
isNumericType(type) {
|
|
608
|
+
return type === "number" || type === "bigint";
|
|
609
|
+
}
|
|
610
|
+
toNumericValue(value, field, context) {
|
|
611
|
+
if (typeof value === "number")
|
|
612
|
+
return value;
|
|
613
|
+
if (typeof value === "bigint")
|
|
614
|
+
return Number(value);
|
|
615
|
+
throw new query_1.QueryError(`${context} on "${field}" requires numeric values, but got ${typeof value}`);
|
|
616
|
+
}
|
|
496
617
|
getClient() {
|
|
497
618
|
return new Map();
|
|
498
619
|
}
|
package/lib/ram/RamAdapter.d.ts
CHANGED
|
@@ -228,14 +228,14 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
|
|
|
228
228
|
delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
|
|
229
229
|
/**
|
|
230
230
|
* @description Gets or creates a table in the in-memory storage
|
|
231
|
-
* @summary Retrieves the Map representing a table for a given model
|
|
232
|
-
* If the table doesn't exist, it creates a new one
|
|
233
|
-
*
|
|
231
|
+
* @summary Retrieves the Map representing a table for a given model class.
|
|
232
|
+
* If the table doesn't exist, it creates a new one so callers can insert or
|
|
233
|
+
* query entities without null reference checks.
|
|
234
234
|
* @template M - The model type for the table
|
|
235
|
-
* @param {
|
|
235
|
+
* @param {Constructor<M>} from - The model class
|
|
236
236
|
* @return {Map<string | number, any> | undefined} The table Map or undefined
|
|
237
237
|
*/
|
|
238
|
-
protected tableFor<M extends Model>(from:
|
|
238
|
+
protected tableFor<M extends Model>(from: Constructor<M>): Map<string | number, any> | undefined;
|
|
239
239
|
/**
|
|
240
240
|
* @description Executes a raw query against the in-memory storage
|
|
241
241
|
* @summary Performs a query operation on the in-memory data store using the provided query specification.
|
|
@@ -329,5 +329,10 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
|
|
|
329
329
|
* RamAdapter->>Decoration: apply()
|
|
330
330
|
*/
|
|
331
331
|
static decoration(): void;
|
|
332
|
+
private ensureFieldType;
|
|
333
|
+
private resolveFieldType;
|
|
334
|
+
private normalizeMetaType;
|
|
335
|
+
private isNumericType;
|
|
336
|
+
private toNumericValue;
|
|
332
337
|
protected getClient(): RamStorage;
|
|
333
338
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../src/ram/RamAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../src/ram/RamAdapter.ts"],"names":[],"mappings":"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"}
|
package/lib/ram/RamStatement.cjs
CHANGED
|
@@ -4,8 +4,8 @@ exports.RamStatement = void 0;
|
|
|
4
4
|
const query_1 = require("./../query/index.cjs");
|
|
5
5
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
6
6
|
const Statement_1 = require("./../query/Statement.cjs");
|
|
7
|
-
const decoration_1 = require("@decaf-ts/decoration");
|
|
8
7
|
const constants_1 = require("./../repository/constants.cjs");
|
|
8
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
9
9
|
/**
|
|
10
10
|
* @description RAM-specific query statement builder
|
|
11
11
|
* @summary Extends the base Statement class to provide query building functionality for the RAM adapter.
|
|
@@ -112,6 +112,14 @@ class RamStatement extends Statement_1.Statement {
|
|
|
112
112
|
* @return {RawRamQuery<M>} The constructed RAM query object
|
|
113
113
|
*/
|
|
114
114
|
build() {
|
|
115
|
+
if (this.minSelector)
|
|
116
|
+
this.ensureNumberOrDateSelector(this.minSelector, "MIN operation");
|
|
117
|
+
if (this.maxSelector)
|
|
118
|
+
this.ensureNumberOrDateSelector(this.maxSelector, "MAX operation");
|
|
119
|
+
if (this.sumSelector)
|
|
120
|
+
this.ensureNumericSelector(this.sumSelector, "SUM operation");
|
|
121
|
+
if (this.avgSelector)
|
|
122
|
+
this.ensureNumericSelector(this.avgSelector, "AVG operation");
|
|
115
123
|
const result = {
|
|
116
124
|
select: this.selectSelector,
|
|
117
125
|
from: this.fromSelector,
|
|
@@ -125,6 +133,18 @@ class RamStatement extends Statement_1.Statement {
|
|
|
125
133
|
skip: this.offsetSelector,
|
|
126
134
|
groupBy: this.groupBySelectors,
|
|
127
135
|
};
|
|
136
|
+
if (typeof this.countSelector !== "undefined")
|
|
137
|
+
result.count = this.countSelector;
|
|
138
|
+
if (this.minSelector)
|
|
139
|
+
result.min = this.minSelector;
|
|
140
|
+
if (this.maxSelector)
|
|
141
|
+
result.max = this.maxSelector;
|
|
142
|
+
if (this.sumSelector)
|
|
143
|
+
result.sum = this.sumSelector;
|
|
144
|
+
if (this.avgSelector)
|
|
145
|
+
result.avg = this.avgSelector;
|
|
146
|
+
if (this.distinctSelector)
|
|
147
|
+
result.distinct = this.distinctSelector;
|
|
128
148
|
if (this.orderBySelectors?.length)
|
|
129
149
|
result.sort = this.getSort();
|
|
130
150
|
return result;
|
|
@@ -178,6 +198,29 @@ class RamStatement extends Statement_1.Statement {
|
|
|
178
198
|
return m[attr1] < comparison;
|
|
179
199
|
case query_1.Operator.SMALLER_EQ:
|
|
180
200
|
return m[attr1] <= comparison;
|
|
201
|
+
case query_1.Operator.IN:
|
|
202
|
+
if (!Array.isArray(comparison))
|
|
203
|
+
throw new query_1.QueryError(`IN operator requires an array, got: ${typeof comparison}`);
|
|
204
|
+
return comparison.includes(m[attr1]);
|
|
205
|
+
case query_1.Operator.BETWEEN: {
|
|
206
|
+
if (!Array.isArray(comparison) || comparison.length !== 2)
|
|
207
|
+
throw new query_1.QueryError(`BETWEEN operator requires an array with 2 values [min, max], got: ${JSON.stringify(comparison)}`);
|
|
208
|
+
const attr = attr1;
|
|
209
|
+
const attrName = attr;
|
|
210
|
+
const attrType = this.determineAttributeType(m.constructor, attrName, "BETWEEN");
|
|
211
|
+
if (!this.isNumericType(attrType) && attrType !== "date") {
|
|
212
|
+
throw new query_1.QueryError(`BETWEEN operator requires numeric or date attributes, but "${attrName}" is ${attrType ||
|
|
213
|
+
"unknown"}`);
|
|
214
|
+
}
|
|
215
|
+
const [min, max] = comparison;
|
|
216
|
+
const value = m[attr];
|
|
217
|
+
const comparableValue = this.toComparableValue(value, attrType, attrName, "BETWEEN", { allowNull: true });
|
|
218
|
+
if (comparableValue === null)
|
|
219
|
+
return false;
|
|
220
|
+
const minComparable = this.toComparableValue(min, attrType, attrName, "BETWEEN min");
|
|
221
|
+
const maxComparable = this.toComparableValue(max, attrType, attrName, "BETWEEN max");
|
|
222
|
+
return (comparableValue >= minComparable && comparableValue <= maxComparable);
|
|
223
|
+
}
|
|
181
224
|
default:
|
|
182
225
|
throw new db_decorators_1.InternalError(`Invalid operator for standard comparisons: ${operator}`);
|
|
183
226
|
}
|
|
@@ -200,6 +243,71 @@ class RamStatement extends Statement_1.Statement {
|
|
|
200
243
|
},
|
|
201
244
|
};
|
|
202
245
|
}
|
|
246
|
+
ensureNumericSelector(selector, context) {
|
|
247
|
+
this.ensureSelectorType(selector, context, (type) => this.isNumericType(type), "numeric");
|
|
248
|
+
}
|
|
249
|
+
ensureNumberOrDateSelector(selector, context) {
|
|
250
|
+
this.ensureSelectorType(selector, context, (type) => this.isNumericType(type) || type === "date", "numeric or date");
|
|
251
|
+
}
|
|
252
|
+
ensureSelectorType(selector, context, predicate, description) {
|
|
253
|
+
if (!this.fromSelector) {
|
|
254
|
+
throw new db_decorators_1.InternalError(`${context} requires a target model. Call from() before aggregating.`);
|
|
255
|
+
}
|
|
256
|
+
const attr = selector;
|
|
257
|
+
const type = this.determineAttributeType(this.fromSelector, attr, context);
|
|
258
|
+
if (!predicate(type)) {
|
|
259
|
+
throw new query_1.QueryError(`${context} requires a ${description} attribute, but "${attr}" is ${type || "unknown"}`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
determineAttributeType(clazz, attr, context) {
|
|
263
|
+
const propKey = attr;
|
|
264
|
+
const metaType = decoration_1.Metadata.type(clazz, propKey) ??
|
|
265
|
+
decoration_1.Metadata.getPropDesignTypes(clazz, propKey)?.designType;
|
|
266
|
+
const resolved = this.normalizeMetaType(metaType);
|
|
267
|
+
if (!resolved) {
|
|
268
|
+
throw new query_1.QueryError(`${context} could not resolve property type for "${attr}"`);
|
|
269
|
+
}
|
|
270
|
+
return resolved;
|
|
271
|
+
}
|
|
272
|
+
normalizeMetaType(metaType) {
|
|
273
|
+
if (!metaType)
|
|
274
|
+
return undefined;
|
|
275
|
+
if (typeof metaType === "string")
|
|
276
|
+
return metaType.toLowerCase();
|
|
277
|
+
if (typeof metaType === "function" && metaType.name)
|
|
278
|
+
return metaType.name.toLowerCase();
|
|
279
|
+
return undefined;
|
|
280
|
+
}
|
|
281
|
+
isNumericType(type) {
|
|
282
|
+
return type === "number" || type === "bigint";
|
|
283
|
+
}
|
|
284
|
+
toComparableValue(value, attrType, attrName, context, options) {
|
|
285
|
+
if (value == null) {
|
|
286
|
+
if (options?.allowNull)
|
|
287
|
+
return null;
|
|
288
|
+
throw new query_1.QueryError(`${context} requires a value for "${attrName}"`);
|
|
289
|
+
}
|
|
290
|
+
switch (attrType) {
|
|
291
|
+
case "date":
|
|
292
|
+
if (!(value instanceof Date)) {
|
|
293
|
+
throw new query_1.QueryError(`${context} on date attribute "${attrName}" requires Date values`);
|
|
294
|
+
}
|
|
295
|
+
return value.getTime();
|
|
296
|
+
case "number":
|
|
297
|
+
if (typeof value !== "number") {
|
|
298
|
+
throw new query_1.QueryError(`${context} on numeric attribute "${attrName}" requires number values`);
|
|
299
|
+
}
|
|
300
|
+
return value;
|
|
301
|
+
case "bigint":
|
|
302
|
+
if (typeof value === "number")
|
|
303
|
+
return value;
|
|
304
|
+
if (typeof value === "bigint")
|
|
305
|
+
return Number(value);
|
|
306
|
+
throw new query_1.QueryError(`${context} on bigint attribute "${attrName}" requires numeric values`);
|
|
307
|
+
default:
|
|
308
|
+
throw new query_1.QueryError(`${context} unsupported type "${attrType}" for attribute "${attrName}"`);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
203
311
|
}
|
|
204
312
|
exports.RamStatement = RamStatement;
|
|
205
313
|
//# sourceMappingURL=RamStatement.js.map
|
|
@@ -82,4 +82,11 @@ export declare class RamStatement<M extends Model, R, A extends Adapter<M, any,
|
|
|
82
82
|
* RamStatement-->>Caller: Return query with where predicate
|
|
83
83
|
*/
|
|
84
84
|
protected parseCondition(condition: Condition<M>): RawRamQuery<any>;
|
|
85
|
+
private ensureNumericSelector;
|
|
86
|
+
private ensureNumberOrDateSelector;
|
|
87
|
+
private ensureSelectorType;
|
|
88
|
+
private determineAttributeType;
|
|
89
|
+
private normalizeMetaType;
|
|
90
|
+
private isNumericType;
|
|
91
|
+
private toComparableValue;
|
|
85
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../src/ram/RamStatement.ts"],"names":[],"mappings":";;;AAAA,gDAA0E;
|
|
1
|
+
{"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../src/ram/RamStatement.ts"],"names":[],"mappings":"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"}
|
package/lib/ram/types.d.ts
CHANGED
|
@@ -13,22 +13,6 @@ import { MultiLock } from "@decaf-ts/transactional-decorators";
|
|
|
13
13
|
* @category Ram
|
|
14
14
|
*/
|
|
15
15
|
export type RamStorage = Map<string, Map<string | number, any>>;
|
|
16
|
-
/**
|
|
17
|
-
* @description Query specification for RAM adapter
|
|
18
|
-
* @summary Defines the structure of a query for retrieving data from the in-memory storage.
|
|
19
|
-
* It specifies what fields to select, which model to query, filtering conditions,
|
|
20
|
-
* sorting criteria, and pagination options.
|
|
21
|
-
* @template M - The model type being queried
|
|
22
|
-
* @typedef {Object} RawRamQuery
|
|
23
|
-
* @property select - Fields to select from the model, or undefined for all fields
|
|
24
|
-
* @property {Constructor<M>} from - The model constructor to query
|
|
25
|
-
* @property {function(M): boolean} where - Predicate function for filtering entities
|
|
26
|
-
* @property {function(M, M): number} [sort] - Optional comparator function for sorting results
|
|
27
|
-
* @property {number} [limit] - Optional maximum number of results to return
|
|
28
|
-
* @property {number} [skip] - Optional number of results to skip (for pagination)
|
|
29
|
-
* @memberOf module:core
|
|
30
|
-
* @category Ram
|
|
31
|
-
*/
|
|
32
16
|
export type RawRamQuery<M extends Model = any> = {
|
|
33
17
|
select: undefined | (keyof M)[];
|
|
34
18
|
from: Constructor<M>;
|
|
@@ -37,6 +21,12 @@ export type RawRamQuery<M extends Model = any> = {
|
|
|
37
21
|
groupBy?: (keyof M)[];
|
|
38
22
|
limit?: number;
|
|
39
23
|
skip?: number;
|
|
24
|
+
count?: keyof M | null;
|
|
25
|
+
min?: keyof M;
|
|
26
|
+
max?: keyof M;
|
|
27
|
+
sum?: keyof M;
|
|
28
|
+
avg?: keyof M;
|
|
29
|
+
distinct?: keyof M;
|
|
40
30
|
};
|
|
41
31
|
/**
|
|
42
32
|
* @description Flags for RAM adapter operations
|
|
@@ -571,6 +571,84 @@ class Repository extends db_decorators_1.Repository {
|
|
|
571
571
|
.select(selector)
|
|
572
572
|
.from(this.class);
|
|
573
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* @description Creates a count query
|
|
576
|
+
* @summary Starts building a query that will count records
|
|
577
|
+
* @template S - The select selector type
|
|
578
|
+
* @param {S} [selector] - Optional field to count (counts all if not specified)
|
|
579
|
+
* @return A count query builder
|
|
580
|
+
*/
|
|
581
|
+
count(selector) {
|
|
582
|
+
return this.adapter
|
|
583
|
+
.Statement(this._overrides)
|
|
584
|
+
.count(selector)
|
|
585
|
+
.from(this.class);
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* @description Creates a min query
|
|
589
|
+
* @summary Starts building a query that will find the minimum value
|
|
590
|
+
* @template S - The select selector type
|
|
591
|
+
* @param {S} selector - Field to find minimum value of
|
|
592
|
+
* @return A min query builder
|
|
593
|
+
*/
|
|
594
|
+
min(selector) {
|
|
595
|
+
return this.adapter
|
|
596
|
+
.Statement(this._overrides)
|
|
597
|
+
.min(selector)
|
|
598
|
+
.from(this.class);
|
|
599
|
+
}
|
|
600
|
+
/**
|
|
601
|
+
* @description Creates a max query
|
|
602
|
+
* @summary Starts building a query that will find the maximum value
|
|
603
|
+
* @template S - The select selector type
|
|
604
|
+
* @param {S} selector - Field to find maximum value of
|
|
605
|
+
* @return A max query builder
|
|
606
|
+
*/
|
|
607
|
+
max(selector) {
|
|
608
|
+
return this.adapter
|
|
609
|
+
.Statement(this._overrides)
|
|
610
|
+
.max(selector)
|
|
611
|
+
.from(this.class);
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* @description Creates a sum query
|
|
615
|
+
* @summary Starts building a query that will sum values
|
|
616
|
+
* @template S - The select selector type
|
|
617
|
+
* @param {S} selector - Field to sum
|
|
618
|
+
* @return A sum query builder
|
|
619
|
+
*/
|
|
620
|
+
sum(selector) {
|
|
621
|
+
return this.adapter
|
|
622
|
+
.Statement(this._overrides)
|
|
623
|
+
.sum(selector)
|
|
624
|
+
.from(this.class);
|
|
625
|
+
}
|
|
626
|
+
/**
|
|
627
|
+
* @description Creates an average query
|
|
628
|
+
* @summary Starts building a query that will compute the average value
|
|
629
|
+
* @template S - The select selector type
|
|
630
|
+
* @param {S} selector - Field to average
|
|
631
|
+
* @return An average query builder
|
|
632
|
+
*/
|
|
633
|
+
avg(selector) {
|
|
634
|
+
return this.adapter
|
|
635
|
+
.Statement(this._overrides)
|
|
636
|
+
.avg(selector)
|
|
637
|
+
.from(this.class);
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* @description Creates a distinct query
|
|
641
|
+
* @summary Starts building a query that will find distinct values
|
|
642
|
+
* @template S - The select selector type
|
|
643
|
+
* @param {S} selector - Field to find distinct values of
|
|
644
|
+
* @return A distinct query builder
|
|
645
|
+
*/
|
|
646
|
+
distinct(selector) {
|
|
647
|
+
return this.adapter
|
|
648
|
+
.Statement(this._overrides)
|
|
649
|
+
.distinct(selector)
|
|
650
|
+
.from(this.class);
|
|
651
|
+
}
|
|
574
652
|
/**
|
|
575
653
|
* @description Executes a query with the specified conditions and options.
|
|
576
654
|
* @summary Provides a simplified way to query the database with common query parameters.
|
|
@@ -299,6 +299,54 @@ export declare class Repository<M extends Model<boolean>, A extends Adapter<any,
|
|
|
299
299
|
* @return A query builder for the selected fields.
|
|
300
300
|
*/
|
|
301
301
|
select<S extends readonly SelectSelector<M>[]>(selector: readonly [...S]): WhereOption<M, Pick<M, S[number]>[]>;
|
|
302
|
+
/**
|
|
303
|
+
* @description Creates a count query
|
|
304
|
+
* @summary Starts building a query that will count records
|
|
305
|
+
* @template S - The select selector type
|
|
306
|
+
* @param {S} [selector] - Optional field to count (counts all if not specified)
|
|
307
|
+
* @return A count query builder
|
|
308
|
+
*/
|
|
309
|
+
count<S extends SelectSelector<M>>(selector?: S): WhereOption<M, number>;
|
|
310
|
+
/**
|
|
311
|
+
* @description Creates a min query
|
|
312
|
+
* @summary Starts building a query that will find the minimum value
|
|
313
|
+
* @template S - The select selector type
|
|
314
|
+
* @param {S} selector - Field to find minimum value of
|
|
315
|
+
* @return A min query builder
|
|
316
|
+
*/
|
|
317
|
+
min<S extends SelectSelector<M>>(selector: S): WhereOption<M, M[S]>;
|
|
318
|
+
/**
|
|
319
|
+
* @description Creates a max query
|
|
320
|
+
* @summary Starts building a query that will find the maximum value
|
|
321
|
+
* @template S - The select selector type
|
|
322
|
+
* @param {S} selector - Field to find maximum value of
|
|
323
|
+
* @return A max query builder
|
|
324
|
+
*/
|
|
325
|
+
max<S extends SelectSelector<M>>(selector: S): WhereOption<M, M[S]>;
|
|
326
|
+
/**
|
|
327
|
+
* @description Creates a sum query
|
|
328
|
+
* @summary Starts building a query that will sum values
|
|
329
|
+
* @template S - The select selector type
|
|
330
|
+
* @param {S} selector - Field to sum
|
|
331
|
+
* @return A sum query builder
|
|
332
|
+
*/
|
|
333
|
+
sum<S extends SelectSelector<M>>(selector: S): WhereOption<M, number>;
|
|
334
|
+
/**
|
|
335
|
+
* @description Creates an average query
|
|
336
|
+
* @summary Starts building a query that will compute the average value
|
|
337
|
+
* @template S - The select selector type
|
|
338
|
+
* @param {S} selector - Field to average
|
|
339
|
+
* @return An average query builder
|
|
340
|
+
*/
|
|
341
|
+
avg<S extends SelectSelector<M>>(selector: S): WhereOption<M, number>;
|
|
342
|
+
/**
|
|
343
|
+
* @description Creates a distinct query
|
|
344
|
+
* @summary Starts building a query that will find distinct values
|
|
345
|
+
* @template S - The select selector type
|
|
346
|
+
* @param {S} selector - Field to find distinct values of
|
|
347
|
+
* @return A distinct query builder
|
|
348
|
+
*/
|
|
349
|
+
distinct<S extends SelectSelector<M>>(selector: S): WhereOption<M, M[S][]>;
|
|
302
350
|
/**
|
|
303
351
|
* @description Executes a query with the specified conditions and options.
|
|
304
352
|
* @summary Provides a simplified way to query the database with common query parameters.
|