@ptc-org/nestjs-query-core 1.0.0-alpha.2 → 1.0.0-alpha.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ptc-org/nestjs-query-core",
3
- "version": "1.0.0-alpha.2",
3
+ "version": "1.0.0-alpha.3",
4
4
  "description": "Base query package",
5
5
  "author": "doug-martin <doug@dougamartin.com>",
6
6
  "homepage": "https://github.com/tripss/nestjs-query#readme",
@@ -27,7 +27,7 @@
27
27
  "dependencies": {
28
28
  "lodash.merge": "^4.6.2",
29
29
  "reflect-metadata": "^0.1.13",
30
- "tslib": "^2.1.0"
30
+ "tslib": "^2.4.0"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@nestjs/common": "^8.0.4",
@@ -19,6 +19,9 @@ export declare const transformFilter: <From, To>(filter: Filter<From>, fieldMap:
19
19
  export declare const mergeFilter: <T>(base: Filter<T>, source: Filter<T>) => Filter<T>;
20
20
  export declare const getFilterFields: <DTO>(filter: Filter<DTO>) => string[];
21
21
  export declare const getFilterComparisons: <DTO, K extends keyof DTO>(filter: Filter<DTO>, key: K) => (DTO[K] extends string | String ? import("../interfaces").StringFieldComparisons : DTO[K] extends boolean | Boolean ? import("../interfaces").BooleanFieldComparisons : DTO[K] extends number | bigint | symbol | RegExp | Date | (string | number | bigint | boolean | symbol | RegExp | Date)[] ? import("../interfaces").CommonFieldComparisonType<DTO[K]> : DTO[K] extends (infer U)[] ? import("../interfaces").CommonFieldComparisonType<U> | Filter<U> : Filter<DTO[K]> | import("../interfaces").CommonFieldComparisonType<DTO[K]>)[];
22
- export declare const getFilterOmitting: <DTO>(filter: Filter<DTO>, key: keyof DTO) => Filter<DTO>;
22
+ export declare const getFilterOmitting: <DTO>(filter: Filter<DTO>, ...keys: (keyof DTO | keyof {
23
+ and?: Filter<DTO>[];
24
+ or?: Filter<DTO>[];
25
+ })[]) => Filter<DTO>;
23
26
  export declare function applyFilter<DTO>(dto: DTO[], filter: Filter<DTO>): DTO[];
24
27
  export declare function applyFilter<DTO>(dto: DTO, filter: Filter<DTO>): boolean;
@@ -71,34 +71,48 @@ const getFilterFields = (filter) => {
71
71
  };
72
72
  exports.getFilterFields = getFilterFields;
73
73
  const getFilterComparisons = (filter, key) => {
74
- const results = [];
75
- if (filter.and || filter.or) {
76
- const filters = [...(filter.and ?? []), ...(filter.or ?? [])];
77
- filters.forEach((f) => (0, exports.getFilterComparisons)(f, key).forEach((comparison) => results.push(comparison)));
78
- }
74
+ let results = [];
79
75
  const comparison = (0, exports.getFilterFieldComparison)(filter, key);
80
76
  if ((0, exports.isComparison)(comparison)) {
81
77
  results.push(comparison);
82
78
  }
79
+ else if (Array.isArray(filter)) {
80
+ filter.forEach((f) => {
81
+ results = results.concat((0, exports.getFilterComparisons)(f, key));
82
+ });
83
+ }
84
+ if (typeof filter === 'object') {
85
+ Object.keys(filter).forEach((subFilterKey) => {
86
+ const subFilter = filter[subFilterKey];
87
+ if (subFilterKey === key) {
88
+ results.push(subFilter);
89
+ }
90
+ else {
91
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
92
+ // @ts-ignore
93
+ results = results.concat((0, exports.getFilterComparisons)(subFilter, key));
94
+ }
95
+ });
96
+ }
83
97
  return [...results];
84
98
  };
85
99
  exports.getFilterComparisons = getFilterComparisons;
86
- const getFilterOmitting = (filter, key) => Object.keys(filter).reduce((f, next) => {
100
+ const getFilterOmitting = (filter, ...keys) => Object.keys(filter).reduce((f, next) => {
87
101
  const omitted = { ...f };
88
102
  const k = next;
89
103
  if (k === 'and' && filter.and) {
90
- omitted.and = filter.and.map((part) => (0, exports.getFilterOmitting)(part, key));
104
+ omitted.and = filter.and.map((part) => (0, exports.getFilterOmitting)(part, ...keys));
91
105
  if (omitted.and.every((part) => Object.keys(part).length === 0)) {
92
106
  delete omitted.and;
93
107
  }
94
108
  }
95
109
  else if (k === 'or' && filter.or) {
96
- omitted.or = filter.or.map((part) => (0, exports.getFilterOmitting)(part, key));
110
+ omitted.or = filter.or.map((part) => (0, exports.getFilterOmitting)(part, ...keys));
97
111
  if (omitted.or.every((part) => Object.keys(part).length === 0)) {
98
112
  delete omitted.or;
99
113
  }
100
114
  }
101
- else if (k !== key) {
115
+ else if (!keys.includes(k)) {
102
116
  omitted[k] = filter[k];
103
117
  }
104
118
  return omitted;
@@ -1 +1 @@
1
- {"version":3,"file":"filter.helpers.js","sourceRoot":"","sources":["../../../../../packages/core/src/helpers/filter.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.helpers.js","sourceRoot":"","sources":["../../../../../packages/core/src/helpers/filter.helpers.ts"],"names":[],"mappings":"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"}