feathers-utils 2.0.0-0 → 2.0.0-10

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 (117) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +16 -9
  3. package/dist/index.cjs +861 -0
  4. package/dist/index.d.ts +193 -28
  5. package/dist/index.mjs +837 -0
  6. package/package.json +47 -31
  7. package/src/filters/array.ts +30 -0
  8. package/src/filters/index.ts +2 -0
  9. package/src/filters/object.ts +27 -0
  10. package/src/hooks/checkMulti.ts +13 -6
  11. package/src/hooks/createRelated.ts +61 -0
  12. package/src/hooks/index.ts +6 -0
  13. package/src/hooks/makeSequelizeQuery.ts_ +4 -4
  14. package/src/hooks/onDelete.ts +78 -0
  15. package/src/hooks/removeRelated.ts +61 -0
  16. package/src/hooks/runPerItem.ts +30 -21
  17. package/src/hooks/setData.ts +43 -22
  18. package/src/index.ts +4 -37
  19. package/src/mixins/debounce-mixin/DebouncedStore.ts +60 -55
  20. package/src/mixins/debounce-mixin/debounceMixin.ts +33 -0
  21. package/src/mixins/debounce-mixin/index.ts +3 -36
  22. package/src/mixins/debounce-mixin/types.ts +16 -0
  23. package/src/mixins/index.ts +1 -0
  24. package/src/types.ts +9 -90
  25. package/src/typesInternal.ts +6 -0
  26. package/src/utils/filterQuery.ts +31 -20
  27. package/src/utils/getItemsIsArray.ts +25 -0
  28. package/src/utils/getPaginate.ts +19 -17
  29. package/src/utils/index.ts +11 -0
  30. package/src/utils/isMulti.ts +13 -2
  31. package/src/utils/isPaginated.ts +10 -5
  32. package/src/utils/markHookForSkip.ts +21 -16
  33. package/src/utils/mergeQuery/index.ts +3 -367
  34. package/src/utils/mergeQuery/mergeArrays.ts +25 -18
  35. package/src/utils/mergeQuery/mergeQuery.ts +104 -0
  36. package/src/utils/mergeQuery/types.ts +25 -0
  37. package/src/utils/mergeQuery/utils.ts +342 -0
  38. package/src/utils/pushSet.ts +20 -10
  39. package/src/utils/setResultEmpty.ts +13 -8
  40. package/src/utils/shouldSkip.ts +22 -20
  41. package/src/utils/validateQueryProperty.ts +34 -0
  42. package/.eslintignore +0 -3
  43. package/.eslintrc.js +0 -44
  44. package/.gitlab-ci.yml +0 -11
  45. package/.mocharc.js +0 -11
  46. package/.nycrc.json +0 -22
  47. package/dist/esm/hooks/checkMulti.d.ts +0 -2
  48. package/dist/esm/hooks/checkMulti.js +0 -18
  49. package/dist/esm/hooks/runPerItem.d.ts +0 -4
  50. package/dist/esm/hooks/runPerItem.js +0 -26
  51. package/dist/esm/hooks/setData.d.ts +0 -4
  52. package/dist/esm/hooks/setData.js +0 -34
  53. package/dist/esm/index.d.ts +0 -30
  54. package/dist/esm/index.js +0 -30
  55. package/dist/esm/mixins/debounce-mixin/DebouncedStore.d.ts +0 -15
  56. package/dist/esm/mixins/debounce-mixin/DebouncedStore.js +0 -46
  57. package/dist/esm/mixins/debounce-mixin/index.d.ts +0 -8
  58. package/dist/esm/mixins/debounce-mixin/index.js +0 -20
  59. package/dist/esm/types.d.ts +0 -60
  60. package/dist/esm/types.js +0 -2
  61. package/dist/esm/utils/filterQuery.d.ts +0 -3
  62. package/dist/esm/utils/filterQuery.js +0 -28
  63. package/dist/esm/utils/getPaginate.d.ts +0 -7
  64. package/dist/esm/utils/getPaginate.js +0 -14
  65. package/dist/esm/utils/isMulti.d.ts +0 -2
  66. package/dist/esm/utils/isMulti.js +0 -17
  67. package/dist/esm/utils/isPaginated.d.ts +0 -2
  68. package/dist/esm/utils/isPaginated.js +0 -8
  69. package/dist/esm/utils/markHookForSkip.d.ts +0 -3
  70. package/dist/esm/utils/markHookForSkip.js +0 -14
  71. package/dist/esm/utils/mergeQuery/index.d.ts +0 -3
  72. package/dist/esm/utils/mergeQuery/index.js +0 -327
  73. package/dist/esm/utils/mergeQuery/mergeArrays.d.ts +0 -2
  74. package/dist/esm/utils/mergeQuery/mergeArrays.js +0 -37
  75. package/dist/esm/utils/pushSet.d.ts +0 -2
  76. package/dist/esm/utils/pushSet.js +0 -19
  77. package/dist/esm/utils/setResultEmpty.d.ts +0 -2
  78. package/dist/esm/utils/setResultEmpty.js +0 -25
  79. package/dist/esm/utils/shouldSkip.d.ts +0 -2
  80. package/dist/esm/utils/shouldSkip.js +0 -29
  81. package/dist/hooks/checkMulti.d.ts +0 -2
  82. package/dist/hooks/checkMulti.js +0 -22
  83. package/dist/hooks/runPerItem.d.ts +0 -4
  84. package/dist/hooks/runPerItem.js +0 -39
  85. package/dist/hooks/setData.d.ts +0 -4
  86. package/dist/hooks/setData.js +0 -42
  87. package/dist/index.js +0 -53
  88. package/dist/mixins/debounce-mixin/DebouncedStore.d.ts +0 -15
  89. package/dist/mixins/debounce-mixin/DebouncedStore.js +0 -65
  90. package/dist/mixins/debounce-mixin/index.d.ts +0 -8
  91. package/dist/mixins/debounce-mixin/index.js +0 -24
  92. package/dist/types.d.ts +0 -60
  93. package/dist/types.js +0 -3
  94. package/dist/utils/filterQuery.d.ts +0 -3
  95. package/dist/utils/filterQuery.js +0 -33
  96. package/dist/utils/getPaginate.d.ts +0 -7
  97. package/dist/utils/getPaginate.js +0 -15
  98. package/dist/utils/isMulti.d.ts +0 -2
  99. package/dist/utils/isMulti.js +0 -21
  100. package/dist/utils/isPaginated.d.ts +0 -2
  101. package/dist/utils/isPaginated.js +0 -12
  102. package/dist/utils/markHookForSkip.d.ts +0 -3
  103. package/dist/utils/markHookForSkip.js +0 -18
  104. package/dist/utils/mergeQuery/index.d.ts +0 -3
  105. package/dist/utils/mergeQuery/index.js +0 -334
  106. package/dist/utils/mergeQuery/mergeArrays.d.ts +0 -2
  107. package/dist/utils/mergeQuery/mergeArrays.js +0 -41
  108. package/dist/utils/pushSet.d.ts +0 -2
  109. package/dist/utils/pushSet.js +0 -26
  110. package/dist/utils/setResultEmpty.d.ts +0 -2
  111. package/dist/utils/setResultEmpty.js +0 -29
  112. package/dist/utils/shouldSkip.d.ts +0 -2
  113. package/dist/utils/shouldSkip.js +0 -33
  114. package/index.js +0 -9
  115. package/tsconfig-esm.json +0 -9
  116. package/tsconfig.json +0 -16
  117. package/tsconfig.test.json +0 -13
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Frederik Schmatz
3
+ Copyright (c) 2023 Frederik Schmatz
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # feathers-utils
2
2
 
