feathers-utils 6.0.0 → 7.0.1

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 (59) hide show
  1. package/README.md +3 -4
  2. package/dist/index.cjs +81 -99
  3. package/dist/index.d.cts +35 -33
  4. package/dist/index.d.mts +35 -33
  5. package/dist/index.d.ts +35 -33
  6. package/dist/index.mjs +81 -99
  7. package/package.json +29 -32
  8. package/src/.DS_Store +0 -0
  9. package/src/filters/array.ts +11 -13
  10. package/src/filters/index.ts +2 -2
  11. package/src/filters/object.ts +11 -11
  12. package/src/hooks/.DS_Store +0 -0
  13. package/src/hooks/checkMulti.ts +98 -82
  14. package/src/hooks/createRelated.ts +41 -41
  15. package/src/hooks/forEach.ts +32 -32
  16. package/src/hooks/from-client-for-server/common.ts +1 -1
  17. package/src/hooks/from-client-for-server/index.ts +2 -2
  18. package/src/hooks/from-client-for-server/paramsForServer.ts +32 -32
  19. package/src/hooks/from-client-for-server/paramsFromClient.ts +25 -25
  20. package/src/hooks/index.ts +9 -9
  21. package/src/hooks/onDelete.ts +54 -55
  22. package/src/hooks/parseFields.ts +13 -13
  23. package/src/hooks/removeRelated.ts +22 -20
  24. package/src/hooks/runPerItem.ts +17 -18
  25. package/src/hooks/setData.ts +295 -264
  26. package/src/index.ts +6 -6
  27. package/src/mixins/debounce-mixin/DebouncedStore.ts +29 -29
  28. package/src/mixins/debounce-mixin/debounceMixin.ts +17 -17
  29. package/src/mixins/debounce-mixin/index.ts +3 -3
  30. package/src/mixins/debounce-mixin/types.ts +9 -9
  31. package/src/mixins/debounce-mixin/utils.ts +3 -3
  32. package/src/mixins/index.ts +1 -1
  33. package/src/types.ts +3 -5
  34. package/src/typesInternal.ts +14 -14
  35. package/src/utility-types/index.ts +48 -48
  36. package/src/utils/_utils.internal.ts +5 -5
  37. package/src/utils/defineHooks.ts +8 -8
  38. package/src/utils/deflattenQuery.ts +31 -31
  39. package/src/utils/filterQuery.ts +58 -58
  40. package/src/utils/flattenQuery.ts +54 -54
  41. package/src/utils/getItemsIsArray.ts +148 -149
  42. package/src/utils/getPaginate.ts +31 -31
  43. package/src/utils/index.ts +17 -17
  44. package/src/utils/isMulti.ts +48 -40
  45. package/src/utils/isPaginated.ts +30 -30
  46. package/src/utils/markHookForSkip.ts +177 -178
  47. package/src/utils/mergeQuery/index.ts +3 -3
  48. package/src/utils/mergeQuery/mergeArrays.ts +67 -67
  49. package/src/utils/mergeQuery/mergeQuery.ts +211 -211
  50. package/src/utils/mergeQuery/types.ts +12 -12
  51. package/src/utils/mergeQuery/utils.ts +224 -224
  52. package/src/utils/optimizeBatchPatch.ts +42 -42
  53. package/src/utils/pushSet.ts +57 -57
  54. package/src/utils/setQueryKeySafely.ts +68 -68
  55. package/src/utils/setResultEmpty.ts +125 -123
  56. package/src/utils/shouldSkip.ts +72 -72
  57. package/src/utils/toJSON.ts +4 -4
  58. package/src/utils/validateQueryProperty.ts +10 -10
  59. package/src/hooks/makeSequelizeQuery.ts_ +0 -90
@@ -1,5 +1,5 @@
1
- import type { Path } from "../../typesInternal";
2
- import type { Handle, ActionOnEmptyIntersect } from "./types";
1
+ import type { Path } from '../../typesInternal.js'
2
+ import type { Handle, ActionOnEmptyIntersect } from './types.js'
3
3
 
