@o3r/core 14.4.0-prerelease.9 → 14.4.0-rc.0

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 (176) hide show
  1. package/core/application/build-properties.d.ts +50 -0
  2. package/core/application/build-properties.d.ts.map +1 -0
  3. package/core/application/build-properties.js +17 -0
  4. package/core/application/build-properties.js.map +1 -0
  5. package/core/application/dgp-interfaces.d.ts +35 -0
  6. package/core/application/dgp-interfaces.d.ts.map +1 -0
  7. package/core/application/dgp-interfaces.js +2 -0
  8. package/core/application/dgp-interfaces.js.map +1 -0
  9. package/core/application/index.d.ts +4 -0
  10. package/core/application/index.d.ts.map +1 -0
  11. package/core/application/index.js +4 -0
  12. package/core/application/index.js.map +1 -0
  13. package/core/application/runtime.d.ts +14 -0
  14. package/core/application/runtime.d.ts.map +1 -0
  15. package/core/application/runtime.js +2 -0
  16. package/core/application/runtime.js.map +1 -0
  17. package/core/common/index.d.ts +3 -0
  18. package/core/common/index.d.ts.map +1 -0
  19. package/core/common/index.js +3 -0
  20. package/core/common/index.js.map +1 -0
  21. package/core/common/interface-utils.d.ts +7 -0
  22. package/core/common/interface-utils.d.ts.map +1 -0
  23. package/core/common/interface-utils.js +2 -0
  24. package/core/common/interface-utils.js.map +1 -0
  25. package/core/common/label-value.d.ts +8 -0
  26. package/core/common/label-value.d.ts.map +1 -0
  27. package/core/common/label-value.js +2 -0
  28. package/core/common/label-value.js.map +1 -0
  29. package/core/devkit/devtools-interface.d.ts +34 -0
  30. package/core/devkit/devtools-interface.d.ts.map +1 -0
  31. package/core/devkit/devtools-interface.js +2 -0
  32. package/core/devkit/devtools-interface.js.map +1 -0
  33. package/core/devkit/index.d.ts +2 -0
  34. package/core/devkit/index.d.ts.map +1 -0
  35. package/core/devkit/index.js +2 -0
  36. package/core/devkit/index.js.map +1 -0
  37. package/core/index.d.ts +7 -0
  38. package/core/index.d.ts.map +1 -0
  39. package/core/index.js +7 -0
  40. package/core/index.js.map +1 -0
  41. package/core/interfaces/configuration.d.ts +90 -0
  42. package/core/interfaces/configuration.d.ts.map +1 -0
  43. package/core/interfaces/configuration.js +2 -0
  44. package/core/interfaces/configuration.js.map +1 -0
  45. package/core/interfaces/context.d.ts +57 -0
  46. package/core/interfaces/context.d.ts.map +1 -0
  47. package/core/interfaces/context.js +2 -0
  48. package/core/interfaces/context.js.map +1 -0
  49. package/core/interfaces/index.d.ts +5 -0
  50. package/core/interfaces/index.d.ts.map +1 -0
  51. package/core/interfaces/index.js +5 -0
  52. package/core/interfaces/index.js.map +1 -0
  53. package/core/interfaces/item-identifier.d.ts +14 -0
  54. package/core/interfaces/item-identifier.d.ts.map +1 -0
  55. package/core/interfaces/item-identifier.js +2 -0
  56. package/core/interfaces/item-identifier.js.map +1 -0
  57. package/core/interfaces/translation.d.ts +7 -0
  58. package/core/interfaces/translation.d.ts.map +1 -0
  59. package/core/interfaces/translation.js +2 -0
  60. package/core/interfaces/translation.js.map +1 -0
  61. package/core/metadata/component-decorator.d.ts +32 -0
  62. package/core/metadata/component-decorator.d.ts.map +1 -0
  63. package/core/metadata/component-decorator.js +18 -0
  64. package/core/metadata/component-decorator.js.map +1 -0
  65. package/core/metadata/component-identifier.d.ts +7 -0
  66. package/core/metadata/component-identifier.d.ts.map +1 -0
  67. package/core/metadata/component-identifier.js +9 -0
  68. package/core/metadata/component-identifier.js.map +1 -0
  69. package/core/metadata/index.d.ts +4 -0
  70. package/core/metadata/index.d.ts.map +1 -0
  71. package/core/metadata/index.js +4 -0
  72. package/core/metadata/index.js.map +1 -0
  73. package/core/metadata/metadata-interface.d.ts +10 -0
  74. package/core/metadata/metadata-interface.d.ts.map +1 -0
  75. package/core/metadata/metadata-interface.js +2 -0
  76. package/core/metadata/metadata-interface.js.map +1 -0
  77. package/core/rules-engine/index.d.ts +2 -0
  78. package/core/rules-engine/index.d.ts.map +1 -0
  79. package/core/rules-engine/index.js +2 -0
  80. package/core/rules-engine/index.js.map +1 -0
  81. package/core/rules-engine/rules-engine-interfaces.d.ts +24 -0
  82. package/core/rules-engine/rules-engine-interfaces.d.ts.map +1 -0
  83. package/core/rules-engine/rules-engine-interfaces.js +2 -0
  84. package/core/rules-engine/rules-engine-interfaces.js.map +1 -0
  85. package/fesm2022/o3r-core.mjs.map +1 -1
  86. package/log/index.d.ts +2 -0
  87. package/log/index.d.ts.map +1 -0
  88. package/log/index.js +2 -0
  89. package/log/index.js.map +1 -0
  90. package/log/logger.d.ts +36 -0
  91. package/log/logger.d.ts.map +1 -0
  92. package/log/logger.js +2 -0
  93. package/log/logger.js.map +1 -0
  94. package/messages/common-message-interface.d.ts +17 -0
  95. package/messages/common-message-interface.d.ts.map +1 -0
  96. package/messages/common-message-interface.js +2 -0
  97. package/messages/common-message-interface.js.map +1 -0
  98. package/messages/index.d.ts +4 -0
  99. package/messages/index.d.ts.map +1 -0
  100. package/messages/index.js +4 -0
  101. package/messages/index.js.map +1 -0
  102. package/messages/message-helpers.d.ts +24 -0
  103. package/messages/message-helpers.d.ts.map +1 -0
  104. package/messages/message-helpers.js +54 -0
  105. package/messages/message-helpers.js.map +1 -0
  106. package/messages/message-interfaces.d.ts +26 -0
  107. package/messages/message-interfaces.d.ts.map +1 -0
  108. package/messages/message-interfaces.js +5 -0
  109. package/messages/message-interfaces.js.map +1 -0
  110. package/package.json +12 -11
  111. package/public_api.d.ts +6 -0
  112. package/public_api.d.ts.map +1 -0
  113. package/public_api.js +6 -0
  114. package/public_api.js.map +1 -0
  115. package/schematics/shared/presets/all-preset.d.ts.map +1 -1
  116. package/schematics/shared/presets/all-preset.js.map +1 -1
  117. package/schematics/shared/presets/basic-preset.d.ts.map +1 -1
  118. package/schematics/shared/presets/basic-preset.js.map +1 -1
  119. package/schematics/shared/presets/cms-preset.d.ts.map +1 -1
  120. package/schematics/shared/presets/cms-preset.js.map +1 -1
  121. package/store/async/async-entity.adapter.d.ts +62 -0
  122. package/store/async/async-entity.adapter.d.ts.map +1 -0
  123. package/store/async/async-entity.adapter.js +49 -0
  124. package/store/async/async-entity.adapter.js.map +1 -0
  125. package/store/async/async.adapter.d.ts +91 -0
  126. package/store/async/async.adapter.d.ts.map +1 -0
  127. package/store/async/async.adapter.js +94 -0
  128. package/store/async/async.adapter.js.map +1 -0
  129. package/store/async/async.helpers.d.ts +17 -0
  130. package/store/async/async.helpers.d.ts.map +1 -0
  131. package/store/async/async.helpers.js +25 -0
  132. package/store/async/async.helpers.js.map +1 -0
  133. package/store/async/async.interfaces.d.ts +91 -0
  134. package/store/async/async.interfaces.d.ts.map +1 -0
  135. package/store/async/async.interfaces.js +2 -0
  136. package/store/async/async.interfaces.js.map +1 -0
  137. package/store/async/async.operators.d.ts +22 -0
  138. package/store/async/async.operators.d.ts.map +1 -0
  139. package/store/async/async.operators.js +75 -0
  140. package/store/async/async.operators.js.map +1 -0
  141. package/store/async/async.props.d.ts +7 -0
  142. package/store/async/async.props.d.ts.map +1 -0
  143. package/store/async/async.props.js +10 -0
  144. package/store/async/async.props.js.map +1 -0
  145. package/store/async/async.serializer.d.ts +29 -0
  146. package/store/async/async.serializer.d.ts.map +1 -0
  147. package/store/async/async.serializer.js +34 -0
  148. package/store/async/async.serializer.js.map +1 -0
  149. package/store/async/index.d.ts +8 -0
  150. package/store/async/index.d.ts.map +1 -0
  151. package/store/async/index.js +8 -0
  152. package/store/async/index.js.map +1 -0
  153. package/store/index.d.ts +3 -0
  154. package/store/index.d.ts.map +1 -0
  155. package/store/index.js +3 -0
  156. package/store/index.js.map +1 -0
  157. package/store/types.d.ts +95 -0
  158. package/store/types.d.ts.map +1 -0
  159. package/store/types.js +11 -0
  160. package/store/types.js.map +1 -0
  161. package/utils/debug/debug-helper.d.ts +14 -0
  162. package/utils/debug/debug-helper.d.ts.map +1 -0
  163. package/utils/debug/debug-helper.js +19 -0
  164. package/utils/debug/debug-helper.js.map +1 -0
  165. package/utils/deep-fill/deep-fill.d.ts +37 -0
  166. package/utils/deep-fill/deep-fill.d.ts.map +1 -0
  167. package/utils/deep-fill/deep-fill.js +71 -0
  168. package/utils/deep-fill/deep-fill.js.map +1 -0
  169. package/utils/index.d.ts +4 -0
  170. package/utils/index.d.ts.map +1 -0
  171. package/utils/index.js +4 -0
  172. package/utils/index.js.map +1 -0
  173. package/utils/rendering/rendering-helpers.d.ts +10 -0
  174. package/utils/rendering/rendering-helpers.d.ts.map +1 -0
  175. package/utils/rendering/rendering-helpers.js +31 -0
  176. package/utils/rendering/rendering-helpers.js.map +1 -0