3
- ![npm](https://img.shields.io/npm/v/feathers-utils)
4
- ![GitHub Workflow Status](https://img.shields.io/github/workflow/status/fratzinger/feathers-utils/Node.js%20CI)
5
- ![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/fratzinger/feathers-utils)
6
- ![Code Climate coverage](https://img.shields.io/codeclimate/coverage/fratzinger/feathers-utils)
7
- ![David](https://img.shields.io/david/fratzinger/feathers-casl)
8
- ![npm](https://img.shields.io/npm/dm/feathers-utils)
3
+ [![npm](https://img.shields.io/npm/v/feathers-utils)](https://www.npmjs.com/package/feathers-utils)
4
+ [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/fratzinger/feathers-utils/Node.js%20CI)](https://github.com/fratzinger/feathers-utils/actions/workflows/node.js.yml?query=branch%3Amain)
5
+ [![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/fratzinger/feathers-utils)](https://codeclimate.com/github/fratzinger/feathers-utils)
6
+ [![Code Climate coverage](https://img.shields.io/codeclimate/coverage/fratzinger/feathers-utils)](https://codeclimate.com/github/fratzinger/feathers-utils)
7
+ [![libraries.io](https://img.shields.io/librariesio/release/npm/feathers-utils)](https://libraries.io/npm/feathers-utils)
8
+ [![npm](https://img.shields.io/npm/dm/feathers-utils)](https://www.npmjs.com/package/feathers-utils)
9
9
  [![GitHub license](https://img.shields.io/github/license/fratzinger/feathers-utils)](https://github.com/fratzinger/feathers-utils/blob/main/LICENSE.md)
10
10
 
11
11
 
@@ -19,8 +19,12 @@ npm i feathers-utils
19
19
 
20
20
  ### Hooks
21
21
 
22
- - `hooks/checkMulti()`: throws if the request is **multi** data, but the service has `allowsMulti(method)` returns `false`
23
- - `hooks/setData({ allowUndefined: Boolean })`
22
+ - `checkMulti`: throws if the request is **multi** data, but the services `allowsMulti(method)` returns `false`
23
+ - `createRelated`: simply create related items from a hook.
24
+ - `onDelete`: simply remove/set null related items from a hook.
25
+ - `removeRelated`: simple remove related items from a hook. Basically `cascade` at feathers level.
26
+ - `runPerItem`: run a function for every item. Meant for `multi:true`.
27
+ - `setData`: map properties from `context` to `data`. Something like `userId: context.params.user.id`
24
28
 
25
29
  ### Mixins
26
30
 
@@ -28,11 +32,14 @@ npm i feathers-utils
28
32
 
29
33
  ### Utils
30
34
 
31
- - `addHook`: add hooks to specific services
32
35
  - `filterQuery`
36
+ - `getItemsIsArray(context)`: returns `{ items: any[], isArray: boolean }`
37
+ - `getPaginate`
33
38
  - `isMulti(context) => Boolean`: returns true, if `find`, `create/patch/remove`: multi
39
+ - `isPaginated`
34
40
  - `markHookForSkip`: add hookName to `context.params.skipHooks` - also see `shouldSkip`
35
41
  - `mergeQuery`: deeply merges queries
36
42
  - `mergeArrays`: merges arrays with intersection options
37
43
  - `pushSet`: if existing array: *push*, else *set*
44
+ - `setResultEmpty`
38
45
  - `shouldSkip`: checks `context.params.skipHooks` for `'all' | '${hookName}' | '${type}:${hookName}'` - also see `markHookForSkip`