@ethlete/query 5.21.1 → 5.22.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 (88) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/fesm2022/ethlete-query.mjs +21 -37
  3. package/fesm2022/ethlete-query.mjs.map +1 -1
  4. package/package.json +5 -7
  5. package/esm2022/ethlete-query.mjs +0 -5
  6. package/esm2022/index.mjs +0 -21
  7. package/esm2022/lib/auth/auth-provider.types.mjs +0 -2
  8. package/esm2022/lib/auth/auth-provider.utils.mjs +0 -25
  9. package/esm2022/lib/auth/basic-auth-provider.mjs +0 -15
  10. package/esm2022/lib/auth/bearer-auth-provider.mjs +0 -168
  11. package/esm2022/lib/auth/custom-header-auth-provider.mjs +0 -12
  12. package/esm2022/lib/auth/index.mjs +0 -6
  13. package/esm2022/lib/class-validator/class-validator.types.mjs +0 -2
  14. package/esm2022/lib/class-validator/class-validator.utils.mjs +0 -4
  15. package/esm2022/lib/class-validator/index.mjs +0 -3
  16. package/esm2022/lib/devtools/components/query-devtools/index.mjs +0 -2
  17. package/esm2022/lib/devtools/components/query-devtools/query-devtools.component.mjs +0 -297
  18. package/esm2022/lib/devtools/pipes/index.mjs +0 -2
  19. package/esm2022/lib/devtools/pipes/query-short-name.pipe.mjs +0 -24
  20. package/esm2022/lib/devtools/utils/index.mjs +0 -2
  21. package/esm2022/lib/devtools/utils/query-client.utils.mjs +0 -13
  22. package/esm2022/lib/directives/index.mjs +0 -4
  23. package/esm2022/lib/directives/infinity-query-trigger.directive.mjs +0 -56
  24. package/esm2022/lib/directives/infinity-query.directive.mjs +0 -147
  25. package/esm2022/lib/directives/query.directive.mjs +0 -123
  26. package/esm2022/lib/entity/entity-store.mjs +0 -127
  27. package/esm2022/lib/entity/entity.types.mjs +0 -2
  28. package/esm2022/lib/entity/entity.utils.mjs +0 -29
  29. package/esm2022/lib/entity/index.mjs +0 -4
  30. package/esm2022/lib/experimental/bearer-auth-provider-config.mjs +0 -19
  31. package/esm2022/lib/experimental/bearer-auth-provider.mjs +0 -245
  32. package/esm2022/lib/experimental/http-request.mjs +0 -154
  33. package/esm2022/lib/experimental/index.mjs +0 -23
  34. package/esm2022/lib/experimental/paged-query.mjs +0 -194
  35. package/esm2022/lib/experimental/query-client-config.mjs +0 -13
  36. package/esm2022/lib/experimental/query-client.mjs +0 -16
  37. package/esm2022/lib/experimental/query-creator-templates.mjs +0 -33
  38. package/esm2022/lib/experimental/query-creator.mjs +0 -28
  39. package/esm2022/lib/experimental/query-dependencies.mjs +0 -14
  40. package/esm2022/lib/experimental/query-errors.mjs +0 -70
  41. package/esm2022/lib/experimental/query-execute-utils.mjs +0 -54
  42. package/esm2022/lib/experimental/query-execute.mjs +0 -14
  43. package/esm2022/lib/experimental/query-features.mjs +0 -126
  44. package/esm2022/lib/experimental/query-repository.mjs +0 -97
  45. package/esm2022/lib/experimental/query-snapshot.mjs +0 -45
  46. package/esm2022/lib/experimental/query-stack.mjs +0 -65
  47. package/esm2022/lib/experimental/query-state.mjs +0 -20
  48. package/esm2022/lib/experimental/query-utils.mjs +0 -176
  49. package/esm2022/lib/experimental/query.mjs +0 -29
  50. package/esm2022/lib/experimental/secure-query-creator.mjs +0 -15
  51. package/esm2022/lib/experimental/secure-query-execute.mjs +0 -80
  52. package/esm2022/lib/experimental/secure-query.mjs +0 -33
  53. package/esm2022/lib/gql/gql.mjs +0 -23
  54. package/esm2022/lib/gql/index.mjs +0 -2
  55. package/esm2022/lib/infinite-query/index.mjs +0 -4
  56. package/esm2022/lib/infinite-query/infinity-query.mjs +0 -171
  57. package/esm2022/lib/infinite-query/infinity-query.types.mjs +0 -2
  58. package/esm2022/lib/infinite-query/infinity-query.utils.mjs +0 -3
  59. package/esm2022/lib/logger/index.mjs +0 -2
  60. package/esm2022/lib/logger/logger.mjs +0 -16
  61. package/esm2022/lib/query/index.mjs +0 -4
  62. package/esm2022/lib/query/query.mjs +0 -431
  63. package/esm2022/lib/query/query.types.mjs +0 -2
  64. package/esm2022/lib/query/query.utils.mjs +0 -253
  65. package/esm2022/lib/query-client/index.mjs +0 -4
  66. package/esm2022/lib/query-client/query-client.mjs +0 -80
  67. package/esm2022/lib/query-client/query-client.types.mjs +0 -2
  68. package/esm2022/lib/query-client/query-client.utils.mjs +0 -20
  69. package/esm2022/lib/query-creator/index.mjs +0 -3
  70. package/esm2022/lib/query-creator/query-creator.mjs +0 -55
  71. package/esm2022/lib/query-creator/query-creator.types.mjs +0 -2
  72. package/esm2022/lib/query-form/index.mjs +0 -4
  73. package/esm2022/lib/query-form/query-form.mjs +0 -412
  74. package/esm2022/lib/query-form/query-form.types.mjs +0 -2
  75. package/esm2022/lib/query-form/query-form.utils.mjs +0 -97
  76. package/esm2022/lib/query-store/index.mjs +0 -2
  77. package/esm2022/lib/query-store/query-store.mjs +0 -144
  78. package/esm2022/lib/request/index.mjs +0 -4
  79. package/esm2022/lib/request/request.mjs +0 -196
  80. package/esm2022/lib/request/request.types.mjs +0 -2
  81. package/esm2022/lib/request/request.util.mjs +0 -252
  82. package/esm2022/lib/symfony/index.mjs +0 -3
  83. package/esm2022/lib/symfony/symfony.types.mjs +0 -2
  84. package/esm2022/lib/symfony/symfony.utils.mjs +0 -31
  85. package/esm2022/lib/utils/data.utils.mjs +0 -138
  86. package/esm2022/lib/utils/deep-freeze.util.mjs +0 -17
  87. package/esm2022/lib/utils/def.util.mjs +0 -8
  88. package/esm2022/lib/utils/index.mjs +0 -4