@@ -0,0 +1,26 @@
1
+ /** Type of a message exchanged within the Otter Framework */
2
+ export declare const otterMessageType = "otter";
3
+ /** Target of a message that should be handled by the application */
4
+ export declare const applicationMessageTarget = "app";
5
+ export interface OtterMessageContent<DataType extends string = string> {
6
+ /** Type of data */
7
+ dataType: DataType;
8
+ }
9
+ export interface OtterMessage<Content extends OtterMessageContent = OtterMessageContent, Target extends string | undefined = undefined | string> {
10
+ /** Type of the message */
11
+ type: typeof otterMessageType;
12
+ /** Version of the message (default to the `@o3r/core` version ) */
13
+ version?: string;
14
+ /** Target of the message */
15
+ to: Target;
16
+ /** Message content */
17
+ content: Content;
18
+ }
19
+ /** Type helper to retrieve the data types of a union of MessageContent */
20
+ export type MessageDataTypes<T extends OtterMessageContent> = T['dataType'];
21
+ /** Type helper to filter the message that can be received by the application */
22
+ export type FilterMessageToApplication<T extends OtterMessage> = T extends {
23
+ to: infer U;
24
+ } ? U extends (typeof applicationMessageTarget | undefined) ? T : never : never;
25
+ export type ContentMessageData<T extends OtterMessageContent> = T extends any ? Omit<T, 'dataType'> : never;
26
+ //# sourceMappingURL=message-interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-interfaces.d.ts","sourceRoot":"","sources":["../../src/messages/message-interfaces.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM;IACnE,mBAAmB;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,EAAE,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM;IAC7I,0BAA0B;IAC1B,IAAI,EAAE,OAAO,gBAAgB,CAAC;IAE9B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IAEX,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,mBAAmB,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;AAE5E,gFAAgF;AAChF,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,SAAS,CAAC,OAAO,wBAAwB,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzK,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,IAAI,CAAC,SAAS,GAAG,GACzE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GACnB,KAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Type of a message exchanged within the Otter Framework */
2
+ export const otterMessageType = 'otter';
3
+ /** Target of a message that should be handled by the application */
4
+ export const applicationMessageTarget = 'app';
5
+ //# sourceMappingURL=message-interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-interfaces.js","sourceRoot":"","sources":["../../src/messages/message-interfaces.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/core",
3
- "version": "14.4.0-prerelease.9",
3
+ "version": "14.4.0-rc.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -38,7 +38,7 @@
38
38
  "@ngrx/entity": "^21.0.0",
