@decaf-ts/core 0.8.21 → 0.8.22

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 (48) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/index.d.ts +1 -1
  7. package/lib/esm/index.js +1 -1
  8. package/lib/esm/query/Statement.d.ts +12 -6
  9. package/lib/esm/query/Statement.js +65 -13
  10. package/lib/esm/query/Statement.js.map +1 -1
  11. package/lib/esm/query/constants.d.ts +2 -1
  12. package/lib/esm/query/constants.js +1 -0
  13. package/lib/esm/query/constants.js.map +1 -1
  14. package/lib/esm/query/decorators.d.ts +2 -1
  15. package/lib/esm/query/decorators.js +30 -1
  16. package/lib/esm/query/decorators.js.map +1 -1
  17. package/lib/esm/query/options.d.ts +14 -5
  18. package/lib/esm/query/selectors.d.ts +2 -1
  19. package/lib/esm/query/types.d.ts +25 -0
  20. package/lib/esm/query/types.js.map +1 -1
  21. package/lib/esm/ram/RamAdapter.js +13 -1
  22. package/lib/esm/ram/RamAdapter.js.map +1 -1
  23. package/lib/esm/ram/RamStatement.d.ts +1 -0
  24. package/lib/esm/ram/RamStatement.js +41 -38
  25. package/lib/esm/ram/RamStatement.js.map +1 -1
  26. package/lib/esm/ram/types.d.ts +1 -0
  27. package/lib/index.cjs +1 -1
  28. package/lib/index.d.ts +1 -1
  29. package/lib/query/Statement.cjs +65 -13
  30. package/lib/query/Statement.d.ts +12 -6
  31. package/lib/query/Statement.js.map +1 -1
  32. package/lib/query/constants.cjs +1 -0
  33. package/lib/query/constants.d.ts +2 -1
  34. package/lib/query/constants.js.map +1 -1
  35. package/lib/query/decorators.cjs +30 -0
  36. package/lib/query/decorators.d.ts +2 -1
  37. package/lib/query/decorators.js.map +1 -1
  38. package/lib/query/options.d.ts +14 -5
  39. package/lib/query/selectors.d.ts +2 -1
  40. package/lib/query/types.d.ts +25 -0
  41. package/lib/query/types.js.map +1 -1
  42. package/lib/ram/RamAdapter.cjs +13 -1
  43. package/lib/ram/RamAdapter.js.map +1 -1
  44. package/lib/ram/RamStatement.cjs +41 -38
  45. package/lib/ram/RamStatement.d.ts +1 -0
  46. package/lib/ram/RamStatement.js.map +1 -1
  47. package/lib/ram/types.d.ts +1 -0
  48. package/package.json +1 -1