@@ -1,126 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
2
- import { computed, effect, untracked } from '@angular/core';
3
- import { withAutoRefreshUsedOnUnsupportedHttpMethod, withPollingUsedOnUnsupportedHttpMethod } from './query-errors';
4
- import { QUERY_ARGS_RESET, QUERY_EFFECT_ERROR_MESSAGE, queryEffect, } from './query-utils';
5
- const createQueryFeature = (config) => {
6
- return config;
7
- };
8
- export const withArgs = (args) => {
9
- return createQueryFeature({
10
- type: "withArgs" /* QueryFeatureType.WithArgs */,
11
- fn: (context) => {
12
- const currArgs = computed(() => args());
13
- queryEffect(() => {
14
- const currArgsNow = currArgs();
15
- if (currArgsNow === null)
16
- return;
17
- untracked(() => {
18
- if (currArgsNow === QUERY_ARGS_RESET) {
19
- context.state.args.set(null);
20
- return;
21
- }
22
- context.state.args.set(currArgsNow);
23
- if (context.flags.shouldAutoExecute)
24
- context.execute({ args: currArgsNow });
25
- });
26
- }, QUERY_EFFECT_ERROR_MESSAGE, { injector: context.deps.injector });
27
- },
28
- });
29
- };
30
- export const withPolling = (options) => {
31
- return createQueryFeature({
32
- type: "withPolling" /* QueryFeatureType.WithPolling */,
33
- fn: (context) => {
34
- if (!context.flags.shouldAutoExecuteMethod) {
35
- throw withPollingUsedOnUnsupportedHttpMethod(context.creatorInternals.method);
36
- }
37
- let intervalId = null;
38
- queryEffect(() => {
39
- const args = context.state.args();
40
- untracked(() => {
41
- if (intervalId !== null)
42
- clearInterval(intervalId);
43
- if (args === null)
44
- return;
45
- if (options.executeInitially) {
46
- context.execute({ args });
47
- }
48
- intervalId = window.setInterval(() => {
49
- context.execute({ args });
50
- }, options.interval);
51
- });
52
- }, QUERY_EFFECT_ERROR_MESSAGE, { injector: context.deps.injector });
53
- context.deps.destroyRef.onDestroy(() => intervalId !== null && clearInterval(intervalId));
54
- },
55
- });
56
- };
57
- export const withLogging = (options) => {
58
- return createQueryFeature({
59
- type: "withLogging" /* QueryFeatureType.WithLogging */,
60
- fn: (context) => {
61
- effect(() => {
62
- const event = context.state.latestHttpEvent();
63
- if (event === null)
64
- return;
65
- untracked(() => {
66
- options.logFn(event);
67
- });
68
- }, { injector: context.deps.injector });
69
- },
70
- });
71
- };
72
- export const withErrorHandling = (options) => {
73
- return createQueryFeature({
74
- type: "withErrorHandling" /* QueryFeatureType.WithErrorHandling */,
75
- fn: (context) => {
76
- effect(() => {
77
- const error = context.state.error();
78
- if (error === null)
79
- return;
80
- untracked(() => {
81
- options.handler(error);
82
- });
83
- }, { injector: context.deps.injector });
84
- },
85
- });
86
- };
87
- export const withSuccessHandling = (options) => {
88
- return createQueryFeature({
89
- type: "withSuccessHandling" /* QueryFeatureType.WithSuccessHandling */,
90
- fn: (context) => {
91
- effect(() => {
92
- const response = context.state.response();
93
- if (response === null)
94
- return;
95
- untracked(() => {
96
- options.handler(response);
97
- });
98
- }, { injector: context.deps.injector });
99
- },
100
- });
101
- };
102
- export const withAutoRefresh = (options) => {
103
- return createQueryFeature({
104
- type: "withAutoRefresh" /* QueryFeatureType.WithAutoRefresh */,
105
- fn: (context) => {
106
- if (!context.flags.shouldAutoExecuteMethod) {
107
- throw withAutoRefreshUsedOnUnsupportedHttpMethod(context.creatorInternals.method);
108
- }
109
- if (context.queryConfig.onlyManualExecution && !options.ignoreOnlyManualExecution) {
110
- throw withAutoRefreshUsedOnUnsupportedHttpMethod(context.creatorInternals.method);
111
- }
112
- queryEffect(() => {
113
- for (const signal of options.signalChanges) {
114
- signal();
115
- }
116
- untracked(() => {
117
- const args = context.state.args();
118
- if (args === null)
119
- return;
120
- context.execute({ args });
121
- });
122
- }, QUERY_EFFECT_ERROR_MESSAGE, { injector: context.deps.injector });
123
- },
124
- });
125
- };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LWZlYXR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUd6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJcEUsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEgsT0FBTyxFQUNMLGdCQUFnQixFQUNoQiwwQkFBMEIsRUFFMUIsV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBNEJ2QixNQUFNLGtCQUFrQixHQUFHLENBQTBCLE1BQTZELEVBQUUsRUFBRTtJQUNwSCxPQUFPLE1BQTZCLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQTBCLElBQStELEVBQUUsRUFBRTtJQUNuSCxPQUFPLGtCQUFrQixDQUFRO1FBQy9CLElBQUksNENBQTJCO1FBQy9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFFeEMsV0FBVyxDQUNULEdBQUcsRUFBRTtnQkFDSCxNQUFNLFdBQVcsR0FBRyxRQUFRLEVBQUUsQ0FBQztnQkFFL0IsSUFBSSxXQUFXLEtBQUssSUFBSTtvQkFBRSxPQUFPO2dCQUVqQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLElBQUksV0FBVyxLQUFLLGdCQUFnQixFQUFFLENBQUM7d0JBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDN0IsT0FBTztvQkFDVCxDQUFDO29CQUVELE9BQU8sQ0FB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Q0FBUTtRQUMvQixJQUFJLDBEQUFrQztRQUN0QyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQzNDLE1BQU0sMENBQTBDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BGLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsQ0FBQztnQkFDbEYsTUFBTSwwQ0FBMEMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEYsQ0FBQztZQUVELFdBQVcsQ0FDVCxHQUFHLEVBQUU7Z0JBQ0gsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQzNDLE1BQU0sRUFBRSxDQUFDO2dCQUNYLENBQUM7Z0JBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDYixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUVsQyxJQUFJLElBQUksS0FBSyxJQUFJO3dCQUFFLE9BQU87b0JBRTFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFDRCwwQkFBMEIsRUFDMUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FDcEMsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIFNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRdWVyeUFyZ3MsIFJlcXVlc3RBcmdzLCBSZXNwb25zZVR5cGUgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7IENyZWF0ZVF1ZXJ5Q3JlYXRvck9wdGlvbnMsIEludGVybmFsQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9ucywgUXVlcnlDb25maWcgfSBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuaW1wb3J0IHsgUXVlcnlEZXBlbmRlbmNpZXMgfSBmcm9tICcuL3F1ZXJ5LWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyB3aXRoQXV0b1JlZnJlc2hVc2VkT25VbnN1cHBvcnRlZEh0dHBNZXRob2QsIHdpdGhQb2xsaW5nVXNlZE9uVW5zdXBwb3J0ZWRIdHRwTWV0aG9kIH0gZnJvbSAnLi9xdWVyeS1lcnJvcnMnO1xuaW1wb3J0IHsgUXVlcnlFeGVjdXRlIH0gZnJvbSAnLi9xdWVyeS1leGVjdXRlJztcbmltcG9ydCB7IFF1ZXJ5U3RhdGUgfSBmcm9tICcuL3F1ZXJ5LXN0YXRlJztcbmltcG9ydCB7XG4gIFFVRVJZX0FSR1NfUkVTRVQsXG4gIFFVRVJZX0VGRkVDVF9FUlJPUl9NRVNTQUdFLFxuICBRdWVyeUFyZ3NSZXNldCxcbiAgcXVlcnlFZmZlY3QsXG4gIFF1ZXJ5RmVhdHVyZUZsYWdzLFxufSBmcm9tICcuL3F1ZXJ5LXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IGVudW0gUXVlcnlGZWF0dXJlVHlwZSB7XG4gIFdpdGhBcmdzID0gJ3dpdGhBcmdzJyxcbiAgV2l0aExvZ2dpbmcgPSAnd2l0aExvZ2dpbmcnLFxuICBXaXRoRXJyb3JIYW5kbGluZyA9ICd3aXRoRXJyb3JIYW5kbGluZycsXG4gIFdpdGhTdWNjZXNzSGFuZGxpbmcgPSAnd2l0aFN1Y2Nlc3NIYW5kbGluZycsXG4gIFdpdGhQb2xsaW5nID0gJ3dpdGhQb2xsaW5nJyxcbiAgV2l0aEF1dG9SZWZyZXNoID0gJ3dpdGhBdXRvUmVmcmVzaCcsXG59XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5RmVhdHVyZUNvbnRleHQ8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICBzdGF0ZTogUXVlcnlTdGF0ZTxUQXJncz47XG4gIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZztcbiAgY3JlYXRvckNvbmZpZzogQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9uczxUQXJncz47XG4gIGNyZWF0b3JJbnRlcm5hbHM6IEludGVybmFsQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9ucztcbiAgZXhlY3V0ZTogUXVlcnlFeGVjdXRlPFRBcmdzPjtcbiAgZGVwczogUXVlcnlEZXBlbmRlbmNpZXM7XG4gIGZsYWdzOiBRdWVyeUZlYXR1cmVGbGFncztcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5RmVhdHVyZUZuPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPiA9IChjb250ZXh0OiBRdWVyeUZlYXR1cmVDb250ZXh0PFRBcmdzPikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgUXVlcnlGZWF0dXJlPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPiA9IHtcbiAgdHlwZTogUXVlcnlGZWF0dXJlVHlwZTtcbiAgZm46IChjb250ZXh0OiBRdWVyeUZlYXR1cmVDb250ZXh0PFRBcmdzPikgPT4gdm9pZDtcbn07XG5cbmNvbnN0IGNyZWF0ZVF1ZXJ5RmVhdHVyZSA9IDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4oY29uZmlnOiB7IHR5cGU6IFF1ZXJ5RmVhdHVyZVR5cGU7IGZuOiBRdWVyeUZlYXR1cmVGbjxUQXJncz4gfSkgPT4ge1xuICByZXR1cm4gY29uZmlnIGFzIFF1ZXJ5RmVhdHVyZTxUQXJncz47XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aEFyZ3MgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KGFyZ3M6ICgpID0+IE5vSW5mZXI8UmVxdWVzdEFyZ3M8VEFyZ3M+PiB8IFF1ZXJ5QXJnc1Jlc2V0IHwgbnVsbCkgPT4ge1xuICByZXR1cm4gY3JlYXRlUXVlcnlGZWF0dXJlPFRBcmdzPih7XG4gICAgdHlwZTogUXVlcnlGZWF0dXJlVHlwZS5XaXRoQXJncyxcbiAgICBmbjogKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJBcmdzID0gY29tcHV0ZWQoKCkgPT4gYXJncygpKTtcblxuICAgICAgcXVlcnlFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJyQXJnc05vdyA9IGN1cnJBcmdzKCk7XG5cbiAgICAgICAgICBpZiAoY3VyckFyZ3NOb3cgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY3VyckFyZ3NOb3cgPT09IFFVRVJZX0FSR1NfUkVTRVQpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5zdGF0ZS5hcmdzLnNldChudWxsKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250ZXh0LnN0YXRlLmFyZ3Muc2V0KGN1cnJBcmdzTm93KTtcblxuICAgICAgICAgICAgaWYgKGNvbnRleHQuZmxhZ3Muc2hvdWxkQXV0b0V4ZWN1dGUpIGNvbnRleHQuZXhlY3V0ZSh7IGFyZ3M6IGN1cnJBcmdzTm93IH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBRVUVSWV9FRkZFQ1RfRVJST1JfTUVTU0FHRSxcbiAgICAgICAgeyBpbmplY3RvcjogY29udGV4dC5kZXBzLmluamVjdG9yIH0sXG4gICAgICApO1xuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhQb2xsaW5nID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiB7IGludGVydmFsOiBudW1iZXI7IGV4ZWN1dGVJbml0aWFsbHk/OiBib29sZWFuIH0pID0+IHtcbiAgcmV0dXJuIGNyZWF0ZVF1ZXJ5RmVhdHVyZTxUQXJncz4oe1xuICAgIHR5cGU6IFF1ZXJ5RmVhdHVyZVR5cGUuV2l0aFBvbGxpbmcsXG4gICAgZm46IChjb250ZXh0KSA9PiB7XG4gICAgICBpZiAoIWNvbnRleHQuZmxhZ3Muc2hvdWxkQXV0b0V4ZWN1dGVNZXRob2QpIHtcbiAgICAgICAgdGhyb3cgd2l0aFBvbGxpbmdVc2VkT25VbnN1cHBvcnRlZEh0dHBNZXRob2QoY29udGV4dC5jcmVhdG9ySW50ZXJuYWxzLm1ldGhvZCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBpbnRlcnZhbElkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgICAgcXVlcnlFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBhcmdzID0gY29udGV4dC5zdGF0ZS5hcmdzKCk7XG5cbiAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGludGVydmFsSWQgIT09IG51bGwpIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG5cbiAgICAgICAgICAgIGlmIChhcmdzID09PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmV4ZWN1dGVJbml0aWFsbHkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5leGVjdXRlKHsgYXJncyB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnRleHQuZXhlY3V0ZSh7IGFyZ3MgfSk7XG4gICAgICAgICAgICB9LCBvcHRpb25zLmludGVydmFsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgUVVFUllfRUZGRUNUX0VSUk9SX01FU1NBR0UsXG4gICAgICAgIHsgaW5qZWN0b3I6IGNvbnRleHQuZGVwcy5pbmplY3RvciB9LFxuICAgICAgKTtcblxuICAgICAgY29udGV4dC5kZXBzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IGludGVydmFsSWQgIT09IG51bGwgJiYgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKSk7XG4gICAgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aExvZ2dpbmcgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KG9wdGlvbnM6IHtcbiAgbG9nRm46ICh2OiBIdHRwRXZlbnQ8UmVzcG9uc2VUeXBlPFRBcmdzPj4gfCBudWxsKSA9PiB2b2lkO1xufSkgPT4ge1xuICByZXR1cm4gY3JlYXRlUXVlcnlGZWF0dXJlPFRBcmdzPih7XG4gICAgdHlwZTogUXVlcnlGZWF0dXJlVHlwZS5XaXRoTG9nZ2luZyxcbiAgICBmbjogKGNvbnRleHQpID0+IHtcbiAgICAgIGVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gY29udGV4dC5zdGF0ZS5sYXRlc3RIdHRwRXZlbnQoKTtcblxuICAgICAgICAgIGlmIChldmVudCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgIG9wdGlvbnMubG9nRm4oZXZlbnQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB7IGluamVjdG9yOiBjb250ZXh0LmRlcHMuaW5qZWN0b3IgfSxcbiAgICAgICk7XG4gICAgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aEVycm9ySGFuZGxpbmcgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KG9wdGlvbnM6IHsgaGFuZGxlcjogKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkIH0pID0+IHtcbiAgcmV0dXJuIGNyZWF0ZVF1ZXJ5RmVhdHVyZTxUQXJncz4oe1xuICAgIHR5cGU6IFF1ZXJ5RmVhdHVyZVR5cGUuV2l0aEVycm9ySGFuZGxpbmcsXG4gICAgZm46IChjb250ZXh0KSA9PiB7XG4gICAgICBlZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlcnJvciA9IGNvbnRleHQuc3RhdGUuZXJyb3IoKTtcblxuICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgIG9wdGlvbnMuaGFuZGxlcihlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHsgaW5qZWN0b3I6IGNvbnRleHQuZGVwcy5pbmplY3RvciB9LFxuICAgICAgKTtcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB3aXRoU3VjY2Vzc0hhbmRsaW5nID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiB7XG4gIGhhbmRsZXI6IChkYXRhOiBOb25OdWxsYWJsZTxSZXNwb25zZVR5cGU8VEFyZ3M+PikgPT4gdm9pZDtcbn0pID0+IHtcbiAgcmV0dXJuIGNyZWF0ZVF1ZXJ5RmVhdHVyZTxUQXJncz4oe1xuICAgIHR5cGU6IFF1ZXJ5RmVhdHVyZVR5cGUuV2l0aFN1Y2Nlc3NIYW5kbGluZyxcbiAgICBmbjogKGNvbnRleHQpID0+IHtcbiAgICAgIGVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gY29udGV4dC5zdGF0ZS5yZXNwb25zZSgpO1xuXG4gICAgICAgICAgaWYgKHJlc3BvbnNlID09PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgb3B0aW9ucy5oYW5kbGVyKHJlc3BvbnNlIGFzIE5vbk51bGxhYmxlPFJlc3BvbnNlVHlwZTxUQXJncz4+KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBpbmplY3RvcjogY29udGV4dC5kZXBzLmluamVjdG9yIH0sXG4gICAgICApO1xuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhBdXRvUmVmcmVzaCA9IDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4ob3B0aW9uczoge1xuICBzaWduYWxDaGFuZ2VzOiBTaWduYWw8dW5rbm93bj5bXTtcbiAgaWdub3JlT25seU1hbnVhbEV4ZWN1dGlvbj86IGJvb2xlYW47XG59KSA9PiB7XG4gIHJldHVybiBjcmVhdGVRdWVyeUZlYXR1cmU8VEFyZ3M+KHtcbiAgICB0eXBlOiBRdWVyeUZlYXR1cmVUeXBlLldpdGhBdXRvUmVmcmVzaCxcbiAgICBmbjogKGNvbnRleHQpID0+IHtcbiAgICAgIGlmICghY29udGV4dC5mbGFncy5zaG91bGRBdXRvRXhlY3V0ZU1ldGhvZCkge1xuICAgICAgICB0aHJvdyB3aXRoQXV0b1JlZnJlc2hVc2VkT25VbnN1cHBvcnRlZEh0dHBNZXRob2QoY29udGV4dC5jcmVhdG9ySW50ZXJuYWxzLm1ldGhvZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250ZXh0LnF1ZXJ5Q29uZmlnLm9ubHlNYW51YWxFeGVjdXRpb24gJiYgIW9wdGlvbnMuaWdub3JlT25seU1hbnVhbEV4ZWN1dGlvbikge1xuICAgICAgICB0aHJvdyB3aXRoQXV0b1JlZnJlc2hVc2VkT25VbnN1cHBvcnRlZEh0dHBNZXRob2QoY29udGV4dC5jcmVhdG9ySW50ZXJuYWxzLm1ldGhvZCk7XG4gICAgICB9XG5cbiAgICAgIHF1ZXJ5RWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBzaWduYWwgb2Ygb3B0aW9ucy5zaWduYWxDaGFuZ2VzKSB7XG4gICAgICAgICAgICBzaWduYWwoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXJncyA9IGNvbnRleHQuc3RhdGUuYXJncygpO1xuXG4gICAgICAgICAgICBpZiAoYXJncyA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb250ZXh0LmV4ZWN1dGUoeyBhcmdzIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBRVUVSWV9FRkZFQ1RfRVJST1JfTUVTU0FHRSxcbiAgICAgICAgeyBpbmplY3RvcjogY29udGV4dC5kZXBzLmluamVjdG9yIH0sXG4gICAgICApO1xuICAgIH0sXG4gIH0pO1xufTtcbiJdfQ==
@@ -1,97 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { inject } from '@angular/core';
3
- import { buildQueryCacheKey, shouldCacheQuery } from '../query-client';
4
- import { buildRoute } from '../request';
5
- import { createHttpRequest } from './http-request';
6
- import { uncacheableRequestHasCacheKeyParam, uncacheableRequestHasSkipCacheParam } from './query-errors';
7
- export const createQueryRepository = (config) => {
8
- const httpClient = inject(HttpClient);
9
- const cache = new Map();
10
- const request = (options) => {
11
- const { args, clientOptions, runQueryOptions } = options;
12
- const shouldCache = shouldCacheQuery(options.method);
13
- if (!shouldCache && options.key)
14
- throw uncacheableRequestHasCacheKeyParam(options.key);
15
- if (!shouldCache && runQueryOptions?.skipCache)
16
- throw uncacheableRequestHasSkipCacheParam();
17
- const route = buildRoute({
18
- base: config.baseUrl,
19
- route: options.route,
20
- pathParams: args?.pathParams,
21
- queryParams: args?.queryParams,
22
- queryParamConfig: config.queryString,
23
- });
24
- const key = shouldCache &&
25
- buildQueryCacheKey(`${options.key ? options.key + '_' : ''}${route}`, {
26
- body: args?.body,
27
- queryParams: args?.queryParams,
28
- pathParams: args?.pathParams,
29
- // TODO: remaining props
30
- // headers: args?.headers,
31
- });
32
- const previousKey = options.previousKey;
33
- if (key !== previousKey && previousKey) {
34
- unbind(previousKey, options.destroyRef);
35
- }
36
- if (shouldCache && key) {
37
- const cacheEntry = cache.get(key);
38
- if (cacheEntry) {
39
- bind(key, options.destroyRef, cacheEntry.request);
40
- if (runQueryOptions?.skipCache || cacheEntry.request.isStale()) {
41
- cacheEntry.request.execute({ skipCache: runQueryOptions?.skipCache });
42
- }
43
- return { key, request: cacheEntry.request };
44
- }
45
- }
46
- const request = createHttpRequest({
47
- fullPath: route,
48
- args,
49
- method: options.method,
50
- dependencies: {
51
- httpClient,
52
- },
53
- clientOptions,
54
- cacheAdapter: config.cacheAdapter,
55
- retryFn: config.retryFn,
56
- });
57
- request.execute();
58
- if (shouldCache && key) {
59
- bind(key, options.destroyRef, request);
60
- }
61
- return { key, request };
62
- };
63
- const unbind = (key, destroyRef) => {
64
- if (!key)
65
- return false;
66
- const cacheEntry = cache.get(key);
67
- if (!cacheEntry)
68
- return false;
69
- cacheEntry.consumers.delete(destroyRef);
70
- if (cacheEntry.consumers.size === 0) {
71
- cacheEntry.request.destroy();
72
- cache.delete(key);
73
- }
74
- return true;
75
- };
76
- const bind = (key, destroyRef, request) => {
77
- const destroyListener = destroyRef.onDestroy(() => unbind(key, destroyRef));
78
- const cacheEntry = cache.get(key);
79
- if (cacheEntry) {
80
- cacheEntry.consumers.set(destroyRef, destroyListener);
81
- }
82
- else {
83
- const consumers = new Map([]);
84
- consumers.set(destroyRef, destroyListener);
85
- cache.set(key, {
86
- consumers,
87
- request,
88
- });
89
- }
90
- };
91
- const repository = {
92
- request,
93
- unbind,
94
- };
95
- return repository;
96
- };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9leHBlcmltZW50YWwvcXVlcnktcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBK0MsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXdFekcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUF5QixFQUFtQixFQUFFO0lBQ2xGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV0QyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztJQUUxRCxNQUFNLE9BQU8sR0FBRyxDQUEwQixPQUE2QyxFQUFFLEVBQUU7UUFDekYsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3pELE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHO1lBQUUsTUFBTSxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFdBQVcsSUFBSSxlQUFlLEVBQUUsU0FBUztZQUFFLE1BQU0sbUNBQW1D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LE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBYSxFQUFFLFVBQXNCLEVBQUUsT0FBK0IsRUFBRSxFQUFFO1FBQ3RGLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sU0FBUyxHQUE0QyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUV2RSxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUUzQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDYixTQUFTO2dCQUNULE9BQU87YUFDUixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQW9CO1FBQ2xDLE9BQU87UUFDUCxNQUFNO0tBQ1AsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJ1aWxkUXVlcnlDYWNoZUtleSwgc2hvdWxkQ2FjaGVRdWVyeSB9IGZyb20gJy4uL3F1ZXJ5LWNsaWVudCc7XG5pbXBvcnQgeyBidWlsZFJvdXRlIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBDcmVhdGVIdHRwUmVxdWVzdENsaWVudE9wdGlvbnMsIEh0dHBSZXF1ZXN0LCBjcmVhdGVIdHRwUmVxdWVzdCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0JztcbmltcG9ydCB7IFF1ZXJ5QXJncywgUmVxdWVzdEFyZ3MgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5Q2xpZW50Q29uZmlnIH0gZnJvbSAnLi9xdWVyeS1jbGllbnQtY29uZmlnJztcbmltcG9ydCB7IFF1ZXJ5TWV0aG9kLCBSb3V0ZVR5cGUgfSBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuaW1wb3J0IHsgdW5jYWNoZWFibGVSZXF1ZXN0SGFzQ2FjaGVLZXlQYXJhbSwgdW5jYWNoZWFibGVSZXF1ZXN0SGFzU2tpcENhY2hlUGFyYW0gfSBmcm9tICcuL3F1ZXJ5LWVycm9ycyc7XG5pbXBvcnQgeyBSdW5RdWVyeUV4ZWN1dGVPcHRpb25zIH0gZnJvbSAnLi9xdWVyeS1leGVjdXRlLXV0aWxzJztcblxuZXhwb3J0IHR5cGUgUXVlcnlSZXBvc2l0b3J5UmVxdWVzdE9wdGlvbnM8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICAvKipcbiAgICogVGhlIHJvdXRlIG9mIHRoZSByZXF1ZXN0LlxuICAgKiBAZXhhbXBsZSAnL3VzZXJzJ1xuICAgKiBAZXhhbXBsZSAoYXJncykgPT4gYC91c2Vycy8ke2FyZ3MudXNlcklkfWBcbiAgICovXG4gIHJvdXRlOiBSb3V0ZVR5cGU8VEFyZ3M+O1xuXG4gIC8qKiBUaGUgSFRUUCBtZXRob2Qgb2YgdGhlIHJlcXVlc3QgKi9cbiAgbWV0aG9kOiBRdWVyeU1ldGhvZDtcblxuICAvKiogVGhlIGRhdGEgb2YgdGhlIHJlcXVlc3QgKi9cbiAgYXJncz86IFJlcXVlc3RBcmdzPFRBcmdzPiB8IG51bGw7XG5cbiAgLyoqIFRoZSBjbGllbnQgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCAqL1xuICBjbGllbnRPcHRpb25zPzogQ3JlYXRlSHR0cFJlcXVlc3RDbGllbnRPcHRpb25zO1xuXG4gIC8qKiBJZiBzZXQsIHRoaXMgcmVxdWVzdCdzIGNhY2hlIGtleSB3aWxsIGJlIHByZWZpeGVkIHdpdGggdGhpcyBrZXkgKi9cbiAga2V5Pzogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcHJldmlvdXMgY2FjaGUga2V5IG9mIHRoZSByZXF1ZXN0ICovXG4gIHByZXZpb3VzS2V5Pzogc3RyaW5nIHwgZmFsc2U7XG5cbiAgLyoqIFRoZSBkZXN0cm95IHJlZiB0byBiaW5kIHRoZSByZXF1ZXN0IHRvLiBJZiB0aGUgZGVzdHJveSByZWYgaXMgZGVzdHJveWVkLCB0aGUgcmVxdWVzdCB3aWxsIGJlIGRlc3Ryb3llZCBhcyB3ZWxsLiAqL1xuICBkZXN0cm95UmVmOiBEZXN0cm95UmVmO1xuXG4gIC8qKiBDb25maWd1cmF0aW9uIG9uIGhvdyB0byBydW4gdGhlIHF1ZXJ5ICovXG4gIHJ1blF1ZXJ5T3B0aW9ucz86IFJ1blF1ZXJ5RXhlY3V0ZU9wdGlvbnM7XG59O1xuXG5leHBvcnQgdHlwZSBRdWVyeVJlcG9zaXRvcnlJdGVtPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPiA9IHtcbiAgLyoqIFRoZSBrZXkgb2YgdGhlIHJlcXVlc3QuIElmIHRoZSBrZXkgaXMgYGZhbHNlYCwgdGhlIHJlcXVlc3QgaXMgbm90IGNhY2hlZCwgb3RoZXJ3aXNlIGl0IGlzLiAqL1xuICBrZXk6IFF1ZXJ5S2V5T3JOb25lO1xuXG4gIC8qKiBUaGUgcmVxdWVzdCBvYmplY3QgKi9cbiAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8VEFyZ3M+O1xufTtcblxuLyoqXG4gKiBUaGUgcXVlcnkgcmVwb3NpdG9yeSBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYWxsIHJlcXVlc3RzIGFuZCB0aGVpciBjb25zdW1lcnMuXG4gKiBJdCB3aWxsIGNhY2hlIHJlcXVlc3RzIGlmIHRoZXkgY2FuIGJlIGNhY2hlZCBhbmQgcmV1c2UgdGhlbSBpZiB0aGV5IGFyZSBhbHJlYWR5IGNhY2hlZC5cbiAqIEl0IHdpbGwgYWxzbyBkZXN0cm95IHJlcXVlc3RzIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvbnN1bWVycyBsZWZ0LlxuICovXG5leHBvcnQgdHlwZSBRdWVyeVJlcG9zaXRvcnkgPSB7XG4gIC8qKiBDcmVhdGVzIGEgbmV3IHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIGFscmVhZHkgY2FjaGVkLCBpdCB3aWxsIGJlIHJldXNlZC4gKi9cbiAgcmVxdWVzdDogPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiBRdWVyeVJlcG9zaXRvcnlSZXF1ZXN0T3B0aW9uczxUQXJncz4pID0+IFF1ZXJ5UmVwb3NpdG9yeUl0ZW08VEFyZ3M+O1xuXG4gIC8qKiBSZW1vdmVzIGEgY29uc3VtZXIgZnJvbSBhIHJlcXVlc3QgYnkgaXRzIGtleS4gRGVzdHJveXMgdGhlIHJlcXVlc3QgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29uc3VtZXJzIGxlZnQuICovXG4gIHVuYmluZDogKGtleTogUXVlcnlLZXlPck5vbmUsIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYpID0+IGJvb2xlYW47XG59O1xuXG4vKiogVGhlIGtleSBvZiBhIHF1ZXJ5ICovXG5leHBvcnQgdHlwZSBRdWVyeUtleSA9IHN0cmluZztcblxuLyoqIEEga2V5IHRoYXQgd2lsbCBub3QgYmUgY2FjaGVkICovXG5leHBvcnQgdHlwZSBRdWVyeUtleU5vQ2FjaGUgPSBmYWxzZTtcblxuLyoqIEEga2V5IHRoYXQgbWF5IG9yIG1heSBub3QgYmUgY2FjaGVkICovXG5leHBvcnQgdHlwZSBRdWVyeUtleU9yTm9uZSA9IFF1ZXJ5S2V5IHwgUXVlcnlLZXlOb0NhY2hlO1xuXG4vKiogUnVucyAudW5iaW5kKCkgaWYgdGhlIERlc3Ryb3lSZWYub25EZXN0cm95KCkgZ2V0cyBjYWxsZWQgKi9cbnR5cGUgRGVzdHJveUNsZWFudXBDYWxsYmFjayA9ICgpID0+IHZvaWQ7XG5cbi8qKiBLZWVwcyB0cmFjayBvZiBhbGwgcGxhY2VzIHdoZXJlIHRoZSByZXF1ZXN0IGdldHMgdXNlZC4gV2lsbCBiZSBjbGVhbmVkIHVwIGFuZCByZW1vdmVkIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvbnN1bWVycy4gICovXG50eXBlIERlc3Ryb3lMaXN0ZW5lck1hcEl0ZW0gPSB7XG4gIGNvbnN1bWVyczogTWFwPERlc3Ryb3lSZWYsIERlc3Ryb3lDbGVhbnVwQ2FsbGJhY2s+O1xuICByZXF1ZXN0OiBIdHRwUmVxdWVzdDxRdWVyeUFyZ3M+O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5UmVwb3NpdG9yeSA9IChjb25maWc6IFF1ZXJ5Q2xpZW50Q29uZmlnKTogUXVlcnlSZXBvc2l0b3J5ID0+IHtcbiAgY29uc3QgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBjb25zdCBjYWNoZSA9IG5ldyBNYXA8UXVlcnlLZXksIERlc3Ryb3lMaXN0ZW5lck1hcEl0ZW0+KCk7XG5cbiAgY29uc3QgcmVxdWVzdCA9IDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4ob3B0aW9uczogUXVlcnlSZXBvc2l0b3J5UmVxdWVzdE9wdGlvbnM8VEFyZ3M+KSA9PiB7XG4gICAgY29uc3QgeyBhcmdzLCBjbGllbnRPcHRpb25zLCBydW5RdWVyeU9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3Qgc2hvdWxkQ2FjaGUgPSBzaG91bGRDYWNoZVF1ZXJ5KG9wdGlvbnMubWV0aG9kKTtcblxuICAgIGlmICghc2hvdWxkQ2FjaGUgJiYgb3B0aW9ucy5rZXkpIHRocm93IHVuY2FjaGVhYmxlUmVxdWVzdEhhc0NhY2hlS2V5UGFyYW0ob3B0aW9ucy5rZXkpO1xuICAgIGlmICghc2hvdWxkQ2FjaGUgJiYgcnVuUXVlcnlPcHRpb25zPy5za2lwQ2FjaGUpIHRocm93IHVuY2FjaGVhYmxlUmVxdWVzdEhhc1NraXBDYWNoZVBhcmFtKCk7XG5cbiAgICBjb25zdCByb3V0ZSA9IGJ1aWxkUm91dGUoe1xuICAgICAgYmFzZTogY29uZmlnLmJhc2VVcmwsXG4gICAgICByb3V0ZTogb3B0aW9ucy5yb3V0ZSxcbiAgICAgIHBhdGhQYXJhbXM6IGFyZ3M/LnBhdGhQYXJhbXMsXG4gICAgICBxdWVyeVBhcmFtczogYXJncz8ucXVlcnlQYXJhbXMsXG4gICAgICBxdWVyeVBhcmFtQ29uZmlnOiBjb25maWcucXVlcnlTdHJpbmcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBrZXkgPVxuICAgICAgc2hvdWxkQ2FjaGUgJiZcbiAgICAgIGJ1aWxkUXVlcnlDYWNoZUtleShgJHtvcHRpb25zLmtleSA/IG9wdGlvbnMua2V5ICsgJ18nIDogJyd9JHtyb3V0ZX1gLCB7XG4gICAgICAgIGJvZHk6IGFyZ3M/LmJvZHksXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBhcmdzPy5xdWVyeVBhcmFtcyxcbiAgICAgICAgcGF0aFBhcmFtczogYXJncz8ucGF0aFBhcmFtcyxcblxuICAgICAgICAvLyBUT0RPOiByZW1haW5pbmcgcHJvcHNcbiAgICAgICAgLy8gaGVhZGVyczogYXJncz8uaGVhZGVycyxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgcHJldmlvdXNLZXkgPSBvcHRpb25zLnByZXZpb3VzS2V5O1xuXG4gICAgaWYgKGtleSAhPT0gcHJldmlvdXNLZXkgJiYgcHJldmlvdXNLZXkpIHtcbiAgICAgIHVuYmluZChwcmV2aW91c0tleSwgb3B0aW9ucy5kZXN0cm95UmVmKTtcbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkQ2FjaGUgJiYga2V5KSB7XG4gICAgICBjb25zdCBjYWNoZUVudHJ5ID0gY2FjaGUuZ2V0KGtleSk7XG5cbiAgICAgIGlmIChjYWNoZUVudHJ5KSB7XG4gICAgICAgIGJpbmQoa2V5LCBvcHRpb25zLmRlc3Ryb3lSZWYsIGNhY2hlRW50cnkucmVxdWVzdCk7XG5cbiAgICAgICAgaWYgKHJ1blF1ZXJ5T3B0aW9ucz8uc2tpcENhY2hlIHx8IGNhY2hlRW50cnkucmVxdWVzdC5pc1N0YWxlKCkpIHtcbiAgICAgICAgICBjYWNoZUVudHJ5LnJlcXVlc3QuZXhlY3V0ZSh7IHNraXBDYWNoZTogcnVuUXVlcnlPcHRpb25zPy5za2lwQ2FjaGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBrZXksIHJlcXVlc3Q6IGNhY2hlRW50cnkucmVxdWVzdCBhcyBIdHRwUmVxdWVzdDxUQXJncz4gfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlSHR0cFJlcXVlc3Q8VEFyZ3M+KHtcbiAgICAgIGZ1bGxQYXRoOiByb3V0ZSxcbiAgICAgIGFyZ3MsXG4gICAgICBtZXRob2Q6IG9wdGlvbnMubWV0aG9kLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICAgIGh0dHBDbGllbnQsXG4gICAgICB9LFxuICAgICAgY2xpZW50T3B0aW9ucyxcbiAgICAgIGNhY2hlQWRhcHRlcjogY29uZmlnLmNhY2hlQWRhcHRlcixcbiAgICAgIHJldHJ5Rm46IGNvbmZpZy5yZXRyeUZuLFxuICAgIH0pO1xuXG4gICAgcmVxdWVzdC5leGVjdXRlKCk7XG5cbiAgICBpZiAoc2hvdWxkQ2FjaGUgJiYga2V5KSB7XG4gICAgICBiaW5kKGtleSwgb3B0aW9ucy5kZXN0cm95UmVmLCByZXF1ZXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBrZXksIHJlcXVlc3QgfTtcbiAgfTtcblxuICBjb25zdCB1bmJpbmQgPSAoa2V5OiBRdWVyeUtleU9yTm9uZSwgZGVzdHJveVJlZjogRGVzdHJveVJlZikgPT4ge1xuICAgIGlmICgha2V5KSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBjYWNoZUVudHJ5ID0gY2FjaGUuZ2V0KGtleSk7XG5cbiAgICBpZiAoIWNhY2hlRW50cnkpIHJldHVybiBmYWxzZTtcblxuICAgIGNhY2hlRW50cnkuY29uc3VtZXJzLmRlbGV0ZShkZXN0cm95UmVmKTtcblxuICAgIGlmIChjYWNoZUVudHJ5LmNvbnN1bWVycy5zaXplID09PSAwKSB7XG4gICAgICBjYWNoZUVudHJ5LnJlcXVlc3QuZGVzdHJveSgpO1xuICAgICAgY2FjaGUuZGVsZXRlKGtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgYmluZCA9IChrZXk6IFF1ZXJ5S2V5LCBkZXN0cm95UmVmOiBEZXN0cm95UmVmLCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxRdWVyeUFyZ3M+KSA9PiB7XG4gICAgY29uc3QgZGVzdHJveUxpc3RlbmVyID0gZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdW5iaW5kKGtleSwgZGVzdHJveVJlZikpO1xuXG4gICAgY29uc3QgY2FjaGVFbnRyeSA9IGNhY2hlLmdldChrZXkpO1xuXG4gICAgaWYgKGNhY2hlRW50cnkpIHtcbiAgICAgIGNhY2hlRW50cnkuY29uc3VtZXJzLnNldChkZXN0cm95UmVmLCBkZXN0cm95TGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb25zdW1lcnM6IE1hcDxEZXN0cm95UmVmLCBEZXN0cm95Q2xlYW51cENhbGxiYWNrPiA9IG5ldyBNYXAoW10pO1xuXG4gICAgICBjb25zdW1lcnMuc2V0KGRlc3Ryb3lSZWYsIGRlc3Ryb3lMaXN0ZW5lcik7XG5cbiAgICAgIGNhY2hlLnNldChrZXksIHtcbiAgICAgICAgY29uc3VtZXJzLFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcG9zaXRvcnk6IFF1ZXJ5UmVwb3NpdG9yeSA9IHtcbiAgICByZXF1ZXN0LFxuICAgIHVuYmluZCxcbiAgfTtcblxuICByZXR1cm4gcmVwb3NpdG9yeTtcbn07XG4iXX0=
@@ -1,45 +0,0 @@
1
- import { effect, signal, untracked } from '@angular/core';
2
- import { setupQueryState } from './query-state';
3
- export const createQuerySnapshotFn = (options) => {
4
- const { state, deps } = options;
5
- const snapshotFn = () => {
6
- const snapshotState = setupQueryState({});
7
- const isAlive = signal(true);
8
- const killEffectRef = effect(() => {
9
- const currentLoading = state.loading();
10
- const currentError = state.error();
11
- const currentResponse = state.response();
12
- const currentArgs = state.args();
13
- const currentLatestHttpEvent = state.latestHttpEvent();
14
- const currentLastTimeExecutedAt = state.lastTimeExecutedAt();
15
- untracked(() => {
16
- snapshotState.args.set(currentArgs);
17
- snapshotState.error.set(currentError);
18
- snapshotState.lastTimeExecutedAt.set(currentLastTimeExecutedAt);
19
- snapshotState.latestHttpEvent.set(currentLatestHttpEvent);
20
- snapshotState.loading.set(currentLoading);
21
- snapshotState.response.set(currentResponse);
22
- if (currentLoading)
23
- return;
24
- if (!currentResponse && !currentError)
25
- return;
26
- // kill the effect once loading is done and we either have a response or an error
27
- killEffectRef.destroy();
28
- isAlive.set(false);
29
- });
30
- }, { injector: deps.injector });
31
- const snapshot = {
32
- args: snapshotState.args.asReadonly(),
33
- response: snapshotState.response.asReadonly(),
34
- latestHttpEvent: snapshotState.latestHttpEvent.asReadonly(),
35
- loading: snapshotState.loading.asReadonly(),
36
- error: snapshotState.error.asReadonly(),
37
- lastTimeExecutedAt: snapshotState.lastTimeExecutedAt.asReadonly(),
38
- isAlive: isAlive.asReadonly(),
39
- id: options.execute.currentRepositoryKey,
40
- };
41
- return snapshot;
42
- };
43
- return snapshotFn;
44
- };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc25hcHNob3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LXNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkxRCxPQUFPLEVBQWMsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQTBCLE9BQTBDLEVBQUUsRUFBRTtJQUMzRyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVoQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7UUFDdEIsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQzFCLEdBQUcsRUFBRTtZQUNILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2RCxNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRTdELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN0QyxhQUFhLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQ2hFLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQzFELGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMxQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFNUMsSUFBSSxjQUFjO29CQUFFLE9BQU87Z0JBRTNCLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxZQUFZO29CQUFFLE9BQU87Z0JBRTlDLGlGQUFpRjtnQkFDakYsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUV4QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FDNUIsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUF5QjtZQUNyQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDckMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQzdDLGVBQWUsRUFBRSxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRTtZQUMzRCxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDM0MsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUU7WUFDakUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDN0IsRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CO1NBQ3pDLENBQUM7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFRixPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZmZlY3QsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRdWVyeUFyZ3MsIFF1ZXJ5U25hcHNob3QgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5RGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9xdWVyeS1kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHsgUXVlcnlFeGVjdXRlIH0gZnJvbSAnLi9xdWVyeS1leGVjdXRlJztcbmltcG9ydCB7IFF1ZXJ5U3RhdGUsIHNldHVwUXVlcnlTdGF0ZSB9IGZyb20gJy4vcXVlcnktc3RhdGUnO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVRdWVyeVNuYXBzaG90T3B0aW9uczxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIHN0YXRlOiBRdWVyeVN0YXRlPFRBcmdzPjtcbiAgZGVwczogUXVlcnlEZXBlbmRlbmNpZXM7XG4gIGV4ZWN1dGU6IFF1ZXJ5RXhlY3V0ZTxUQXJncz47XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnlTbmFwc2hvdEZuID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiBDcmVhdGVRdWVyeVNuYXBzaG90T3B0aW9uczxUQXJncz4pID0+IHtcbiAgY29uc3QgeyBzdGF0ZSwgZGVwcyB9ID0gb3B0aW9ucztcblxuICBjb25zdCBzbmFwc2hvdEZuID0gKCkgPT4ge1xuICAgIGNvbnN0IHNuYXBzaG90U3RhdGUgPSBzZXR1cFF1ZXJ5U3RhdGU8VEFyZ3M+KHt9KTtcbiAgICBjb25zdCBpc0FsaXZlID0gc2lnbmFsKHRydWUpO1xuXG4gICAgY29uc3Qga2lsbEVmZmVjdFJlZiA9IGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudExvYWRpbmcgPSBzdGF0ZS5sb2FkaW5nKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRFcnJvciA9IHN0YXRlLmVycm9yKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSZXNwb25zZSA9IHN0YXRlLnJlc3BvbnNlKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcmdzID0gc3RhdGUuYXJncygpO1xuICAgICAgICBjb25zdCBjdXJyZW50TGF0ZXN0SHR0cEV2ZW50ID0gc3RhdGUubGF0ZXN0SHR0cEV2ZW50KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYXN0VGltZUV4ZWN1dGVkQXQgPSBzdGF0ZS5sYXN0VGltZUV4ZWN1dGVkQXQoKTtcblxuICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIHNuYXBzaG90U3RhdGUuYXJncy5zZXQoY3VycmVudEFyZ3MpO1xuICAgICAgICAgIHNuYXBzaG90U3RhdGUuZXJyb3Iuc2V0KGN1cnJlbnRFcnJvcik7XG4gICAgICAgICAgc25hcHNob3RTdGF0ZS5sYXN0VGltZUV4ZWN1dGVkQXQuc2V0KGN1cnJlbnRMYXN0VGltZUV4ZWN1dGVkQXQpO1xuICAgICAgICAgIHNuYXBzaG90U3RhdGUubGF0ZXN0SHR0cEV2ZW50LnNldChjdXJyZW50TGF0ZXN0SHR0cEV2ZW50KTtcbiAgICAgICAgICBzbmFwc2hvdFN0YXRlLmxvYWRpbmcuc2V0KGN1cnJlbnRMb2FkaW5nKTtcbiAgICAgICAgICBzbmFwc2hvdFN0YXRlLnJlc3BvbnNlLnNldChjdXJyZW50UmVzcG9uc2UpO1xuXG4gICAgICAgICAgaWYgKGN1cnJlbnRMb2FkaW5nKSByZXR1cm47XG5cbiAgICAgICAgICBpZiAoIWN1cnJlbnRSZXNwb25zZSAmJiAhY3VycmVudEVycm9yKSByZXR1cm47XG5cbiAgICAgICAgICAvLyBraWxsIHRoZSBlZmZlY3Qgb25jZSBsb2FkaW5nIGlzIGRvbmUgYW5kIHdlIGVpdGhlciBoYXZlIGEgcmVzcG9uc2Ugb3IgYW4gZXJyb3JcbiAgICAgICAgICBraWxsRWZmZWN0UmVmLmRlc3Ryb3koKTtcblxuICAgICAgICAgIGlzQWxpdmUuc2V0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgeyBpbmplY3RvcjogZGVwcy5pbmplY3RvciB9LFxuICAgICk7XG5cbiAgICBjb25zdCBzbmFwc2hvdDogUXVlcnlTbmFwc2hvdDxUQXJncz4gPSB7XG4gICAgICBhcmdzOiBzbmFwc2hvdFN0YXRlLmFyZ3MuYXNSZWFkb25seSgpLFxuICAgICAgcmVzcG9uc2U6IHNuYXBzaG90U3RhdGUucmVzcG9uc2UuYXNSZWFkb25seSgpLFxuICAgICAgbGF0ZXN0SHR0cEV2ZW50OiBzbmFwc2hvdFN0YXRlLmxhdGVzdEh0dHBFdmVudC5hc1JlYWRvbmx5KCksXG4gICAgICBsb2FkaW5nOiBzbmFwc2hvdFN0YXRlLmxvYWRpbmcuYXNSZWFkb25seSgpLFxuICAgICAgZXJyb3I6IHNuYXBzaG90U3RhdGUuZXJyb3IuYXNSZWFkb25seSgpLFxuICAgICAgbGFzdFRpbWVFeGVjdXRlZEF0OiBzbmFwc2hvdFN0YXRlLmxhc3RUaW1lRXhlY3V0ZWRBdC5hc1JlYWRvbmx5KCksXG4gICAgICBpc0FsaXZlOiBpc0FsaXZlLmFzUmVhZG9ubHkoKSxcbiAgICAgIGlkOiBvcHRpb25zLmV4ZWN1dGUuY3VycmVudFJlcG9zaXRvcnlLZXksXG4gICAgfTtcblxuICAgIHJldHVybiBzbmFwc2hvdDtcbiAgfTtcblxuICByZXR1cm4gc25hcHNob3RGbjtcbn07XG4iXX0=
@@ -1,65 +0,0 @@
1
- import { computed, effect, inject, Injector, runInInjectionContext, signal, untracked } from '@angular/core';
2
- export const transformArrayResponse = (responses) => responses.filter((r) => !!r).flatMap((r) => r);
3
- export const transformPaginatedResponse = (responses) => responses.filter((r) => !!r).flatMap((r) => r.items);
4
- export const createQueryStack = (computation, options) => {
5
- const { append = false, appendFn = (oldQueries, newQueries) => {
6
- const queries = [...oldQueries, ...newQueries];
7
- const lastQuery = newQueries[newQueries.length - 1] ?? oldQueries[oldQueries.length - 1] ?? null;
8
- return { queries, lastQuery };
9
- }, transform, } = options ?? {};
10
- const injector = inject(Injector);
11
- const queries = signal([]);
12
- const lastQuery = signal(null);
13
- effect(() => {
14
- const newQueryOrQueries = runInInjectionContext(injector, () => computation());
15
- const newQueries = Array.isArray(newQueryOrQueries) ? newQueryOrQueries : [newQueryOrQueries].filter((q) => !!q);
16
- untracked(() => {
17
- const oldQueries = queries();
18
- if (append) {
19
- const { queries: appendedQueries, lastQuery: lastAppendedQuery } = appendFn(oldQueries, newQueries);
20
- queries.set(appendedQueries);
21
- lastQuery.set(lastAppendedQuery);
22
- }
23
- else {
24
- for (const oldQuery of oldQueries) {
25
- if (!newQueries.some((q) => q.id() === oldQuery.id())) {
26
- oldQuery.destroy();
27
- }
28
- }
29
- queries.set(newQueries);
30
- lastQuery.set(newQueries[newQueries.length - 1] ?? null);
31
- }
32
- });
33
- });
34
- const loading = computed(() => queries().some((q) => q.loading()));
35
- const error = computed(() => queries()
36
- .map((q) => q.error())
37
- .find((e) => e !== null) ?? null);
38
- const response = computed(() => {
39
- const responses = queries().map((q) => q.response());
40
- return transform?.(responses) ?? responses;
41
- });
42
- const execute = (options) => {
43
- for (const query of queries()) {
44
- query.execute({ options: { skipCache: options?.skipCache } });
45
- }
46
- };
47
- const clear = () => {
48
- for (const query of queries()) {
49
- query.destroy();
50
- }
51
- queries.set([]);
52
- lastQuery.set(null);
53
- };
54
- const stack = {
55
- queries: queries.asReadonly(),
56
- lastQuery: lastQuery.asReadonly(),
57
- loading,
58
- error,
59
- response,
60
- execute,
61
- clear,
62
- };
63
- return stack;
64
- };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXdEckgsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBK0IsU0FBWSxFQUFFLEVBQUUsQ0FDbkYsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUF3QixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQTRDLFNBQVksRUFBRSxFQUFFLENBQ3BHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQTRDLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsV0FBaUMsRUFDakMsT0FBdUMsRUFDdkMsRUFBRTtJQUNGLE1BQU0sRUFDSixNQUFNLEdBQUcsS0FBSyxFQUNkLFFBQVEsR0FBRyxDQUFDLFVBQWUsRUFBRSxVQUFlLEVBQUUsRUFBRTtRQUM5QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDL0MsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUks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QUVoQixNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQWlDLEVBQUUsRUFBRTtRQUNwRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUU7UUFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQixTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUMsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFxQjtRQUM5QixPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRTtRQUM3QixTQUFTLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRTtRQUNqQyxPQUFPO1FBQ1AsS0FBSztRQUNMLFFBQVE7UUFDUixPQUFPO1FBQ1AsS0FBSztLQUNOLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBTaWduYWwsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbnlRdWVyeSB9IGZyb20gJy4vcXVlcnknO1xuXG5leHBvcnQgdHlwZSBRdWVyeVN0YWNrPFQgZXh0ZW5kcyBBbnlRdWVyeSwgSiA9IFJldHVyblR5cGU8VFsncmVzcG9uc2UnXT5bXT4gPSB7XG4gIC8qKiBDb250YWlucyBhbGwgcXVlcmllcyBpbiB0aGUgc3RhY2suICovXG4gIHF1ZXJpZXM6IFNpZ25hbDxUW10+O1xuXG4gIC8qKiBDb250YWlucyB0aGUgbGFzdCBxdWVyeSBpbiB0aGUgc3RhY2suIFVzZWZ1bCBmb3IgZ2V0dGluZyBjdXJyZW50IHBhZ2luYXRpb24gdmFsdWVzLiAqL1xuICBsYXN0UXVlcnk6IFNpZ25hbDxUIHwgbnVsbD47XG5cbiAgLyoqIFRydWUgaWYgYW55IHF1ZXJ5IGluIHRoZSBzdGFjayBpcyBsb2FkaW5nLiAqL1xuICBsb2FkaW5nOiBTaWduYWw8Ym9vbGVhbj47XG5cbiAgLyoqIENvbnRhaW5zIHRoZSBmaXJzdCBlcnJvciB0aGF0IG9jY3VycmVkIGluIHRoZSBzdGFjay4gKi9cbiAgZXJyb3I6IFNpZ25hbDxIdHRwRXJyb3JSZXNwb25zZSB8IG51bGw+O1xuXG4gIC8qKiBDb250YWlucyB0aGUgcmVzcG9uc2VzIG9mIGFsbCBxdWVyaWVzIGluIHRoZSBzdGFjay4gV2lsbCBiZSBgbnVsbGAgZm9yIHF1ZXJpZXMgdGhhdCBhcmUgbG9hZGluZyBvciBlcnJvcmVkLiAqL1xuICByZXNwb25zZTogU2lnbmFsPEo+O1xuXG4gIC8qKiBFeGVjdXRlcyBhbGwgcXVlcmllcyBpbiB0aGUgc3RhY2suICovXG4gIGV4ZWN1dGU6IChvcHRpb25zPzogeyBza2lwQ2FjaGU/OiBib29sZWFuIH0pID0+IHZvaWQ7XG5cbiAgLyoqIERlc3Ryb3lzIGFsbCBxdWVyaWVzIGluIHRoZSBzdGFjayBhbmQgZW1wdGllcyBpdC4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGlmIGBhcHBlbmRgIGlzIHRydWUuICovXG4gIGNsZWFyOiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQW55UXVlcnlTdGFjayA9IFF1ZXJ5U3RhY2s8QW55UXVlcnk+O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVRdWVyeVN0YWNrT3B0aW9uczxUIGV4dGVuZHMgQW55UXVlcnksIEogPSBSZXR1cm5UeXBlPFRbJ3Jlc3BvbnNlJ10+W10+ID0ge1xuICAvKipcbiAgICogSWYgdHJ1ZSwgbmV3IHF1ZXJpZXMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZXhpc3Rpbmcgb25lcy4gT3RoZXJ3aXNlLCBleGlzdGluZyBxdWVyaWVzIHdpbGwgYmUgZGVzdHJveWVkLlxuICAgKiBUaGlzIHNob3VsZCBiZSB1c2VkIGZvciB0aGluZ3MgbGlrZSBpbmZpbml0ZSBzY3JvbGxpbmcgd2hlcmUgYWxyZWFkeSBmZXRjaGVkIHF1ZXJpZXMgc2hvdWxkIG5vdCBiZSBkZXN0cm95ZWQuXG4gICAqL1xuICBhcHBlbmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBhcHBlbmQgaXMgdHJ1ZSwgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB0byBtZXJnZSB0aGUgb2xkIGFuZCBuZXcgcXVlcmllcy5cbiAgICogVXNlZnVsIGlmIHlvdSB3YW50IHRvIGFwcGVuZCB0aGUgbmV3IHF1ZXJpZXMgaW4gYSBzcGVjaWZpYyBvcmRlciAoZS5nLiBhdCB0aGUgYmVnaW5uaW5nKS5cbiAgICovXG4gIGFwcGVuZEZuPzogKFxuICAgIG9sZFF1ZXJpZXM6IFRbXSxcbiAgICBuZXdRdWVyaWVzOiBUW10sXG4gICkgPT4ge1xuICAgIC8qKiBUaGUgbmV3IHF1ZXJpZXMgbWVyZ2VkIHdpdGggdGhlIG9sZCBvbmVzLiAqL1xuICAgIHF1ZXJpZXM6IFRbXTtcblxuICAgIC8qKiBUaGUgbGFzdCBxdWVyeSBpbiB0aGUgbmV3IHF1ZXJpZXMuICovXG4gICAgbGFzdFF1ZXJ5OiBUIHwgbnVsbDtcbiAgfTtcblxuICAvKipcbiAgICogVHJhbnNmb3JtcyB0aGUgcmVzcG9uc2VzIG9mIGFsbCBxdWVyaWVzIGluIHRoZSBzdGFjay4gVXNlZnVsIGZvciBtZXJnaW5nIG9yIGZpbHRlcmluZyByZXNwb25zZXMuXG4gICAqL1xuICB0cmFuc2Zvcm0/OiAocmVzcG9uc2VzOiBSZXR1cm5UeXBlPFRbJ3Jlc3BvbnNlJ10+W10pID0+IEo7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQXJyYXlSZXNwb25zZSA9IDxUIGV4dGVuZHMgKHVua25vd24gfCBudWxsKVtdPihyZXNwb25zZXM6IFQpID0+XG4gIHJlc3BvbnNlcy5maWx0ZXIoKHIpID0+ICEhcikuZmxhdE1hcCgocikgPT4gcikgYXMgTm9uTnVsbGFibGU8VFswXT5bXTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVBhZ2luYXRlZFJlc3BvbnNlID0gPFQgZXh0ZW5kcyAoeyBpdGVtczogdW5rbm93bltdIH0gfCBudWxsKVtdPihyZXNwb25zZXM6IFQpID0+XG4gIHJlc3BvbnNlcy5maWx0ZXIoKHIpID0+ICEhcikuZmxhdE1hcCgocikgPT4gci5pdGVtcykgYXMgTm9uTnVsbGFibGU8Tm9uTnVsbGFibGU8VFswXT5bJ2l0ZW1zJ10+O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnlTdGFjayA9IDxUIGV4dGVuZHMgQW55UXVlcnksIEogPSBSZXR1cm5UeXBlPFRbJ3Jlc3BvbnNlJ10+W10+KFxuICBjb21wdXRhdGlvbjogKCkgPT4gVCB8IFRbXSB8IG51bGwsXG4gIG9wdGlvbnM/OiBDcmVhdGVRdWVyeVN0YWNrT3B0aW9uczxULCBKPixcbikgPT4ge1xuICBjb25zdCB7XG4gICAgYXBwZW5kID0gZmFsc2UsXG4gICAgYXBwZW5kRm4gPSAob2xkUXVlcmllczogVFtdLCBuZXdRdWVyaWVzOiBUW10pID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJpZXMgPSBbLi4ub2xkUXVlcmllcywgLi4ubmV3UXVlcmllc107XG4gICAgICBjb25zdCBsYXN0UXVlcnkgPSBuZXdRdWVyaWVzW25ld1F1ZXJpZXMubGVuZ3RoIC0gMV0gPz8gb2xkUXVlcmllc1tvbGRRdWVyaWVzLmxlbmd0aCAtIDFdID8/IG51bGw7XG5cbiAgICAgIHJldHVybiB7IHF1ZXJpZXMsIGxhc3RRdWVyeSB9O1xuICAgIH0sXG4gICAgdHJhbnNmb3JtLFxuICB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGNvbnN0IHF1ZXJpZXMgPSBzaWduYWw8VFtdPihbXSk7XG4gIGNvbnN0IGxhc3RRdWVyeSA9IHNpZ25hbDxUIHwgbnVsbD4obnVsbCk7XG5cbiAgZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBuZXdRdWVyeU9yUXVlcmllcyA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4gY29tcHV0YXRpb24oKSk7XG5cbiAgICBjb25zdCBuZXdRdWVyaWVzID0gQXJyYXkuaXNBcnJheShuZXdRdWVyeU9yUXVlcmllcykgPyBuZXdRdWVyeU9yUXVlcmllcyA6IFtuZXdRdWVyeU9yUXVlcmllc10uZmlsdGVyKChxKSA9PiAhIXEpO1xuXG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGNvbnN0IG9sZFF1ZXJpZXMgPSBxdWVyaWVzKCk7XG5cbiAgICAgIGlmIChhcHBlbmQpIHtcbiAgICAgICAgY29uc3QgeyBxdWVyaWVzOiBhcHBlbmRlZFF1ZXJpZXMsIGxhc3RRdWVyeTogbGFzdEFwcGVuZGVkUXVlcnkgfSA9IGFwcGVuZEZuKG9sZFF1ZXJpZXMsIG5ld1F1ZXJpZXMpO1xuICAgICAgICBxdWVyaWVzLnNldChhcHBlbmRlZFF1ZXJpZXMpO1xuICAgICAgICBsYXN0UXVlcnkuc2V0KGxhc3RBcHBlbmRlZFF1ZXJ5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qgb2xkUXVlcnkgb2Ygb2xkUXVlcmllcykge1xuICAgICAgICAgIGlmICghbmV3UXVlcmllcy5zb21lKChxKSA9PiBxLmlkKCkgPT09IG9sZFF1ZXJ5LmlkKCkpKSB7XG4gICAgICAgICAgICBvbGRRdWVyeS5kZXN0cm95KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXJpZXMuc2V0KG5ld1F1ZXJpZXMpO1xuICAgICAgICBsYXN0UXVlcnkuc2V0KG5ld1F1ZXJpZXNbbmV3UXVlcmllcy5sZW5ndGggLSAxXSA/PyBudWxsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgbG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHF1ZXJpZXMoKS5zb21lKChxKSA9PiBxLmxvYWRpbmcoKSkpO1xuXG4gIGNvbnN0IGVycm9yID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHF1ZXJpZXMoKVxuICAgICAgICAubWFwKChxKSA9PiBxLmVycm9yKCkpXG4gICAgICAgIC5maW5kKChlKSA9PiBlICE9PSBudWxsKSA/PyBudWxsLFxuICApO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlcyA9IHF1ZXJpZXMoKS5tYXAoKHEpID0+IHEucmVzcG9uc2UoKSk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybT8uKHJlc3BvbnNlcykgPz8gcmVzcG9uc2VzO1xuICB9KSBhcyBTaWduYWw8Sj47XG5cbiAgY29uc3QgZXhlY3V0ZSA9IChvcHRpb25zPzogeyBza2lwQ2FjaGU/OiBib29sZWFuIH0pID0+IHtcbiAgICBmb3IgKGNvbnN0IHF1ZXJ5IG9mIHF1ZXJpZXMoKSkge1xuICAgICAgcXVlcnkuZXhlY3V0ZSh7IG9wdGlvbnM6IHsgc2tpcENhY2hlOiBvcHRpb25zPy5za2lwQ2FjaGUgfSB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gICAgZm9yIChjb25zdCBxdWVyeSBvZiBxdWVyaWVzKCkpIHtcbiAgICAgIHF1ZXJ5LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBxdWVyaWVzLnNldChbXSk7XG4gICAgbGFzdFF1ZXJ5LnNldChudWxsKTtcbiAgfTtcblxuICBjb25zdCBzdGFjazogUXVlcnlTdGFjazxULCBKPiA9IHtcbiAgICBxdWVyaWVzOiBxdWVyaWVzLmFzUmVhZG9ubHkoKSxcbiAgICBsYXN0UXVlcnk6IGxhc3RRdWVyeS5hc1JlYWRvbmx5KCksXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICByZXNwb25zZSxcbiAgICBleGVjdXRlLFxuICAgIGNsZWFyLFxuICB9O1xuXG4gIHJldHVybiBzdGFjaztcbn07XG4iXX0=
@@ -1,20 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
2
- import { signal } from '@angular/core';
3
- export const setupQueryState = (options) => {
4
- const response = signal(null);
5
- const args = signal(null);
6
- const latestHttpEvent = signal(null);
7
- const error = signal(null);
8
- const loading = signal(null);
9
- const lastTimeExecutedAt = signal(null);
10
- const state = {
11
- response,
12
- args,
13
- latestHttpEvent,
14
- loading,
15
- error,
16
- lastTimeExecutedAt,
17
- };
18
- return state;
19
- };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUd6RCxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWdCdkQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQTBCLE9BQStCLEVBQUUsRUFBRTtJQUMxRixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQTZCLElBQUksQ0FBQyxDQUFDO0lBQzFELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBNEIsSUFBSSxDQUFDLENBQUM7SUFDckQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUF3QyxJQUFJLENBQUMsQ0FBQztJQUM1RSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQTJCLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBaUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBRXZELE1BQU0sS0FBSyxHQUFzQjtRQUMvQixRQUFRO1FBQ1IsSUFBSTtRQUNKLGVBQWU7UUFDZixPQUFPO1FBQ1AsS0FBSztRQUNMLGtCQUFrQjtLQUNuQixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFdyaXRhYmxlU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBSZXF1ZXN0TG9hZGluZ1N0YXRlIH0gZnJvbSAnLi9odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgUXVlcnlBcmdzLCBSZXF1ZXN0QXJncywgUmVzcG9uc2VUeXBlIH0gZnJvbSAnLi9xdWVyeSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmV4cG9ydCB0eXBlIFNldHVwUXVlcnlTdGF0ZU9wdGlvbnMgPSB7fTtcblxuZXhwb3J0IHR5cGUgUXVlcnlTdGF0ZTxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIHJlc3BvbnNlOiBXcml0YWJsZVNpZ25hbDxSZXNwb25zZVR5cGU8VEFyZ3M+IHwgbnVsbD47XG4gIGFyZ3M6IFdyaXRhYmxlU2lnbmFsPFJlcXVlc3RBcmdzPFRBcmdzPiB8IG51bGw+O1xuICBsYXRlc3RIdHRwRXZlbnQ6IFdyaXRhYmxlU2lnbmFsPEh0dHBFdmVudDxSZXNwb25zZVR5cGU8VEFyZ3M+PiB8IG51bGw+O1xuICBsb2FkaW5nOiBXcml0YWJsZVNpZ25hbDxIdHRwUmVxdWVzdExvYWRpbmdTdGF0ZSB8IG51bGw+O1xuICBlcnJvcjogV3JpdGFibGVTaWduYWw8SHR0cEVycm9yUmVzcG9uc2UgfCBudWxsPjtcbiAgbGFzdFRpbWVFeGVjdXRlZEF0OiBXcml0YWJsZVNpZ25hbDxudW1iZXIgfCBudWxsPjtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXR1cFF1ZXJ5U3RhdGUgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KG9wdGlvbnM6IFNldHVwUXVlcnlTdGF0ZU9wdGlvbnMpID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBzaWduYWw8UmVzcG9uc2VUeXBlPFRBcmdzPiB8IG51bGw+KG51bGwpO1xuICBjb25zdCBhcmdzID0gc2lnbmFsPFJlcXVlc3RBcmdzPFRBcmdzPiB8IG51bGw+KG51bGwpO1xuICBjb25zdCBsYXRlc3RIdHRwRXZlbnQgPSBzaWduYWw8SHR0cEV2ZW50PFJlc3BvbnNlVHlwZTxUQXJncz4+IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGVycm9yID0gc2lnbmFsPEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGxvYWRpbmcgPSBzaWduYWw8SHR0cFJlcXVlc3RMb2FkaW5nU3RhdGUgfCBudWxsPihudWxsKTtcbiAgY29uc3QgbGFzdFRpbWVFeGVjdXRlZEF0ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IHN0YXRlOiBRdWVyeVN0YXRlPFRBcmdzPiA9IHtcbiAgICByZXNwb25zZSxcbiAgICBhcmdzLFxuICAgIGxhdGVzdEh0dHBFdmVudCxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGxhc3RUaW1lRXhlY3V0ZWRBdCxcbiAgfTtcblxuICByZXR1cm4gc3RhdGU7XG59O1xuIl19