39
39
  "@ngrx/store": "^21.0.0",
40
40
  "@nx/angular": "^22.0.0",
41
- "@o3r/telemetry": "~14.4.0-prerelease.9",
41
+ "@o3r/telemetry": "~14.4.0-rc.0",
42
42
  "@schematics/angular": "^21.0.0",
43
43
  "chokidar": "^4.0.0 || ^5.0.0",
44
44
  "globby": "^11.1.0",
@@ -76,7 +76,7 @@
76
76
  }
77
77
  },
78
78
  "dependencies": {
79
- "@o3r/schematics": "~14.4.0-prerelease.9",
79
+ "@o3r/schematics": "~14.4.0-rc.0",
80
80
  "tslib": "^2.6.2",
81
81
  "uuid": "~14.0.0"
82
82
  },
@@ -88,15 +88,15 @@
88
88
  "@ngrx/store": "~21.1.0",
89
89
  "@ngrx/store-devtools": "~21.1.0",
90
90
  "@nx/eslint-plugin": "~22.7.0",
91
- "@o3r/store-sync": "~14.4.0-prerelease.9",
91
+ "@o3r/store-sync": "~14.4.0-rc.0",
92
92
  "@stylistic/eslint-plugin": "~5.10.0",
93
93
  "@types/jest": "~30.0.0",
94
- "@typescript-eslint/eslint-plugin": "~8.58.0",
95
- "@typescript-eslint/parser": "~8.58.0",
96
- "angular-eslint": "~21.3.0",
94
+ "@typescript-eslint/eslint-plugin": "~8.60.0",
95
+ "@typescript-eslint/parser": "~8.60.0",
96
+ "angular-eslint": "~21.4.0",
97
97
  "cpy-cli": "^6.0.0",
98
98
  "eslint": "~9.39.0",
99
- "eslint-import-resolver-node": "~0.3.9",
99
+ "eslint-import-resolver-node": "~0.4.0",
100
100
  "eslint-import-resolver-typescript": "~4.4.0",
101
101
  "eslint-plugin-import": "~2.32.0",
102
102
  "eslint-plugin-import-newlines": "~1.4.0",
@@ -106,15 +106,15 @@
106
106
  "eslint-plugin-unicorn": "~62.0.0",
107
107
  "eslint-plugin-unused-imports": "~4.4.0",
108
108
  "globals": "^16.0.0",
109
- "jest": "~30.3.0",
109
+ "jest": "~30.4.0",
110
110
  "jest-junit": "~16.0.0",
111
111
  "jest-preset-angular": "~16.1.0",
112
112
  "jsdom": "~27.4.0",
113
- "jest-util": "~30.3.0",
113
+ "jest-util": "~30.4.0",
114
114
  "jsonc-eslint-parser": "~2.4.0",
115
115
  "nx": "~22.7.0",
116
116
  "ts-jest": "~29.4.0",
117
- "typescript-eslint": "~8.58.0"
117
+ "typescript-eslint": "~8.60.0"
118
118
  },