@@ -44,47 +44,49 @@ class RamStatement extends Statement_1.Statement {
44
44
  * @return {function(Model, Model): number} A comparator function for sorting model instances
45
45
  */
46
46
  getSort() {
47
+ const selectors = this.orderBySelectors;
47
48
  return (el1, el2) => {
48
- if (!this.orderBySelector)
49
- throw new db_decorators_1.InternalError("orderBySelector not set. Should be impossible");
50
- const selector = this.orderBySelector;
51
- const [key, direction] = selector;
52
- const normalizedDirection = String(direction).toLowerCase();
53
- const directionFactor = normalizedDirection === constants_1.OrderDirection.ASC ? 1 : -1;
54
- const value1 = el1[key];
55
- const value2 = el2[key];
56
- if (value1 === value2)
57
- return 0;
58
- if (value1 == null || value2 == null)
59
- return directionFactor * (value1 == null ? 1 : -1);
60
- const { designType: type } = decoration_1.Metadata.getPropDesignTypes(el1.constructor, key);
61
- const resolvedType = (type && type.name && type.name.toLowerCase()) || typeof value1;
62
- switch (resolvedType) {
63
- case "string":
64
- return (directionFactor *
65
- this.compareStrings(value1, value2));
66
- case "number":
67
- return (directionFactor *
68
- this.compareNumbers(value1, value2));
69
- case "bigint":
70
- return (directionFactor *
71
- this.compareBigInts(value1, value2));
72
- case "boolean":
73
- return (directionFactor *
74
- this.compareBooleans(value1, value2));
75
- case "date":
76
- case "object":
77
- if (value1 instanceof Date && value2 instanceof Date) {
78
- return (directionFactor *
79
- this.compareDates(value1, value2));
80
- }
81
- break;
82
- default:
83
- break;
49
+ if (!selectors || !selectors.length)
50
+ throw new db_decorators_1.InternalError("orderBySelectors not set. Should be impossible");
51
+ for (const [key, direction] of selectors) {
52
+ const normalizedDirection = String(direction).toLowerCase();
53
+ const directionFactor = normalizedDirection === constants_1.OrderDirection.ASC ? 1 : -1;
54
+ const comparison = this.compareByKey(el1, el2, key);
55
+ if (comparison !== 0)
56
+ return directionFactor * comparison;
84
57
  }
85
- throw new query_1.QueryError(`sorting not supported for type ${resolvedType}`);
58
+ return 0;
86
59
  };
87
60
  }
61
+ compareByKey(el1, el2, key) {
62
+ const value1 = el1[key];
63
+ const value2 = el2[key];
64
+ if (value1 === value2)
65
+ return 0;
66
+ if (value1 == null || value2 == null)
67
+ return value1 == null ? 1 : -1;
68
+ const { designType: type } = decoration_1.Metadata.getPropDesignTypes(el1.constructor, key);
69
+ const resolvedType = (type && type.name && type.name.toLowerCase()) || typeof value1;
70
+ switch (resolvedType) {
71
+ case "string":
72
+ return this.compareStrings(value1, value2);
73
+ case "number":
74
+ return this.compareNumbers(value1, value2);
75
+ case "bigint":
76
+ return this.compareBigInts(value1, value2);
77
+ case "boolean":
78
+ return this.compareBooleans(value1, value2);
79
+ case "date":
80
+ case "object":
81
+ if (value1 instanceof Date && value2 instanceof Date) {
82
+ return this.compareDates(value1, value2);
83
+ }
84
+ break;
85
+ default:
86
+ break;
87
+ }
88
+ throw new query_1.QueryError(`sorting not supported for type ${resolvedType}`);
89
+ }
88
90
  compareBooleans(a, b) {
89
91
  return a === b ? 0 : a ? 1 : -1;
90
92
  }
@@ -121,8 +123,9 @@ class RamStatement extends Statement_1.Statement {
121
123
  },
122
124
  limit: this.limitSelector,
123
125
  skip: this.offsetSelector,
126
+ groupBy: this.groupBySelectors,
124
127
  };
125
- if (this.orderBySelector)
128
+ if (this.orderBySelectors?.length)
126
129
  result.sort = this.getSort();
127
130
  return result;
128
131
  }
@@ -40,6 +40,7 @@ export declare class RamStatement<M extends Model, R, A extends Adapter<M, any,
40
40
  * @return {function(Model, Model): number} A comparator function for sorting model instances
41
41
  */
42
42
  private getSort;
43
+ private compareByKey;
43
44
  private compareBooleans;
44
45
  private compareNumbers;
45
46
  private compareBigInts;
@@ -1 +1 @@
1
- {"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../src/ram/RamStatement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../src/ram/RamStatement.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export type RawRamQuery<M extends Model = any> = {
34
34
  from: Constructor<M>;
35
35
  where: (el: M) => boolean;
36
36
  sort?: (el: M, el2: M) => number;
37
+ groupBy?: (keyof M)[];
37
38
  limit?: number;
38
39
  skip?: number;
39
40
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/core",
3
- "version": "0.8.21",
3
+ "version": "0.8.22",
4
4
  "description": "Core persistence module for the decaf framework",
5
5
  "type": "module",
6
6
  "exports": {