4
4
  export function mergeArrays<T>(
5
5
  targetArr: T[] | undefined,
@@ -9,110 +9,110 @@ export function mergeArrays<T>(
9
9
  actionOnEmptyIntersect?: ActionOnEmptyIntersect,
10
10
  ): T[] | undefined {
11
11
  if (!sourceArr && !targetArr) {
12
- return;
12
+ return
13
13
  }
14
- if (handle === "target") {
15
- return targetArr;
16
- } else if (handle === "source") {
17
- return sourceArr;
18
- } else if (handle === "combine") {
14
+ if (handle === 'target') {
15
+ return targetArr
16
+ } else if (handle === 'source') {
17
+ return sourceArr
18
+ } else if (handle === 'combine') {
19
19
  if (!sourceArr || !Array.isArray(sourceArr)) {
20
- return targetArr;
20
+ return targetArr
21
21
  }
22
22
  if (!targetArr || !Array.isArray(targetArr)) {
23
- return sourceArr;
23
+ return sourceArr
24
24
  }
25
- const arr = targetArr.concat(sourceArr);
26
- return [...new Set(arr)];
27
- } else if (handle === "intersect" || handle === "intersectOrFull") {
28
- const targetIsNotArray = !targetArr || !Array.isArray(targetArr);
29
- const sourceIsNotArray = !sourceArr || !Array.isArray(sourceArr);
25
+ const arr = targetArr.concat(sourceArr)
26
+ return [...new Set(arr)]
27
+ } else if (handle === 'intersect' || handle === 'intersectOrFull') {
28
+ const targetIsNotArray = !targetArr || !Array.isArray(targetArr)
29
+ const sourceIsNotArray = !sourceArr || !Array.isArray(sourceArr)
30
30
 
31
- if ((targetIsNotArray || sourceIsNotArray) && handle === "intersect") {
31
+ if ((targetIsNotArray || sourceIsNotArray) && handle === 'intersect') {
32
32
  if (actionOnEmptyIntersect) {
33
33
  actionOnEmptyIntersect(
34
34
  targetArr as unknown,
35
35
  sourceArr,
36
36
  prependKey || [],
37
- );
37
+ )
38
38
  }
39
- return;
39
+ return
40
40
  }
41
41
 
42
42
  if (targetIsNotArray || sourceIsNotArray) {
43
- const val = !targetIsNotArray ? targetArr : sourceArr;
44
- return val;
43
+ const val = !targetIsNotArray ? targetArr : sourceArr
44
+ return val
45
45
  }
46
46
 
47
- return targetArr!.filter((val) => sourceArr!.includes(val));
47
+ return targetArr!.filter((val) => sourceArr!.includes(val))
48
48
  }
49
- return undefined;
49
+ return undefined
50
50
  }
51
51
 
52
52
  if (import.meta.vitest) {
53
- const { it, expect } = import.meta.vitest;
53
+ const { it, expect } = import.meta.vitest
54
54
 
55
- describe("target", function () {
56
- it("returns target", function () {
57
- const arr = mergeArrays([1], [2], "target");
55
+ describe('target', function () {
56
+ it('returns target', function () {
57
+ const arr = mergeArrays([1], [2], 'target')
58
58
 
59
- expect(arr).toStrictEqual([1]);
60
- });
59
+ expect(arr).toStrictEqual([1])
60
+ })
61
61
 
62
- it("returns target even if undefined", function () {
63
- const arr = mergeArrays(undefined, [1], "target");
62
+ it('returns target even if undefined', function () {
63
+ const arr = mergeArrays(undefined, [1], 'target')
64
64
 
65
- expect(arr).toBeUndefined();
66
- });
67
- });
65
+ expect(arr).toBeUndefined()
66
+ })
67
+ })
68
68
 
69
- describe("source", function () {
70
- it("returns source", function () {
71
- const arr = mergeArrays([1], [2], "source");
69
+ describe('source', function () {
70
+ it('returns source', function () {
71
+ const arr = mergeArrays([1], [2], 'source')
72
72
 
73
- expect(arr).toStrictEqual([2]);
74
- });
73
+ expect(arr).toStrictEqual([2])
74
+ })
75
75
 
76
- it("returns source even if undefined", function () {
77
- const arr = mergeArrays([1], undefined, "source");
76
+ it('returns source even if undefined', function () {
77
+ const arr = mergeArrays([1], undefined, 'source')
78
78
 
79
- expect(arr).toBeUndefined();
80
- });
81
- });
79
+ expect(arr).toBeUndefined()
80
+ })
81
+ })
82
82
 
83
- describe("combine", function () {
84
- it("returns combined array", function () {
85
- const arr = mergeArrays([1, 2], [2, 3], "combine");
83
+ describe('combine', function () {
84
+ it('returns combined array', function () {
85
+ const arr = mergeArrays([1, 2], [2, 3], 'combine')
86
86
 
87
- expect(arr).toStrictEqual([1, 2, 3]);
88
- });
87
+ expect(arr).toStrictEqual([1, 2, 3])
88
+ })
89
89
 
90
- it("returns one array if combine", function () {
91
- const arr1 = mergeArrays([1, 2], undefined, "combine");
90
+ it('returns one array if combine', function () {
91
+ const arr1 = mergeArrays([1, 2], undefined, 'combine')
92
92
 
93
- expect(arr1).toStrictEqual([1, 2]);
93
+ expect(arr1).toStrictEqual([1, 2])
94
94
 
95
- const arr2 = mergeArrays(undefined, [1, 2], "combine");
95
+ const arr2 = mergeArrays(undefined, [1, 2], 'combine')
96
96
 
97
- expect(arr2).toStrictEqual([1, 2]);
98
- });
99
- });
97
+ expect(arr2).toStrictEqual([1, 2])
98
+ })
99
+ })
100
100
 
101
- describe("intersect", function () {
102
- it("returns intersected array", function () {
103
- const arr = mergeArrays([1, 2], [2, 3], "intersect");
101
+ describe('intersect', function () {
102
+ it('returns intersected array', function () {
103
+ const arr = mergeArrays([1, 2], [2, 3], 'intersect')
104
104
 
105
- expect(arr).toStrictEqual([2]);
106
- });
105
+ expect(arr).toStrictEqual([2])
106
+ })
107
107
 
108
- it("returns undefined if one is undefined", function () {
109
- const arr1 = mergeArrays([1, 2], undefined, "intersect");
108
+ it('returns undefined if one is undefined', function () {
109
+ const arr1 = mergeArrays([1, 2], undefined, 'intersect')
110
110
 
111
- expect(arr1).toBeUndefined();
111
+ expect(arr1).toBeUndefined()
112
112
 
113
- const arr2 = mergeArrays(undefined, [1, 2], "intersect");
113
+ const arr2 = mergeArrays(undefined, [1, 2], 'intersect')
114
114
 
115
- expect(arr2).toBeUndefined();
116
- });
117
- });
115
+ expect(arr2).toBeUndefined()
116
+ })
117
+ })
118
118
  }