119
119
  "engines": {
120
120
  "node": "^22.17.0 || ^24.0.0"
@@ -162,6 +162,7 @@
162
162
  "module": "fesm2022/o3r-core.mjs",
163
163
  "typings": "types/o3r-core.d.ts",
164
164
  "sideEffects": false,
165
+ "type": "module",
165
166
  "contributors": [
166
167
  {
167
168
  "name": "Yannick Adam",
@@ -0,0 +1,6 @@
1
+ export * from './core/index';
2
+ export * from './log/index';
3
+ export * from './messages/index';
4
+ export * from './store/index';
5
+ export * from './utils/index';
6
+ //# sourceMappingURL=public_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../src/public_api.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
package/public_api.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from './core/index';
2
+ export * from './log/index';
3
+ export * from './messages/index';
4
+ export * from './store/index';
5
+ export * from './utils/index';
6
+ //# sourceMappingURL=public_api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.js","sourceRoot":"","sources":["../src/public_api.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"all-preset.d.ts","sourceRoot":"","sources":["../../../../schematics/shared/presets/all-preset.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa;;;EA4B/C"}
1
+ {"version":3,"file":"all-preset.d.ts","sourceRoot":"","sources":["../../../../schematics/shared/presets/all-preset.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa;;;EA4B/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"all-preset.js","sourceRoot":"","sources":["../../../../schematics/shared/presets/all-preset.ts"],"names":[],"mappings":";;AAkBA,8BA4BC;AA9CD,2DAEoC;AACpC,gDAGyB;AACzB,uCAEmB;AAKnB;;;GAGG;AACH,SAAgB,SAAS,CAAC,OAAsB;IAC9C,MAAM,OAAO,GAAG;QACd,+BAA+B;QAC/B,+BAA+B;QAC/B,gBAAgB;QAChB,mBAAmB;QACnB,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;QACpB,sBAAsB;QACtB,oBAAoB;QACpB,oBAAoB;QACpB,YAAY;QACZ,mBAAmB;QACnB,aAAa;QACb,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO;QACL,OAAO;QACP,IAAI,EAAE,IAAA,kBAAK,EAAC;YACV,IAAA,4CAA+B,EAAC,EAAE,UAAU,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAyB,EAAE,OAAO,CAAC,WAAW,CAAC;YAC5H,IAAI;SACL,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"all-preset.js","sourceRoot":"","sources":["../../../../schematics/shared/presets/all-preset.ts"],"names":[],"mappings":";;AAiBA,8BA4BC;AA7CD,2DAEoC;AACpC,gDAEyB;AACzB,uCAEmB;AAKnB;;;GAGG;AACH,SAAgB,SAAS,CAAC,OAAsB;IAC9C,MAAM,OAAO,GAAG;QACd,+BAA+B;QAC/B,+BAA+B;QAC/B,gBAAgB;QAChB,mBAAmB;QACnB,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;QACpB,sBAAsB;QACtB,oBAAoB;QACpB,oBAAoB;QACpB,YAAY;QACZ,mBAAmB;QACnB,aAAa;QACb,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO;QACL,OAAO;QACP,IAAI,EAAE,IAAA,kBAAK,EAAC;YACV,IAAA,4CAA+B,EAAC,EAAE,UAAU,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC;YACrG,IAAI;SACL,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-preset.d.ts","sourceRoot":"","sources":["../../../../schematics/shared/presets/basic-preset.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,wBAAgB,WAAW;;EAO1B"}
1
+ {"version":3,"file":"basic-preset.d.ts","sourceRoot":"","sources":["../../../../schematics/shared/presets/basic-preset.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,wBAAgB,WAAW;;EAO1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-preset.js","sourceRoot":"","sources":["../../../../schematics/shared/presets/basic-preset.ts"],"names":[],"mappings":";;AAsBA,kCAOC;AA7BD,2DAEoC;AACpC,gDAEyB;AAIzB,uCAEmB;AAEnB,MAAM,oBAAoB,GAAG;IAC3B,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO;QACL,IAAI,EAAE,IAAA,kBAAK,EAAC;YACV,IAAA,4CAA+B,EAAC,EAAE,uBAAuB,EAAE,oBAAoB,EAAyB,CAAC;YACzG,IAAA,kCAAwB,EAAC,EAAE,CAAC;SAC7B,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"basic-preset.js","sourceRoot":"","sources":["../../../../schematics/shared/presets/basic-preset.ts"],"names":[],"mappings":";;AAmBA,kCAOC;AA1BD,2DAEoC;AACpC,gDAEyB;AACzB,uCAEmB;AAEnB,MAAM,oBAAoB,GAAG;IAC3B,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO;QACL,IAAI,EAAE,IAAA,kBAAK,EAAC;YACV,IAAA,4CAA+B,EAAC,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,CAAC;YAClF,IAAA,kCAAwB,EAAC,EAAE,CAAC;SAC7B,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cms-preset.d.ts","sourceRoot":"","sources":["../../../../schematics/shared/presets/cms-preset.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa;;;EAmB/C"}
1
+ {"version":3,"file":"cms-preset.d.ts","sourceRoot":"","sources":["../../../../schematics/shared/presets/cms-preset.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa;;;EAmB/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"cms-preset.js","sourceRoot":"","sources":["../../../../schematics/shared/presets/cms-preset.ts"],"names":[],"mappings":";;AAkBA,8BAmBC;AArCD,2DAEoC;AACpC,gDAGyB;AACzB,uCAEmB;AAKnB;;;GAGG;AACH,SAAgB,SAAS,CAAC,OAAsB;IAC9C,MAAM,OAAO,GAAG;QACd,+BAA+B;QAC/B,mBAAmB;QACnB,iBAAiB;QACjB,oBAAoB;QACpB,sBAAsB;QACtB,mBAAmB;KACpB,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO;QACL,OAAO;QACP,IAAI,EAAE,IAAA,kBAAK,EAAC;YACV,IAAA,4CAA+B,EAAC,EAAE,UAAU,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAyB,EAAE,OAAO,CAAC,WAAW,CAAC;YAC5H,IAAI;SACL,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cms-preset.js","sourceRoot":"","sources":["../../../../schematics/shared/presets/cms-preset.ts"],"names":[],"mappings":";;AAiBA,8BAmBC;AApCD,2DAEoC;AACpC,gDAEyB;AACzB,uCAEmB;AAKnB;;;GAGG;AACH,SAAgB,SAAS,CAAC,OAAsB;IAC9C,MAAM,OAAO,GAAG;QACd,+BAA+B;QAC/B,mBAAmB;QACnB,iBAAiB;QACjB,oBAAoB;QACpB,sBAAsB;QACtB,mBAAmB;KACpB,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO;QACL,OAAO;QACP,IAAI,EAAE,IAAA,kBAAK,EAAC;YACV,IAAA,4CAA+B,EAAC,EAAE,UAAU,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC;YACrG,IAAI;SACL,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,62 @@
1
+ import type { EntityAdapter, EntityState } from '@ngrx/entity';
2
+ import { AsyncStoreItem, EntityWithoutAsyncStoreItem } from './async.interfaces';
3
+ /** Adapter for Asynchronous Entity Store */
4
+ export interface EntityAsyncRequestAdapter<T extends AsyncStoreItem> extends EntityAdapter<T> {
5
+ /**
6
+ * Updates the AsyncStoreItem properties of each entity matching an id from the list of given ids, when a request has failed.
7
+ * @param state Actual state
8
+ * @param ids Ids of the entity to be updated with AsyncStoreItem properties
9
+ * @param requestId Id of request which has failed
10
+ */
11
+ failRequestMany<V extends EntityState<T> & AsyncStoreItem>(state: V, ids?: (string | number)[], requestId?: string): V;
12
+ /**
13
+ * Adds AsyncStoreItem property to the global store, or the entity if it already exists, when a request is triggered.
14
+ * @param state Actual state
15
+ * @param id Id of the entity to update
16
+ * @param requestId Id of the request which is triggered
17
+ */
18
+ addRequestOne<V extends EntityState<T> & AsyncStoreItem>(state: V, id: string | number | null | undefined, requestId: string): V;
19
+ /**
20
+ * Adds AsyncStoreItem properties for each entity matching the given ids, when a request is triggered
21
+ * @param state Actual state
22
+ * @param ids Ids of the entity to be updated with AsyncStoreItem properties
23
+ * @param requestId Id of request which is triggered
24
+ */
25
+ addRequestMany<V extends EntityState<T>>(state: V, ids: (string | number)[], requestId: string): V;
26
+ /**
27
+ * Updates the state with the given entity. Update the global or the current entity's status if it exists.
28
+ * @param state Actual state
29
+ * @param entity Payload item;
30
+ * @param requestId Id of request which has resolved if any
31
+ */
32
+ resolveRequestOne<V extends EntityState<T> & AsyncStoreItem>(state: V, entity: EntityWithoutAsyncStoreItem<T> & Record<'id', string | number>, requestId?: string): V;
33
+ /**
34
+ * Updates the state with the given entity. Update the global or the current entity's status if it exists.
35
+ * @param state Actual state
36
+ * @param entity Payload item;
37
+ * @param requestId Id of request which has resolved if any
38
+ * @param idProperty Property of the entity containing its unique identifier
39
+ */
40
+ resolveRequestOne<V extends EntityState<T> & AsyncStoreItem, W extends keyof T>(state: V, entity: EntityWithoutAsyncStoreItem<T> & Record<W, string | number>, requestId?: string, idProperty?: W): V;
41
+ /**
42
+ * Updates the state with the given entities. Updates also AsyncStoreItem properties of each entity, when a request is resolved.
43
+ * @param state Actual state
44
+ * @param entities Payload items;
45
+ * @param requestId Id of request which has resolved if any
46
+ */
47
+ resolveRequestMany<V extends EntityState<T>>(state: V, entities: (Partial<T> & Record<'id', string | number>)[], requestId?: string): V;
48
+ /**
49
+ * Updates the state with the given entities. Updates also AsyncStoreItem properties of each entity, when a request is resolved.
50
+ * @param state Actual state
51
+ * @param entities Payload items;
52
+ * @param requestId Id of request which has resolved if any
53
+ * @param idProperty Property of the entity containing its unique identifier
54
+ */
55
+ resolveRequestMany<V extends EntityState<T>, W extends keyof T>(state: V, entities: (Partial<T> & Record<W, string | number>)[], requestId?: string, idProperty?: W): V;
56
+ }
57
+ /**
58
+ * Create an Asynchronous Request Entity Adapter
59
+ * @param adapter Entity Adapter
60
+ */
61
+ export declare function createEntityAsyncRequestAdapter<T extends AsyncStoreItem>(adapter: EntityAdapter<T>): EntityAsyncRequestAdapter<T>;
62
+ //# sourceMappingURL=async-entity.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-entity.adapter.d.ts","sourceRoot":"","sources":["../../../src/store/async/async-entity.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EAEZ,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,cAAc,EACd,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAE5B,4CAA4C;AAC5C,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,cAAc,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAE3F;;;;;OAKG;IACH,eAAe,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAEvH;;;;;OAKG;IACH,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC;IAEjI;;;;;OAKG;IACH,cAAc,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC;IAEnG;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAEtK;;;;;;OAMG;IACH,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEtM;;;;;OAKG;IACH,kBAAkB,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAExI;;;;;;OAMG;IACH,kBAAkB,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACzK;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC,CA2DjI"}
@@ -0,0 +1,49 @@
1
+ import { asyncStoreItemAdapter, } from './async.adapter';
2
+ /**
3
+ * Create an Asynchronous Request Entity Adapter
4
+ * @param adapter Entity Adapter
5
+ */
6
+ export function createEntityAsyncRequestAdapter(adapter) {
7
+ const addRequestOne = (state, id, requestId) => {
8
+ const currentEntity = typeof id !== 'undefined' && id !== null && state.entities[id];
9
+ if (currentEntity) {
10
+ const changes = asyncStoreItemAdapter.addRequest(asyncStoreItemAdapter.extractAsyncStoreItem(currentEntity), requestId);
11
+ return adapter.updateOne({ id, changes }, state);
12
+ }
13
+ return asyncStoreItemAdapter.addRequest(state, requestId);
14
+ };
15
+ const addRequestMany = (state, ids, requestId) => adapter.updateMany(ids.filter((id) => !!state.entities[id]).map((id) => ({
16
+ id,
17
+ changes: asyncStoreItemAdapter.addRequest(asyncStoreItemAdapter.extractAsyncStoreItem(state.entities[id]), requestId)
18
+ })), state);
19
+ const resolveRequestOne = (state, entity, requestId, idProperty = 'id') => {
20
+ const currentEntity = state.entities[entity[idProperty]];
21
+ const newEntity = currentEntity
22
+ ? asyncStoreItemAdapter.resolveRequest({ ...entity, ...asyncStoreItemAdapter.extractAsyncStoreItem(currentEntity) }, requestId)
23
+ : asyncStoreItemAdapter.initialize(entity);
24
+ state = asyncStoreItemAdapter.resolveRequest(state, requestId);
25
+ return adapter.upsertOne(newEntity, state);
26
+ };
27
+ const resolveRequestMany = (state, entities, requestId, idProperty = 'id') => adapter.updateMany(entities.filter((entity) => !!state.entities[entity[idProperty]]).map((entity) => {
28
+ const model = { ...entity, ...asyncStoreItemAdapter.extractAsyncStoreItem(state.entities[entity[idProperty]]) };
29
+ return { id: entity[idProperty], changes: asyncStoreItemAdapter.resolveRequest(model, requestId) };
30
+ }), state);
31
+ const failRequestMany = (state, ids = [], requestId) => {
32
+ if (ids.length > 0 && !ids.some((id) => state.entities[id] === undefined)) {
33
+ return adapter.updateMany(ids.map((id) => ({
34
+ id,
35
+ changes: asyncStoreItemAdapter.failRequest(asyncStoreItemAdapter.extractAsyncStoreItem(state.entities[id]), requestId)
36
+ })), state);
37
+ }
38
+ return asyncStoreItemAdapter.failRequest(state, requestId);
39
+ };
40
+ return {
41
+ ...adapter,
42
+ failRequestMany,
43
+ addRequestOne,
44
+ addRequestMany,
45
+ resolveRequestOne,
46
+ resolveRequestMany
47
+ };
48
+ }
49
+ //# sourceMappingURL=async-entity.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-entity.adapter.js","sourceRoot":"","sources":["../../../src/store/async/async-entity.adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAoEzB;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAA2B,OAAyB;IACjG,MAAM,aAAa,GAA0H,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;QACpK,MAAM,aAAa,GAAG,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;YACxH,OAAO,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAe,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,qBAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,cAAc,GAA2F,CAA2B,KAAQ,EAAE,GAAwB,EAAE,SAAiB,EAAK,EAAE,CACpM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,EAAE;QACF,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC,EAAE,SAAS,CAAC;KACzG,CAAA,CACd,EAAE,KAAK,CAAC,CAAC;IAEZ,MAAM,iBAAiB,GACoG,CAC1H,KAAQ,EAAE,MAAmE,EAAE,SAAkB,EAAE,aAAgB,IAAS,EAAK,EAAE;QAClI,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,aAAa;YAC7B,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC;YAC/H,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,GAAG,qBAAqB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC,SAAS,CAAC,SAAc,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,kBAAkB,GACqF,CAC5G,KAAQ,EAAE,QAAqD,EAAE,SAAkB,EAAE,aAAgB,IAAS,EAAK,EAAE,CACpH,OAAO,CAAC,UAAU,CAChB,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/E,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC;QACjH,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAe,CAAC;IAClH,CAAC,CACA,EAAE,KAAK,CAAC,CAAC;IAEd,MAAM,eAAe,GAC4C,CAChE,KAAQ,EAAE,MAA2B,EAAE,EAAE,SAAkB,EAAK,EAAE;QACjE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;YAC1E,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzC,EAAE;gBACF,OAAO,EAAE,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC,EAAE,SAAS,CAAC;aAC1G,CAAA,CACd,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC;QACD,OAAO,qBAAqB,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,OAAO;QACV,eAAe;QACf,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { AsyncStoreItem, EntityStatus } from './async.interfaces';
2
+ /**
3
+ * Adapter to help manipulate AsyncStoreItems to register new request and update the status when they fail or resolve.
4
+ */
5
+ export interface AsyncStoreItemAdapter {
6
+ /**
7
+ * Adds a request to an AsyncStoreItem.
8
+ * If the item had a failure and no ongoing requests, sets it's failure status back to false
9
+ * @param item
10
+ * @param requestId
11
+ */
12
+ addRequest<T extends AsyncStoreItem>(item: T, requestId: string): T;
13
+ /**
14
+ * Updates an AsyncStoreItem when a request has resolved.
15
+ * Removes it from its requestIds array.
16
+ * If no requestId provided, the method returns the current status of the AsyncStoreItem
17
+ * @param item
18
+ * @param requestId
19
+ */
20
+ resolveRequest<T extends AsyncStoreItem>(item: T, requestId?: string): T;
21
+ /**
22
+ * Updates an AsyncStoreItem when a request has failed.
23
+ * Removes it from its requestIds array and set its failure status.
24
+ * @param item
25
+ * @param requestId
26
+ */
27
+ failRequest<T extends AsyncStoreItem>(item: T, requestId?: string): T;
28
+ /**
29
+ * Add AsyncStoreItem properties (with initial values) to the given entity
30
+ * @param entityItem
31
+ * @returns Given item improved with AsyncStoreItem properties
32
+ */
33
+ initialize<T extends object>(entityItem: T): T & AsyncStoreItem;
34
+ /**
35
+ * Extract only AsyncStoreItem properties from the given entity
36
+ * @param entityItem A model containing AsyncStoreItem properties
37
+ * @returns Object containing only AsyncStoreItem properties
38
+ */
39
+ extractAsyncStoreItem<T extends AsyncStoreItem>(entityItem: T): AsyncStoreItem;
40
+ /**
41
+ * Clear AsyncStoreItem properties from the given entity
42
+ * @param entityItem A model containing AsyncStoreItem properties
43
+ */
44
+ clearAsyncStoreItem<T extends AsyncStoreItem>(entityItem: T): T;
45
+ /**
46
+ * Merges an AsyncStoreItem collection into one item that gives an overall status.
47
+ * @param items
48
+ */
49
+ merge(...items: (AsyncStoreItem | undefined)[]): AsyncStoreItem;
50
+ /**
51
+ * Add a request to the given subResource of an EntityStatus object
52
+ * @param status
53
+ * @param subResource
54
+ * @param requestId
55
+ */
56
+ entityStatusAddRequest<T extends EntityStatus<T>>(status: T, subResource: keyof T, requestId: string): T;
57
+ /**
58
+ * Resolve a request on the given subResource of an EntityStatus object
59
+ * @param status
60
+ * @param subResource
61
+ * @param requestId
62
+ */
63
+ entityStatusResolveRequest<T extends EntityStatus<T>>(status: T, subResource: keyof T, requestId?: string): T;
64
+ /**
65
+ * Fail a request to the given subResource of an EntityStatus object
66
+ * @param status
67
+ * @param subResource
68
+ * @param requestId
69
+ */
70
+ entityStatusFailRequest<T extends EntityStatus<T>>(status: T, subResource: keyof T, requestId?: string): T;
71
+ /**
72
+ * Reset the failure status of the given subResource of an EntityStatus object
73
+ * @param status
74
+ * @param subResource
75
+ */
76
+ entityStatusResetFailure<T extends EntityStatus<T>>(status: T, subResource: keyof T): T;
77
+ /**
78
+ * Reset the failure status of the given AsyncStoreItem to false
79
+ * @param entityItem
80
+ * @returns AsyncStoreItem with the updated failure status
81
+ */
82
+ resetFailureStatus<T extends AsyncStoreItem>(entityItem: T): T;
83
+ /**
84
+ * Set the pending status of the given AsyncStoreItem to true
85
+ * @param entityItem
86
+ * @returns AsyncStoreItem with the updated pending status
87
+ */
88
+ setLoadingStatus<T extends AsyncStoreItem>(entityItem: T): T;
89
+ }
90
+ export declare const asyncStoreItemAdapter: AsyncStoreItemAdapter;
91
+ //# sourceMappingURL=async.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.adapter.d.ts","sourceRoot":"","sources":["../../../src/store/async/async.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,WAAW,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAEtE;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;IAEhE;;;;OAIG;IACH,qBAAqB,CAAC,CAAC,SAAS,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,cAAc,CAAC;IAE/E;;;OAGG;IACH,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhE;;;OAGG;IACH,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,GAAG,cAAc,CAAC;IAEhE;;;;;OAKG;IACH,sBAAsB,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC;IAEzG;;;;;OAKG;IACH,0BAA0B,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAE9G;;;;;OAKG;IACH,uBAAuB,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAE3G;;;;OAIG;IACH,wBAAwB,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAExF;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,SAAS,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAE/D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,qBAAqB,EAAE,qBAwGnC,CAAC"}
@@ -0,0 +1,94 @@
1
+ export const asyncStoreItemAdapter = {
2
+ addRequest: (item, requestId) => {
3
+ return {
4
+ ...item,
5
+ requestIds: [...item.requestIds, requestId],
6
+ isFailure: item.requestIds.length === 0 ? false : item.isFailure,
7
+ isPending: true
8
+ };
9
+ },
10
+ failRequest: (item, requestId) => {
11
+ const requestIds = requestId ? item.requestIds.filter((id) => id !== requestId) : item.requestIds;
12
+ return {
13
+ ...item,
14
+ isFailure: true,
15
+ isPending: requestIds.length > 0,
16
+ requestIds
17
+ };
18
+ },
19
+ resolveRequest: (item, requestId) => {
20
+ const requestIds = requestId ? item.requestIds.filter((id) => id !== requestId) : item.requestIds;
21
+ return {
22
+ ...item,
23
+ requestIds,
24
+ isPending: requestIds.length > 0
25
+ };
26
+ },
27
+ initialize: (entityItem) => {
28
+ return {
29
+ ...entityItem,
30
+ requestIds: []
31
+ };
32
+ },
33
+ extractAsyncStoreItem: (entityItem) => {
34
+ return {
35
+ requestIds: [...entityItem.requestIds],
36
+ isFailure: entityItem.isFailure,
37
+ isPending: entityItem.isPending
38
+ };
39
+ },
40
+ clearAsyncStoreItem: (entityItem) => {
41
+ const { isPending, isFailure, ...newResponse } = { ...entityItem, requestIds: [] };
42
+ return newResponse;
43
+ },
44
+ merge: (...items) => {
45
+ return items.reduce((mergedItem, item) => item
46
+ ? {
47
+ requestIds: [...mergedItem.requestIds, ...item.requestIds],
48
+ isFailure: mergedItem.isFailure || item.isFailure,
49
+ isPending: mergedItem.isPending || item.isPending
50
+ }
51
+ : mergedItem, asyncStoreItemAdapter.initialize({}));
52
+ },
53
+ entityStatusAddRequest: (status, subResource, requestId) => {
54
+ const currentSubStatus = status[subResource] || asyncStoreItemAdapter.initialize({});
55
+ return {
56
+ ...status,
57
+ [subResource]: asyncStoreItemAdapter.addRequest(currentSubStatus, requestId)
58
+ };
59
+ },
60
+ entityStatusResolveRequest: (status, subResource, requestId) => {
61
+ const currentSubStatus = status[subResource];
62
+ return {
63
+ ...status,
64
+ [subResource]: currentSubStatus ? asyncStoreItemAdapter.resolveRequest(currentSubStatus, requestId) : { requestIds: [] }
65
+ };
66
+ },
67
+ entityStatusFailRequest: (status, subResource, requestId) => {
68
+ const currentSubStatus = status[subResource];
69
+ return {
70
+ ...status,
71
+ [subResource]: currentSubStatus ? asyncStoreItemAdapter.failRequest(currentSubStatus, requestId) : { requestIds: [], isFailure: true }
72
+ };
73
+ },
74
+ entityStatusResetFailure: (status, subResource) => {
75
+ const currentSubStatus = status[subResource];
76
+ return {
77
+ ...status,
78
+ [subResource]: currentSubStatus ? asyncStoreItemAdapter.resetFailureStatus(currentSubStatus) : { requestIds: [] }
79
+ };
80
+ },
81
+ resetFailureStatus: (entityItem) => {
82
+ return {
83
+ ...entityItem,
84
+ isFailure: false
85
+ };
86
+ },
87
+ setLoadingStatus: (entityItem) => {
88
+ return {
89
+ ...entityItem,
90
+ isPending: true
91
+ };
92
+ }
93
+ };
94
+ //# sourceMappingURL=async.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.adapter.js","sourceRoot":"","sources":["../../../src/store/async/async.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { AsyncRequest, FromApiActionPayload } from './async.interfaces';
2
+ /**
3
+ * Determine if the action is an AsyncRequest action
4
+ * @param action Redux Action
5
+ */
6
+ export declare function isCallAction<T = any>(action?: any): action is FromApiActionPayload<T>;
7
+ /**
8
+ * Determine if the action is an AsyncRequest action with a Request ID
9
+ * @param action Redux Action
10
+ */
11
+ export declare function isIdentifiedCallAction<T = any>(action?: any): action is FromApiActionPayload<T> & AsyncRequest;
12
+ /**
13
+ * Determine if the given item implements the AsyncRequest interface
14
+ * @param item
15
+ */
16
+ export declare function isAsyncRequest<T>(item: any): item is T & AsyncRequest;
17
+ //# sourceMappingURL=async.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.helpers.d.ts","sourceRoot":"","sources":["../../../src/store/async/async.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAMrF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,YAAY,CAE9G;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,YAAY,CAErE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Determine if the action is an AsyncRequest action
3
+ * @param action Redux Action
4
+ */
5
+ export function isCallAction(action) {
6
+ if (!action) {
7
+ return false;
8
+ }
9
+ return !!action.call && action.call instanceof Promise;
10
+ }
11
+ /**
12
+ * Determine if the action is an AsyncRequest action with a Request ID
13
+ * @param action Redux Action
14
+ */
15
+ export function isIdentifiedCallAction(action) {
16
+ return isCallAction(action) && typeof action.requestId !== 'undefined';
17
+ }
18
+ /**
19
+ * Determine if the given item implements the AsyncRequest interface
20
+ * @param item
21
+ */
22
+ export function isAsyncRequest(item) {
23
+ return typeof item.requestId !== 'undefined';
24
+ }
25
+ //# sourceMappingURL=async.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.helpers.js","sourceRoot":"","sources":["../../../src/store/async/async.helpers.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAU,MAAY;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,YAAY,OAAO,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAU,MAAY;IAC1D,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,WAAW,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAI,IAAS;IACzC,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC;AAC/C,CAAC"}