@ethlete/query 5.17.0 → 5.18.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.
- package/CHANGELOG.md +6 -0
- package/esm2022/index.mjs +2 -1
- package/esm2022/lib/devtools/components/query-devtools/query-devtools.component.mjs +3 -3
- package/esm2022/lib/devtools/pipes/query-short-name.pipe.mjs +3 -3
- package/esm2022/lib/directives/infinity-query-trigger.directive.mjs +3 -3
- package/esm2022/lib/directives/infinity-query.directive.mjs +3 -3
- package/esm2022/lib/directives/query.directive.mjs +3 -3
- package/esm2022/lib/experimental/bearer-auth-provider-config.mjs +19 -0
- package/esm2022/lib/experimental/bearer-auth-provider.mjs +245 -0
- package/esm2022/lib/experimental/http-request.mjs +153 -0
- package/esm2022/lib/experimental/index.mjs +21 -0
- package/esm2022/lib/experimental/query-client-config.mjs +13 -0
- package/esm2022/lib/experimental/query-client.mjs +16 -0
- package/esm2022/lib/experimental/query-creator-templates.mjs +33 -0
- package/esm2022/lib/experimental/query-creator.mjs +28 -0
- package/esm2022/lib/experimental/query-dependencies.mjs +14 -0
- package/esm2022/lib/experimental/query-errors.mjs +55 -0
- package/esm2022/lib/experimental/query-execute-utils.mjs +57 -0
- package/esm2022/lib/experimental/query-execute.mjs +12 -0
- package/esm2022/lib/experimental/query-features.mjs +126 -0
- package/esm2022/lib/experimental/query-repository.mjs +91 -0
- package/esm2022/lib/experimental/query-snapshot.mjs +44 -0
- package/esm2022/lib/experimental/query-state.mjs +20 -0
- package/esm2022/lib/experimental/query-utils.mjs +148 -0
- package/esm2022/lib/experimental/query.mjs +37 -0
- package/esm2022/lib/experimental/secure-query-creator.mjs +15 -0
- package/esm2022/lib/experimental/secure-query-execute.mjs +77 -0
- package/esm2022/lib/experimental/secure-query.mjs +41 -0
- package/esm2022/lib/query/query.types.mjs +1 -1
- package/fesm2022/ethlete-query.mjs +1283 -23
- package/fesm2022/ethlete-query.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/experimental/bearer-auth-provider-config.d.ts +111 -0
- package/lib/experimental/bearer-auth-provider.d.ts +63 -0
- package/lib/experimental/http-request.d.ts +55 -0
- package/lib/experimental/index.d.ts +20 -0
- package/lib/experimental/query-client-config.d.ts +18 -0
- package/lib/experimental/query-client.d.ts +10 -0
- package/lib/experimental/query-creator-templates.d.ts +14 -0
- package/lib/experimental/query-creator.d.ts +39 -0
- package/lib/experimental/query-dependencies.d.ts +12 -0
- package/lib/experimental/query-errors.d.ts +39 -0
- package/lib/experimental/query-execute-utils.d.ts +20 -0
- package/lib/experimental/query-execute.d.ts +16 -0
- package/lib/experimental/query-features.d.ts +45 -0
- package/lib/experimental/query-repository.d.ts +31 -0
- package/lib/experimental/query-snapshot.d.ts +8 -0
- package/lib/experimental/query-state.d.ts +14 -0
- package/lib/experimental/query-utils.d.ts +41 -0
- package/lib/experimental/query.d.ts +41 -0
- package/lib/experimental/secure-query-creator.d.ts +7 -0
- package/lib/experimental/secure-query-execute.d.ts +7 -0
- package/lib/experimental/secure-query.d.ts +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
+
import { computed, DestroyRef, effect, inject, 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(currArgsNow);
|
|
25
|
+
});
|
|
26
|
+
}, QUERY_EFFECT_ERROR_MESSAGE);
|
|
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);
|
|
53
|
+
inject(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
|
+
});
|
|
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
|
+
});
|
|
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
|
+
});
|
|
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);
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LWZlYXR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUd6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUUsMENBQTBDLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwSCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUUxQixXQUFXLEdBRVosTUFBTSxlQUFlLENBQUM7QUE0QnZCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBMEIsTUFBNkQsRUFBRSxFQUFFO0lBQ3BILE9BQU8sTUFBNkIsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBMEIsSUFBK0QsRUFBRSxFQUFFO0lBQ25ILE9BQU8sa0JBQWtCLENBQVE7UUFDL0IsSUFBSSw0Q0FBMkI7UUFDL0IsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDZCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUV4QyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNmLE1BQU0sV0FBVyxHQUFHLFFBQVEsRUFBRSxDQUFDO2dCQUUvQixJQUFJLFdBQVcsS0FBSyxJQUFJO29CQUFFLE9BQU87Z0JBRWpDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2IsSUFBSSxXQUFXLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUM3QixPQUFPO29CQUNU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LE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRixDQUFDO1lBRUQsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDZixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDM0MsTUFBTSxFQUFFLENBQUM7Z0JBQ1gsQ0FBQztnQkFFRCxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBRWxDLElBQUksSUFBSSxLQUFLLElBQUk7d0JBQUUsT0FBTztvQkFFMUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNqQyxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG5cbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjb21wdXRlZCwgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIFNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRdWVyeUFyZ3MsIFJlcXVlc3RBcmdzLCBSZXNwb25zZVR5cGUgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7IENyZWF0ZVF1ZXJ5Q3JlYXRvck9wdGlvbnMsIEludGVybmFsQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9ucywgUXVlcnlDb25maWcgfSBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuaW1wb3J0IHsgd2l0aEF1dG9SZWZyZXNoVXNlZE9uVW5zdXBwb3J0ZWRIdHRwTWV0aG9kLCB3aXRoUG9sbGluZ1VzZWRPblVuc3VwcG9ydGVkSHR0cE1ldGhvZCB9IGZyb20gJy4vcXVlcnktZXJyb3JzJztcbmltcG9ydCB7IFF1ZXJ5U3RhdGUgfSBmcm9tICcuL3F1ZXJ5LXN0YXRlJztcbmltcG9ydCB7XG4gIFFVRVJZX0FSR1NfUkVTRVQsXG4gIFFVRVJZX0VGRkVDVF9FUlJPUl9NRVNTQUdFLFxuICBRdWVyeUFyZ3NSZXNldCxcbiAgcXVlcnlFZmZlY3QsXG4gIFF1ZXJ5RmVhdHVyZUZsYWdzLFxufSBmcm9tICcuL3F1ZXJ5LXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IGVudW0gUXVlcnlGZWF0dXJlVHlwZSB7XG4gIFdpdGhBcmdzID0gJ3dpdGhBcmdzJyxcbiAgV2l0aExvZ2dpbmcgPSAnd2l0aExvZ2dpbmcnLFxuICBXaXRoRXJyb3JIYW5kbGluZyA9ICd3aXRoRXJyb3JIYW5kbGluZycsXG4gIFdpdGhTdWNjZXNzSGFuZGxpbmcgPSAnd2l0aFN1Y2Nlc3NIYW5kbGluZycsXG4gIFdpdGhQb2xsaW5nID0gJ3dpdGhQb2xsaW5nJyxcbiAgV2l0aEF1dG9SZWZyZXNoID0gJ3dpdGhBdXRvUmVmcmVzaCcsXG59XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5RmVhdHVyZUNvbnRleHQ8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICBzdGF0ZTogUXVlcnlTdGF0ZTxUQXJncz47XG4gIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZztcbiAgY3JlYXRvckNvbmZpZzogQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9uczxUQXJncz47XG4gIGNyZWF0b3JJbnRlcm5hbHM6IEludGVybmFsQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9ucztcbiAgZXhlY3V0ZTogKGFyZ3M6IFJlcXVlc3RBcmdzPFRBcmdzPikgPT4gdm9pZDtcblxuICBmbGFnczogUXVlcnlGZWF0dXJlRmxhZ3M7XG59O1xuXG5leHBvcnQgdHlwZSBRdWVyeUZlYXR1cmVGbjxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSAoY29udGV4dDogUXVlcnlGZWF0dXJlQ29udGV4dDxUQXJncz4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5RmVhdHVyZTxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIHR5cGU6IFF1ZXJ5RmVhdHVyZVR5cGU7XG4gIGZuOiAoY29udGV4dDogUXVlcnlGZWF0dXJlQ29udGV4dDxUQXJncz4pID0+IHZvaWQ7XG59O1xuXG5jb25zdCBjcmVhdGVRdWVyeUZlYXR1cmUgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KGNvbmZpZzogeyB0eXBlOiBRdWVyeUZlYXR1cmVUeXBlOyBmbjogUXVlcnlGZWF0dXJlRm48VEFyZ3M+IH0pID0+IHtcbiAgcmV0dXJuIGNvbmZpZyBhcyBRdWVyeUZlYXR1cmU8VEFyZ3M+O1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhBcmdzID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihhcmdzOiAoKSA9PiBOb0luZmVyPFJlcXVlc3RBcmdzPFRBcmdzPj4gfCBRdWVyeUFyZ3NSZXNldCB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGNyZWF0ZVF1ZXJ5RmVhdHVyZTxUQXJncz4oe1xuICAgIHR5cGU6IFF1ZXJ5RmVhdHVyZVR5cGUuV2l0aEFyZ3MsXG4gICAgZm46IChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBjdXJyQXJncyA9IGNvbXB1dGVkKCgpID0+IGFyZ3MoKSk7XG5cbiAgICAgIHF1ZXJ5RWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VyckFyZ3NOb3cgPSBjdXJyQXJncygpO1xuXG4gICAgICAgIGlmIChjdXJyQXJnc05vdyA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgaWYgKGN1cnJBcmdzTm93ID09PSBRVUVSWV9BUkdTX1JFU0VUKSB7XG4gICAgICAgICAgICBjb250ZXh0LnN0YXRlLmFyZ3Muc2V0KG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuc3RhdGUuYXJncy5zZXQoY3VyckFyZ3NOb3cpO1xuXG4gICAgICAgICAgaWYgKGNvbnRleHQuZmxhZ3Muc2hvdWxkQXV0b0V4ZWN1dGUpIGNvbnRleHQuZXhlY3V0ZShjdXJyQXJnc05vdyk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgUVVFUllfRUZGRUNUX0VSUk9SX01FU1NBR0UpO1xuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhQb2xsaW5nID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiB7IGludGVydmFsOiBudW1iZXI7IGV4ZWN1dGVJbml0aWFsbHk/OiBib29sZWFuIH0pID0+IHtcbiAgcmV0dXJuIGNyZWF0ZVF1ZXJ5RmVhdHVyZTxUQXJncz4oe1xuICAgIHR5cGU6IFF1ZXJ5RmVhdHVyZVR5cGUuV2l0aFBvbGxpbmcsXG4gICAgZm46IChjb250ZXh0KSA9PiB7XG4gICAgICBpZiAoIWNvbnRleHQuZmxhZ3Muc2hvdWxkQXV0b0V4ZWN1dGVNZXRob2QpIHtcbiAgICAgICAgdGhyb3cgd2l0aFBvbGxpbmdVc2VkT25VbnN1cHBvcnRlZEh0dHBNZXRob2QoY29udGV4dC5jcmVhdG9ySW50ZXJuYWxzLm1ldGhvZCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBpbnRlcnZhbElkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgICAgcXVlcnlFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBhcmdzID0gY29udGV4dC5zdGF0ZS5hcmdzKCk7XG5cbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBpZiAoaW50ZXJ2YWxJZCAhPT0gbnVsbCkgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTtcblxuICAgICAgICAgIGlmIChhcmdzID09PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgICBpZiAob3B0aW9ucy5leGVjdXRlSW5pdGlhbGx5KSB7XG4gICAgICAgICAgICBjb250ZXh0LmV4ZWN1dGUoYXJncyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBjb250ZXh0LmV4ZWN1dGUoYXJncyk7XG4gICAgICAgICAgfSwgb3B0aW9ucy5pbnRlcnZhbCk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgUVVFUllfRUZGRUNUX0VSUk9SX01FU1NBR0UpO1xuXG4gICAgICBpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IGludGVydmFsSWQgIT09IG51bGwgJiYgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKSk7XG4gICAgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aExvZ2dpbmcgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KG9wdGlvbnM6IHtcbiAgbG9nRm46ICh2OiBIdHRwRXZlbnQ8UmVzcG9uc2VUeXBlPFRBcmdzPj4gfCBudWxsKSA9PiB2b2lkO1xufSkgPT4ge1xuICByZXR1cm4gY3JlYXRlUXVlcnlGZWF0dXJlPFRBcmdzPih7XG4gICAgdHlwZTogUXVlcnlGZWF0dXJlVHlwZS5XaXRoTG9nZ2luZyxcbiAgICBmbjogKGNvbnRleHQpID0+IHtcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gY29udGV4dC5zdGF0ZS5sYXRlc3RIdHRwRXZlbnQoKTtcblxuICAgICAgICBpZiAoZXZlbnQgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIG9wdGlvbnMubG9nRm4oZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhFcnJvckhhbmRsaW5nID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiB7IGhhbmRsZXI6IChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdm9pZCB9KSA9PiB7XG4gIHJldHVybiBjcmVhdGVRdWVyeUZlYXR1cmU8VEFyZ3M+KHtcbiAgICB0eXBlOiBRdWVyeUZlYXR1cmVUeXBlLldpdGhFcnJvckhhbmRsaW5nLFxuICAgIGZuOiAoY29udGV4dCkgPT4ge1xuICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBjb250ZXh0LnN0YXRlLmVycm9yKCk7XG5cbiAgICAgICAgaWYgKGVycm9yID09PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBvcHRpb25zLmhhbmRsZXIoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhTdWNjZXNzSGFuZGxpbmcgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KG9wdGlvbnM6IHtcbiAgaGFuZGxlcjogKGRhdGE6IE5vbk51bGxhYmxlPFJlc3BvbnNlVHlwZTxUQXJncz4+KSA9PiB2b2lkO1xufSkgPT4ge1xuICByZXR1cm4gY3JlYXRlUXVlcnlGZWF0dXJlPFRBcmdzPih7XG4gICAgdHlwZTogUXVlcnlGZWF0dXJlVHlwZS5XaXRoU3VjY2Vzc0hhbmRsaW5nLFxuICAgIGZuOiAoY29udGV4dCkgPT4ge1xuICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBjb250ZXh0LnN0YXRlLnJlc3BvbnNlKCk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlID09PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBvcHRpb25zLmhhbmRsZXIocmVzcG9uc2UgYXMgTm9uTnVsbGFibGU8UmVzcG9uc2VUeXBlPFRBcmdzPj4pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhBdXRvUmVmcmVzaCA9IDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4ob3B0aW9uczoge1xuICBzaWduYWxDaGFuZ2VzOiBTaWduYWw8dW5rbm93bj5bXTtcbiAgaWdub3JlT25seU1hbnVhbEV4ZWN1dGlvbj86IGJvb2xlYW47XG59KSA9PiB7XG4gIHJldHVybiBjcmVhdGVRdWVyeUZlYXR1cmU8VEFyZ3M+KHtcbiAgICB0eXBlOiBRdWVyeUZlYXR1cmVUeXBlLldpdGhBdXRvUmVmcmVzaCxcbiAgICBmbjogKGNvbnRleHQpID0+IHtcbiAgICAgIGlmICghY29udGV4dC5mbGFncy5zaG91bGRBdXRvRXhlY3V0ZU1ldGhvZCkge1xuICAgICAgICB0aHJvdyB3aXRoQXV0b1JlZnJlc2hVc2VkT25VbnN1cHBvcnRlZEh0dHBNZXRob2QoY29udGV4dC5jcmVhdG9ySW50ZXJuYWxzLm1ldGhvZCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250ZXh0LnF1ZXJ5Q29uZmlnLm9ubHlNYW51YWxFeGVjdXRpb24gJiYgIW9wdGlvbnMuaWdub3JlT25seU1hbnVhbEV4ZWN1dGlvbikge1xuICAgICAgICB0aHJvdyB3aXRoQXV0b1JlZnJlc2hVc2VkT25VbnN1cHBvcnRlZEh0dHBNZXRob2QoY29udGV4dC5jcmVhdG9ySW50ZXJuYWxzLm1ldGhvZCk7XG4gICAgICB9XG5cbiAgICAgIHF1ZXJ5RWZmZWN0KCgpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBzaWduYWwgb2Ygb3B0aW9ucy5zaWduYWxDaGFuZ2VzKSB7XG4gICAgICAgICAgc2lnbmFsKCk7XG4gICAgICAgIH1cblxuICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFyZ3MgPSBjb250ZXh0LnN0YXRlLmFyZ3MoKTtcblxuICAgICAgICAgIGlmIChhcmdzID09PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgICBjb250ZXh0LmV4ZWN1dGUoYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgUVVFUllfRUZGRUNUX0VSUk9SX01FU1NBR0UpO1xuICAgIH0sXG4gIH0pO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
|
4
|
+
import { inject } from '@angular/core';
|
|
5
|
+
import { buildQueryCacheKey, shouldCacheQuery } from '../query-client';
|
|
6
|
+
import { buildRoute } from '../request';
|
|
7
|
+
import { createHttpRequest } from './http-request';
|
|
8
|
+
export const createQueryRepository = (config) => {
|
|
9
|
+
const httpClient = inject(HttpClient);
|
|
10
|
+
const cache = new Map();
|
|
11
|
+
const request = (options) => {
|
|
12
|
+
const shouldCache = shouldCacheQuery(options.method);
|
|
13
|
+
const route = buildRoute({
|
|
14
|
+
base: config.baseUrl,
|
|
15
|
+
route: options.route,
|
|
16
|
+
pathParams: options.pathParams,
|
|
17
|
+
queryParams: options.queryParams,
|
|
18
|
+
queryParamConfig: config.queryString,
|
|
19
|
+
});
|
|
20
|
+
const key = shouldCache &&
|
|
21
|
+
buildQueryCacheKey(`${options.key ? options.key + '_' : ''}${route}`, {
|
|
22
|
+
body: options.body,
|
|
23
|
+
queryParams: options.queryParams,
|
|
24
|
+
pathParams: options.pathParams,
|
|
25
|
+
// TODO: remaining props
|
|
26
|
+
});
|
|
27
|
+
if (shouldCache && key) {
|
|
28
|
+
const cacheEntry = cache.get(key);
|
|
29
|
+
if (cacheEntry) {
|
|
30
|
+
bind(key, options.destroyRef, cacheEntry.request);
|
|
31
|
+
if (!options.skipExecution)
|
|
32
|
+
cacheEntry.request.execute();
|
|
33
|
+
return { key, request: cacheEntry.request };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const request = createHttpRequest({
|
|
37
|
+
fullPath: route,
|
|
38
|
+
body: options.body,
|
|
39
|
+
reportProgress: options.reportProgress,
|
|
40
|
+
withCredentials: options.withCredentials,
|
|
41
|
+
transferCache: options.transferCache,
|
|
42
|
+
responseType: options.responseType || 'json',
|
|
43
|
+
method: options.method,
|
|
44
|
+
headers: options.headers,
|
|
45
|
+
httpClient,
|
|
46
|
+
cacheAdapter: config.cacheAdapter,
|
|
47
|
+
retryFn: config.retryFn,
|
|
48
|
+
});
|
|
49
|
+
if (!options.skipExecution)
|
|
50
|
+
request.execute();
|
|
51
|
+
if (shouldCache && key) {
|
|
52
|
+
bind(key, options.destroyRef, request);
|
|
53
|
+
}
|
|
54
|
+
return { key, request };
|
|
55
|
+
};
|
|
56
|
+
const unbind = (key, destroyRef) => {
|
|
57
|
+
if (!key)
|
|
58
|
+
return;
|
|
59
|
+
const cacheEntry = cache.get(key);
|
|
60
|
+
if (!cacheEntry)
|
|
61
|
+
return;
|
|
62
|
+
cacheEntry.consumers.delete(destroyRef);
|
|
63
|
+
if (cacheEntry.consumers.size === 0) {
|
|
64
|
+
cacheEntry.request.destroy();
|
|
65
|
+
cache.delete(key);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const bind = (key, destroyRef, request) => {
|
|
69
|
+
if (!key)
|
|
70
|
+
return;
|
|
71
|
+
const destroyListener = destroyRef.onDestroy(() => unbind(key, destroyRef));
|
|
72
|
+
const cacheEntry = cache.get(key);
|
|
73
|
+
if (cacheEntry) {
|
|
74
|
+
cacheEntry.consumers.set(destroyRef, destroyListener);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const consumers = new Map([]);
|
|
78
|
+
consumers.set(destroyRef, destroyListener);
|
|
79
|
+
cache.set(key, {
|
|
80
|
+
consumers,
|
|
81
|
+
request,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const repository = {
|
|
86
|
+
request,
|
|
87
|
+
unbind,
|
|
88
|
+
};
|
|
89
|
+
return repository;
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9leHBlcmltZW50YWwvcXVlcnktcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQseURBQXlEO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUE4QmhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBeUIsRUFBbUIsRUFBRTtJQUNsRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBTWxCLENBQUM7SUFFSixNQUFNLE9BQU8sR0FBRyxDQUEwQixPQUE2QyxFQUFFLEVBQUU7UUFDekYsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQztZQUN2QixJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLFdBQVc7U0FDckMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxHQUFHLEdBQ1AsV0FBVztZQUNYLGtCQUFr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UUFFbEMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sU0FBUyxHQUFnQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUUzRCxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUUzQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDYixTQUFTO2dCQUNULE9BQU87YUFDUixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQW9CO1FBQ2xDLE9BQU87UUFDUCxNQUFNO0tBQ1AsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYnVpbGRRdWVyeUNhY2hlS2V5LCBzaG91bGRDYWNoZVF1ZXJ5IH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IGJ1aWxkUm91dGUgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IEh0dHBSZXF1ZXN0LCBjcmVhdGVIdHRwUmVxdWVzdCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0JztcbmltcG9ydCB7IEJvZHlUeXBlLCBQYXRoUGFyYW1zVHlwZSwgUXVlcnlBcmdzLCBRdWVyeVBhcmFtc1R5cGUgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5Q2xpZW50Q29uZmlnIH0gZnJvbSAnLi9xdWVyeS1jbGllbnQtY29uZmlnJztcbmltcG9ydCB7IFF1ZXJ5TWV0aG9kLCBSb3V0ZVR5cGUgfSBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuXG5leHBvcnQgdHlwZSBRdWVyeVJlcG9zaXRvcnlSZXF1ZXN0T3B0aW9uczxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIG1ldGhvZDogUXVlcnlNZXRob2Q7XG4gIHJvdXRlOiBSb3V0ZVR5cGU8VEFyZ3M+O1xuICBwYXRoUGFyYW1zPzogUGF0aFBhcmFtc1R5cGU8VEFyZ3M+O1xuICBxdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zVHlwZTxUQXJncz47XG4gIGJvZHk/OiBCb2R5VHlwZTxUQXJncz47XG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbiB8IHsgaW5jbHVkZUhlYWRlcnM/OiBzdHJpbmdbXSB9O1xuICByZXNwb25zZVR5cGU/OiAnanNvbic7XG4gIGtleT86IHN0cmluZztcblxuICBza2lwRXhlY3V0aW9uPzogYm9vbGVhbjtcblxuICBkZXN0cm95UmVmOiBEZXN0cm95UmVmO1xufTtcblxuZXhwb3J0IHR5cGUgUXVlcnlSZXBvc2l0b3J5ID0ge1xuICByZXF1ZXN0OiA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KFxuICAgIG9wdGlvbnM6IFF1ZXJ5UmVwb3NpdG9yeVJlcXVlc3RPcHRpb25zPFRBcmdzPixcbiAgKSA9PiB7IGtleTogc3RyaW5nIHwgZmFsc2U7IHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PFRBcmdzPiB9O1xuICB1bmJpbmQ6IChrZXk6IHN0cmluZyB8IGZhbHNlLCBkZXN0cm95UmVmOiBEZXN0cm95UmVmKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5UmVwb3NpdG9yeSA9IChjb25maWc6IFF1ZXJ5Q2xpZW50Q29uZmlnKTogUXVlcnlSZXBvc2l0b3J5ID0+IHtcbiAgY29uc3QgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBjb25zdCBjYWNoZSA9IG5ldyBNYXA8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIGNvbnN1bWVyczogTWFwPERlc3Ryb3lSZWYsICgpID0+IHZvaWQ+O1xuICAgICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8UXVlcnlBcmdzPjtcbiAgICB9XG4gID4oKTtcblxuICBjb25zdCByZXF1ZXN0ID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiBRdWVyeVJlcG9zaXRvcnlSZXF1ZXN0T3B0aW9uczxUQXJncz4pID0+IHtcbiAgICBjb25zdCBzaG91bGRDYWNoZSA9IHNob3VsZENhY2hlUXVlcnkob3B0aW9ucy5tZXRob2QpO1xuXG4gICAgY29uc3Qgcm91dGUgPSBidWlsZFJvdXRlKHtcbiAgICAgIGJhc2U6IGNvbmZpZy5iYXNlVXJsLFxuICAgICAgcm91dGU6IG9wdGlvbnMucm91dGUsXG4gICAgICBwYXRoUGFyYW1zOiBvcHRpb25zLnBhdGhQYXJhbXMsXG4gICAgICBxdWVyeVBhcmFtczogb3B0aW9ucy5xdWVyeVBhcmFtcyxcbiAgICAgIHF1ZXJ5UGFyYW1Db25maWc6IGNvbmZpZy5xdWVyeVN0cmluZyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGtleSA9XG4gICAgICBzaG91bGRDYWNoZSAmJlxuICAgICAgYnVpbGRRdWVyeUNhY2hlS2V5KGAke29wdGlvbnMua2V5ID8gb3B0aW9ucy5rZXkgKyAnXycgOiAnJ30ke3JvdXRlfWAsIHtcbiAgICAgICAgYm9keTogb3B0aW9ucy5ib2R5LFxuICAgICAgICBxdWVyeVBhcmFtczogb3B0aW9ucy5xdWVyeVBhcmFtcyxcbiAgICAgICAgcGF0aFBhcmFtczogb3B0aW9ucy5wYXRoUGFyYW1zLFxuICAgICAgICAvLyBUT0RPOiByZW1haW5pbmcgcHJvcHNcbiAgICAgIH0pO1xuXG4gICAgaWYgKHNob3VsZENhY2hlICYmIGtleSkge1xuICAgICAgY29uc3QgY2FjaGVFbnRyeSA9IGNhY2hlLmdldChrZXkpO1xuXG4gICAgICBpZiAoY2FjaGVFbnRyeSkge1xuICAgICAgICBiaW5kKGtleSwgb3B0aW9ucy5kZXN0cm95UmVmLCBjYWNoZUVudHJ5LnJlcXVlc3QpO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5za2lwRXhlY3V0aW9uKSBjYWNoZUVudHJ5LnJlcXVlc3QuZXhlY3V0ZSgpO1xuXG4gICAgICAgIHJldHVybiB7IGtleSwgcmVxdWVzdDogY2FjaGVFbnRyeS5yZXF1ZXN0IGFzIEh0dHBSZXF1ZXN0PFRBcmdzPiB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVIdHRwUmVxdWVzdDxUQXJncz4oe1xuICAgICAgZnVsbFBhdGg6IHJvdXRlLFxuICAgICAgYm9keTogb3B0aW9ucy5ib2R5LFxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IG9wdGlvbnMucmVwb3J0UHJvZ3Jlc3MsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IG9wdGlvbnMud2l0aENyZWRlbnRpYWxzLFxuICAgICAgdHJhbnNmZXJDYWNoZTogb3B0aW9ucy50cmFuc2ZlckNhY2hlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBvcHRpb25zLnJlc3BvbnNlVHlwZSB8fCAnanNvbicsXG4gICAgICBtZXRob2Q6IG9wdGlvbnMubWV0aG9kLFxuICAgICAgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzLFxuICAgICAgaHR0cENsaWVudCxcbiAgICAgIGNhY2hlQWRhcHRlcjogY29uZmlnLmNhY2hlQWRhcHRlcixcbiAgICAgIHJldHJ5Rm46IGNvbmZpZy5yZXRyeUZuLFxuICAgIH0pO1xuXG4gICAgaWYgKCFvcHRpb25zLnNraXBFeGVjdXRpb24pIHJlcXVlc3QuZXhlY3V0ZSgpO1xuXG4gICAgaWYgKHNob3VsZENhY2hlICYmIGtleSkge1xuICAgICAgYmluZChrZXksIG9wdGlvbnMuZGVzdHJveVJlZiwgcmVxdWVzdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsga2V5LCByZXF1ZXN0IH07XG4gIH07XG5cbiAgY29uc3QgdW5iaW5kID0gKGtleTogc3RyaW5nIHwgZmFsc2UsIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYpID0+IHtcbiAgICBpZiAoIWtleSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2FjaGVFbnRyeSA9IGNhY2hlLmdldChrZXkpO1xuXG4gICAgaWYgKCFjYWNoZUVudHJ5KSByZXR1cm47XG5cbiAgICBjYWNoZUVudHJ5LmNvbnN1bWVycy5kZWxldGUoZGVzdHJveVJlZik7XG5cbiAgICBpZiAoY2FjaGVFbnRyeS5jb25zdW1lcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgY2FjaGVFbnRyeS5yZXF1ZXN0LmRlc3Ryb3koKTtcbiAgICAgIGNhY2hlLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBiaW5kID0gKGtleTogc3RyaW5nIHwgZmFsc2UsIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PFF1ZXJ5QXJncz4pID0+IHtcbiAgICBpZiAoIWtleSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGVzdHJveUxpc3RlbmVyID0gZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdW5iaW5kKGtleSwgZGVzdHJveVJlZikpO1xuXG4gICAgY29uc3QgY2FjaGVFbnRyeSA9IGNhY2hlLmdldChrZXkpO1xuXG4gICAgaWYgKGNhY2hlRW50cnkpIHtcbiAgICAgIGNhY2hlRW50cnkuY29uc3VtZXJzLnNldChkZXN0cm95UmVmLCBkZXN0cm95TGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb25zdW1lcnM6IE1hcDxEZXN0cm95UmVmLCAoKSA9PiB2b2lkPiA9IG5ldyBNYXAoW10pO1xuXG4gICAgICBjb25zdW1lcnMuc2V0KGRlc3Ryb3lSZWYsIGRlc3Ryb3lMaXN0ZW5lcik7XG5cbiAgICAgIGNhY2hlLnNldChrZXksIHtcbiAgICAgICAgY29uc3VtZXJzLFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlcG9zaXRvcnk6IFF1ZXJ5UmVwb3NpdG9yeSA9IHtcbiAgICByZXF1ZXN0LFxuICAgIHVuYmluZCxcbiAgfTtcblxuICByZXR1cm4gcmVwb3NpdG9yeTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
};
|
|
40
|
+
return snapshot;
|
|
41
|
+
};
|
|
42
|
+
return snapshotFn;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc25hcHNob3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LXNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxRCxPQUFPLEVBQWMsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQTBCLE9BQTBDLEVBQUUsRUFBRTtJQUMzRyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVoQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7UUFDdEIsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQzFCLEdBQUcsRUFBRTtZQUNILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2RCxNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRTdELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN0QyxhQUFhLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQ2hFLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQzFELGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMxQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFNUMsSUFBSSxjQUFjO29CQUFFLE9BQU87Z0JBRTNCLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxZQUFZO29CQUFFLE9BQU87Z0JBRTlDLGlGQUFpRjtnQkFDakYsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUV4QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FDNUIsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUF5QjtZQUNyQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDckMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQzdDLGVBQWUsRUFBRSxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRTtZQUMzRCxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDM0MsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUU7WUFDakUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUU7U0FDOUIsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVmZmVjdCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFF1ZXJ5QXJncywgUXVlcnlTbmFwc2hvdCB9IGZyb20gJy4vcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlEZXBlbmRlbmNpZXMgfSBmcm9tICcuL3F1ZXJ5LWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBRdWVyeVN0YXRlLCBzZXR1cFF1ZXJ5U3RhdGUgfSBmcm9tICcuL3F1ZXJ5LXN0YXRlJztcblxuZXhwb3J0IHR5cGUgQ3JlYXRlUXVlcnlTbmFwc2hvdE9wdGlvbnM8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICBzdGF0ZTogUXVlcnlTdGF0ZTxUQXJncz47XG4gIGRlcHM6IFF1ZXJ5RGVwZW5kZW5jaWVzO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5U25hcHNob3RGbiA9IDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4ob3B0aW9uczogQ3JlYXRlUXVlcnlTbmFwc2hvdE9wdGlvbnM8VEFyZ3M+KSA9PiB7XG4gIGNvbnN0IHsgc3RhdGUsIGRlcHMgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3Qgc25hcHNob3RGbiA9ICgpID0+IHtcbiAgICBjb25zdCBzbmFwc2hvdFN0YXRlID0gc2V0dXBRdWVyeVN0YXRlPFRBcmdzPih7fSk7XG4gICAgY29uc3QgaXNBbGl2ZSA9IHNpZ25hbCh0cnVlKTtcblxuICAgIGNvbnN0IGtpbGxFZmZlY3RSZWYgPSBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMb2FkaW5nID0gc3RhdGUubG9hZGluZygpO1xuICAgICAgICBjb25zdCBjdXJyZW50RXJyb3IgPSBzdGF0ZS5lcnJvcigpO1xuICAgICAgICBjb25zdCBjdXJyZW50UmVzcG9uc2UgPSBzdGF0ZS5yZXNwb25zZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50QXJncyA9IHN0YXRlLmFyZ3MoKTtcbiAgICAgICAgY29uc3QgY3VycmVudExhdGVzdEh0dHBFdmVudCA9IHN0YXRlLmxhdGVzdEh0dHBFdmVudCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50TGFzdFRpbWVFeGVjdXRlZEF0ID0gc3RhdGUubGFzdFRpbWVFeGVjdXRlZEF0KCk7XG5cbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBzbmFwc2hvdFN0YXRlLmFyZ3Muc2V0KGN1cnJlbnRBcmdzKTtcbiAgICAgICAgICBzbmFwc2hvdFN0YXRlLmVycm9yLnNldChjdXJyZW50RXJyb3IpO1xuICAgICAgICAgIHNuYXBzaG90U3RhdGUubGFzdFRpbWVFeGVjdXRlZEF0LnNldChjdXJyZW50TGFzdFRpbWVFeGVjdXRlZEF0KTtcbiAgICAgICAgICBzbmFwc2hvdFN0YXRlLmxhdGVzdEh0dHBFdmVudC5zZXQoY3VycmVudExhdGVzdEh0dHBFdmVudCk7XG4gICAgICAgICAgc25hcHNob3RTdGF0ZS5sb2FkaW5nLnNldChjdXJyZW50TG9hZGluZyk7XG4gICAgICAgICAgc25hcHNob3RTdGF0ZS5yZXNwb25zZS5zZXQoY3VycmVudFJlc3BvbnNlKTtcblxuICAgICAgICAgIGlmIChjdXJyZW50TG9hZGluZykgcmV0dXJuO1xuXG4gICAgICAgICAgaWYgKCFjdXJyZW50UmVzcG9uc2UgJiYgIWN1cnJlbnRFcnJvcikgcmV0dXJuO1xuXG4gICAgICAgICAgLy8ga2lsbCB0aGUgZWZmZWN0IG9uY2UgbG9hZGluZyBpcyBkb25lIGFuZCB3ZSBlaXRoZXIgaGF2ZSBhIHJlc3BvbnNlIG9yIGFuIGVycm9yXG4gICAgICAgICAga2lsbEVmZmVjdFJlZi5kZXN0cm95KCk7XG5cbiAgICAgICAgICBpc0FsaXZlLnNldChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHsgaW5qZWN0b3I6IGRlcHMuaW5qZWN0b3IgfSxcbiAgICApO1xuXG4gICAgY29uc3Qgc25hcHNob3Q6IFF1ZXJ5U25hcHNob3Q8VEFyZ3M+ID0ge1xuICAgICAgYXJnczogc25hcHNob3RTdGF0ZS5hcmdzLmFzUmVhZG9ubHkoKSxcbiAgICAgIHJlc3BvbnNlOiBzbmFwc2hvdFN0YXRlLnJlc3BvbnNlLmFzUmVhZG9ubHkoKSxcbiAgICAgIGxhdGVzdEh0dHBFdmVudDogc25hcHNob3RTdGF0ZS5sYXRlc3RIdHRwRXZlbnQuYXNSZWFkb25seSgpLFxuICAgICAgbG9hZGluZzogc25hcHNob3RTdGF0ZS5sb2FkaW5nLmFzUmVhZG9ubHkoKSxcbiAgICAgIGVycm9yOiBzbmFwc2hvdFN0YXRlLmVycm9yLmFzUmVhZG9ubHkoKSxcbiAgICAgIGxhc3RUaW1lRXhlY3V0ZWRBdDogc25hcHNob3RTdGF0ZS5sYXN0VGltZUV4ZWN1dGVkQXQuYXNSZWFkb25seSgpLFxuICAgICAgaXNBbGl2ZTogaXNBbGl2ZS5hc1JlYWRvbmx5KCksXG4gICAgfTtcblxuICAgIHJldHVybiBzbmFwc2hvdDtcbiAgfTtcblxuICByZXR1cm4gc25hcHNob3RGbjtcbn07XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
+
import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';
|
|
3
|
+
import { effect, isDevMode } from '@angular/core';
|
|
4
|
+
import { isSymfonyPagerfantaOutOfRangeError } from '../symfony';
|
|
5
|
+
import { queryFeatureUsedMultipleTimes, withArgsQueryFeatureMissingButRouteIsFunction } from './query-errors';
|
|
6
|
+
/**
|
|
7
|
+
* Returning this inside e.g. a withComputedArgs feature will reset the query args to null.
|
|
8
|
+
* This will also pause polling and auto refresh until new args are set.
|
|
9
|
+
*/
|
|
10
|
+
export const QUERY_ARGS_RESET = Symbol('QUERY_ARGS_RESET');
|
|
11
|
+
export const QUERY_EFFECT_ERROR_MESSAGE = 'Effect triggered too often. This is probably due to a circular dependency inside the query.';
|
|
12
|
+
/** A angular effect that will throw an error in dev mode if it is called too often. This indicates a circular dependency inside the effect. */
|
|
13
|
+
export const queryEffect = (fn, errorMessage, options) => {
|
|
14
|
+
let lastTriggerTs = 0;
|
|
15
|
+
let illegalWrites = 0;
|
|
16
|
+
effect(() => {
|
|
17
|
+
if (isDevMode()) {
|
|
18
|
+
const now = performance.now();
|
|
19
|
+
if (now - lastTriggerTs < 100) {
|
|
20
|
+
illegalWrites++;
|
|
21
|
+
if (illegalWrites > 5) {
|
|
22
|
+
throw new Error(errorMessage);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
lastTriggerTs = now;
|
|
26
|
+
}
|
|
27
|
+
fn();
|
|
28
|
+
}, options);
|
|
29
|
+
};
|
|
30
|
+
export const shouldAutoExecuteQuery = (method) => {
|
|
31
|
+
return method === 'GET' || method === 'HEAD' || method === 'OPTIONS';
|
|
32
|
+
};
|
|
33
|
+
export const extractExpiresInSeconds = (headers) => {
|
|
34
|
+
const cacheControl = headers.get('cache-control');
|
|
35
|
+
const age = headers.get('age');
|
|
36
|
+
const expires = headers.get('expires');
|
|
37
|
+
// In seconds
|
|
38
|
+
let expiresIn = null;
|
|
39
|
+
let maxAge = null;
|
|
40
|
+
if (cacheControl?.includes('no-cache')) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (cacheControl?.includes('max-age')) {
|
|
44
|
+
const m = cacheControl.split('max-age=')[1];
|
|
45
|
+
if (m) {
|
|
46
|
+
maxAge = parseInt(m);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (cacheControl?.includes('s-maxage')) {
|
|
50
|
+
const m = cacheControl.split('s-maxage=')[1];
|
|
51
|
+
if (m) {
|
|
52
|
+
maxAge = parseInt(m);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (maxAge && age) {
|
|
56
|
+
const ageSeconds = parseInt(age);
|
|
57
|
+
expiresIn = maxAge - ageSeconds;
|
|
58
|
+
}
|
|
59
|
+
else if (maxAge) {
|
|
60
|
+
expiresIn = maxAge / 2; // We assume the response is half way to its expiration
|
|
61
|
+
}
|
|
62
|
+
else if (expires) {
|
|
63
|
+
// Used by some apis to tell the response will never expire
|
|
64
|
+
// In this case we let the response expire after 1 hour
|
|
65
|
+
if (expires === '-1') {
|
|
66
|
+
expiresIn = 3600;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const expiresDate = new Date(expires);
|
|
70
|
+
// check if the date is valid
|
|
71
|
+
if (expiresDate.toString() !== 'Invalid Date') {
|
|
72
|
+
expiresIn = Math.floor((expiresDate.getTime() - Date.now()) / 1000);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return expiresIn;
|
|
77
|
+
};
|
|
78
|
+
export const shouldRetryRequest = (options) => {
|
|
79
|
+
const { retryCount, error } = options;
|
|
80
|
+
const defaultRetryDelay = 1000 + 1000 * retryCount;
|
|
81
|
+
if (retryCount > 3) {
|
|
82
|
+
return { retry: false };
|
|
83
|
+
}
|
|
84
|
+
if (!(error instanceof HttpErrorResponse)) {
|
|
85
|
+
return { retry: false };
|
|
86
|
+
}
|
|
87
|
+
const { status, error: detail, headers } = error;
|
|
88
|
+
// Retry on 5xx errors
|
|
89
|
+
if (status >= 500) {
|
|
90
|
+
// Don't retry if a requested page is out of range
|
|
91
|
+
if (isSymfonyPagerfantaOutOfRangeError(detail)) {
|
|
92
|
+
return { retry: false };
|
|
93
|
+
}
|
|
94
|
+
return { retry: true, delay: defaultRetryDelay };
|
|
95
|
+
}
|
|
96
|
+
// Retry on 408 or 425 errors
|
|
97
|
+
if (status === HttpStatusCode.RequestTimeout || status === HttpStatusCode.TooEarly) {
|
|
98
|
+
return { retry: true, delay: defaultRetryDelay };
|
|
99
|
+
}
|
|
100
|
+
// Retry on 429 errors
|
|
101
|
+
if (status === HttpStatusCode.TooManyRequests) {
|
|
102
|
+
const retryAfter = headers.get('retry-after') || headers.get('x-retry-after');
|
|
103
|
+
if (retryAfter) {
|
|
104
|
+
const delay = parseInt(retryAfter) * 1000;
|
|
105
|
+
return { retry: true, delay: Number.isNaN(delay) ? defaultRetryDelay : delay };
|
|
106
|
+
}
|
|
107
|
+
return { retry: true, delay: defaultRetryDelay };
|
|
108
|
+
}
|
|
109
|
+
// Code 0 usually means the internet connection is down. We retry in this case.
|
|
110
|
+
// It could also be a CORS issue but that should not be the case in production.
|
|
111
|
+
if (status === 0) {
|
|
112
|
+
return { retry: true, delay: defaultRetryDelay };
|
|
113
|
+
}
|
|
114
|
+
return { retry: false };
|
|
115
|
+
};
|
|
116
|
+
export const getQueryFeatureUsage = (options) => {
|
|
117
|
+
const { creator, creatorInternals, features, queryConfig } = options;
|
|
118
|
+
const hasWithArgsFeature = features.some((f) => f.type == "withArgs" /* QueryFeatureType.WithArgs */);
|
|
119
|
+
const shouldAutoExecuteMethod = shouldAutoExecuteQuery(creatorInternals.method);
|
|
120
|
+
const shouldAutoExecute = shouldAutoExecuteMethod && !queryConfig.onlyManualExecution;
|
|
121
|
+
const hasRouteFunction = typeof creator.route === 'function';
|
|
122
|
+
if (hasRouteFunction && !hasWithArgsFeature) {
|
|
123
|
+
throw withArgsQueryFeatureMissingButRouteIsFunction();
|
|
124
|
+
}
|
|
125
|
+
const featureFnContext = {
|
|
126
|
+
hasWithArgsFeature,
|
|
127
|
+
shouldAutoExecuteMethod,
|
|
128
|
+
shouldAutoExecute,
|
|
129
|
+
hasRouteFunction,
|
|
130
|
+
};
|
|
131
|
+
return featureFnContext;
|
|
132
|
+
};
|
|
133
|
+
export const applyQueryFeatures = (options, context) => {
|
|
134
|
+
const featureTypes = new Set();
|
|
135
|
+
for (const feature of options.features) {
|
|
136
|
+
if (featureTypes.has(feature.type)) {
|
|
137
|
+
throw queryFeatureUsedMultipleTimes(feature.type);
|
|
138
|
+
}
|
|
139
|
+
featureTypes.add(feature.type);
|
|
140
|
+
feature.fn(context);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
export const maybeExecute = (options) => {
|
|
144
|
+
if (options.flags.shouldAutoExecute && !options.flags.hasRouteFunction && !options.flags.hasWithArgsFeature) {
|
|
145
|
+
options.execute();
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEYsT0FBTyxFQUF1QixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdoRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsNkNBQTZDLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5Rzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUczRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FDckMsNkZBQTZGLENBQUM7QUFFaEcsK0lBQStJO0FBQy9JLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEVBQWMsRUFBRSxZQUFvQixFQUFFLE9BQTZCLEVBQUUsRUFBRTtJQUNqRyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDdEIsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDVixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRTlCLElBQUksR0FBRyxHQUFHLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDOUIsYUFBYSxFQUFFLENBQUM7Z0JBRWhCLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNoQyxDQUFD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QyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQXNCO1FBQzFDLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsaUJBQWlCO1FBQ2pCLGdCQUFnQjtLQUNqQixDQUFDO0lBRUYsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxPQUFrQyxFQUNsQyxPQUFtQyxFQUNuQyxFQUFFO0lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7SUFFakQsS0FBSyxNQUFNLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sNkJBQTZCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBMEIsT0FHckQsRUFBRSxFQUFFO0lBQ0gsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1RyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBTdGF0dXNDb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ3JlYXRlRWZmZWN0T3B0aW9ucywgZWZmZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzU3ltZm9ueVBhZ2VyZmFudGFPdXRPZlJhbmdlRXJyb3IgfSBmcm9tICcuLi9zeW1mb255JztcbmltcG9ydCB7IENyZWF0ZVF1ZXJ5T3B0aW9ucywgUXVlcnlBcmdzIH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeU1ldGhvZCB9IGZyb20gJy4vcXVlcnktY3JlYXRvcic7XG5pbXBvcnQgeyBxdWVyeUZlYXR1cmVVc2VkTXVsdGlwbGVUaW1lcywgd2l0aEFyZ3NRdWVyeUZlYXR1cmVNaXNzaW5nQnV0Um91dGVJc0Z1bmN0aW9uIH0gZnJvbSAnLi9xdWVyeS1lcnJvcnMnO1xuaW1wb3J0IHsgUXVlcnlFeGVjdXRlIH0gZnJvbSAnLi9xdWVyeS1leGVjdXRlJztcbmltcG9ydCB7IFF1ZXJ5RmVhdHVyZUNvbnRleHQsIFF1ZXJ5RmVhdHVyZVR5cGUgfSBmcm9tICcuL3F1ZXJ5LWZlYXR1cmVzJztcblxuLyoqXG4gKiBSZXR1cm5pbmcgdGhpcyBpbnNpZGUgZS5nLiBhIHdpdGhDb21wdXRlZEFyZ3MgZmVhdHVyZSB3aWxsIHJlc2V0IHRoZSBxdWVyeSBhcmdzIHRvIG51bGwuXG4gKiBUaGlzIHdpbGwgYWxzbyBwYXVzZSBwb2xsaW5nIGFuZCBhdXRvIHJlZnJlc2ggdW50aWwgbmV3IGFyZ3MgYXJlIHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IFFVRVJZX0FSR1NfUkVTRVQgPSBTeW1ib2woJ1FVRVJZX0FSR1NfUkVTRVQnKTtcbmV4cG9ydCB0eXBlIFF1ZXJ5QXJnc1Jlc2V0ID0gdHlwZW9mIFFVRVJZX0FSR1NfUkVTRVQ7XG5cbmV4cG9ydCBjb25zdCBRVUVSWV9FRkZFQ1RfRVJST1JfTUVTU0FHRSA9XG4gICdFZmZlY3QgdHJpZ2dlcmVkIHRvbyBvZnRlbi4gVGhpcyBpcyBwcm9iYWJseSBkdWUgdG8gYSBjaXJjdWxhciBkZXBlbmRlbmN5IGluc2lkZSB0aGUgcXVlcnkuJztcblxuLyoqIEEgYW5ndWxhciBlZmZlY3QgdGhhdCB3aWxsIHRocm93IGFuIGVycm9yIGluIGRldiBtb2RlIGlmIGl0IGlzIGNhbGxlZCB0b28gb2Z0ZW4uIFRoaXMgaW5kaWNhdGVzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBpbnNpZGUgdGhlIGVmZmVjdC4gKi9cbmV4cG9ydCBjb25zdCBxdWVyeUVmZmVjdCA9IChmbjogKCkgPT4gdm9pZCwgZXJyb3JNZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVFZmZlY3RPcHRpb25zKSA9PiB7XG4gIGxldCBsYXN0VHJpZ2dlclRzID0gMDtcbiAgbGV0IGlsbGVnYWxXcml0ZXMgPSAwO1xuXG4gIGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zdCBub3cgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgICAgaWYgKG5vdyAtIGxhc3RUcmlnZ2VyVHMgPCAxMDApIHtcbiAgICAgICAgaWxsZWdhbFdyaXRlcysrO1xuXG4gICAgICAgIGlmIChpbGxlZ2FsV3JpdGVzID4gNSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxhc3RUcmlnZ2VyVHMgPSBub3c7XG4gICAgfVxuXG4gICAgZm4oKTtcbiAgfSwgb3B0aW9ucyk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkQXV0b0V4ZWN1dGVRdWVyeSA9IChtZXRob2Q6IFF1ZXJ5TWV0aG9kKSA9PiB7XG4gIHJldHVybiBtZXRob2QgPT09ICdHRVQnIHx8IG1ldGhvZCA9PT0gJ0hFQUQnIHx8IG1ldGhvZCA9PT0gJ09QVElPTlMnO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFeHBpcmVzSW5TZWNvbmRzID0gKGhlYWRlcnM6IEh0dHBIZWFkZXJzKSA9PiB7XG4gIGNvbnN0IGNhY2hlQ29udHJvbCA9IGhlYWRlcnMuZ2V0KCdjYWNoZS1jb250cm9sJyk7XG4gIGNvbnN0IGFnZSA9IGhlYWRlcnMuZ2V0KCdhZ2UnKTtcbiAgY29uc3QgZXhwaXJlcyA9IGhlYWRlcnMuZ2V0KCdleHBpcmVzJyk7XG5cbiAgLy8gSW4gc2Vjb25kc1xuICBsZXQgZXhwaXJlc0luOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgbGV0IG1heEFnZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGNhY2hlQ29udHJvbD8uaW5jbHVkZXMoJ25vLWNhY2hlJykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChjYWNoZUNvbnRyb2w/LmluY2x1ZGVzKCdtYXgtYWdlJykpIHtcbiAgICBjb25zdCBtID0gY2FjaGVDb250cm9sLnNwbGl0KCdtYXgtYWdlPScpWzFdO1xuXG4gICAgaWYgKG0pIHtcbiAgICAgIG1heEFnZSA9IHBhcnNlSW50KG0pO1xuICAgIH1cbiAgfSBlbHNlIGlmIChjYWNoZUNvbnRyb2w/LmluY2x1ZGVzKCdzLW1heGFnZScpKSB7XG4gICAgY29uc3QgbSA9IGNhY2hlQ29udHJvbC5zcGxpdCgncy1tYXhhZ2U9JylbMV07XG5cbiAgICBpZiAobSkge1xuICAgICAgbWF4QWdlID0gcGFyc2VJbnQobSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG1heEFnZSAmJiBhZ2UpIHtcbiAgICBjb25zdCBhZ2VTZWNvbmRzID0gcGFyc2VJbnQoYWdlKTtcblxuICAgIGV4cGlyZXNJbiA9IG1heEFnZSAtIGFnZVNlY29uZHM7XG4gIH0gZWxzZSBpZiAobWF4QWdlKSB7XG4gICAgZXhwaXJlc0luID0gbWF4QWdlIC8gMjsgLy8gV2UgYXNzdW1lIHRoZSByZXNwb25zZSBpcyBoYWxmIHdheSB0byBpdHMgZXhwaXJhdGlvblxuICB9IGVsc2UgaWYgKGV4cGlyZXMpIHtcbiAgICAvLyBVc2VkIGJ5IHNvbWUgYXBpcyB0byB0ZWxsIHRoZSByZXNwb25zZSB3aWxsIG5ldmVyIGV4cGlyZVxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBsZXQgdGhlIHJlc3BvbnNlIGV4cGlyZSBhZnRlciAxIGhvdXJcbiAgICBpZiAoZXhwaXJlcyA9PT0gJy0xJykge1xuICAgICAgZXhwaXJlc0luID0gMzYwMDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzKTtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGRhdGUgaXMgdmFsaWRcbiAgICAgIGlmIChleHBpcmVzRGF0ZS50b1N0cmluZygpICE9PSAnSW52YWxpZCBEYXRlJykge1xuICAgICAgICBleHBpcmVzSW4gPSBNYXRoLmZsb29yKChleHBpcmVzRGF0ZS5nZXRUaW1lKCkgLSBEYXRlLm5vdygpKSAvIDEwMDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHBpcmVzSW47XG59O1xuXG5leHBvcnQgdHlwZSBTaG91bGRSZXRyeVJlcXVlc3RPcHRpb25zID0ge1xuICByZXRyeUNvdW50OiBudW1iZXI7XG4gIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcbn07XG5cbmV4cG9ydCB0eXBlIFNob3VsZFJldHJ5UmVxdWVzdFJlc3VsdCA9XG4gIHwge1xuICAgICAgcmV0cnk6IGZhbHNlO1xuICAgIH1cbiAgfCB7XG4gICAgICByZXRyeTogdHJ1ZTtcbiAgICAgIGRlbGF5OiBudW1iZXI7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgU2hvdWxkUmV0cnlSZXF1ZXN0Rm4gPSAob3B0aW9uczogU2hvdWxkUmV0cnlSZXF1ZXN0T3B0aW9ucykgPT4gU2hvdWxkUmV0cnlSZXF1ZXN0UmVzdWx0O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkUmV0cnlSZXF1ZXN0ID0gKG9wdGlvbnM6IFNob3VsZFJldHJ5UmVxdWVzdE9wdGlvbnMpOiBTaG91bGRSZXRyeVJlcXVlc3RSZXN1bHQgPT4ge1xuICBjb25zdCB7IHJldHJ5Q291bnQsIGVycm9yIH0gPSBvcHRpb25zO1xuICBjb25zdCBkZWZhdWx0UmV0cnlEZWxheSA9IDEwMDAgKyAxMDAwICogcmV0cnlDb3VudDtcblxuICBpZiAocmV0cnlDb3VudCA+IDMpIHtcbiAgICByZXR1cm4geyByZXRyeTogZmFsc2UgfTtcbiAgfVxuXG4gIGlmICghKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpKSB7XG4gICAgcmV0dXJuIHsgcmV0cnk6IGZhbHNlIH07XG4gIH1cblxuICBjb25zdCB7IHN0YXR1cywgZXJyb3I6IGRldGFpbCwgaGVhZGVycyB9ID0gZXJyb3I7XG5cbiAgLy8gUmV0cnkgb24gNXh4IGVycm9yc1xuICBpZiAoc3RhdHVzID49IDUwMCkge1xuICAgIC8vIERvbid0IHJldHJ5IGlmIGEgcmVxdWVzdGVkIHBhZ2UgaXMgb3V0IG9mIHJhbmdlXG4gICAgaWYgKGlzU3ltZm9ueVBhZ2VyZmFudGFPdXRPZlJhbmdlRXJyb3IoZGV0YWlsKSkge1xuICAgICAgcmV0dXJuIHsgcmV0cnk6IGZhbHNlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcmV0cnk6IHRydWUsIGRlbGF5OiBkZWZhdWx0UmV0cnlEZWxheSB9O1xuICB9XG5cbiAgLy8gUmV0cnkgb24gNDA4IG9yIDQyNSBlcnJvcnNcbiAgaWYgKHN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQgfHwgc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5Ub29FYXJseSkge1xuICAgIHJldHVybiB7IHJldHJ5OiB0cnVlLCBkZWxheTogZGVmYXVsdFJldHJ5RGVsYXkgfTtcbiAgfVxuXG4gIC8vIFJldHJ5IG9uIDQyOSBlcnJvcnNcbiAgaWYgKHN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuVG9vTWFueVJlcXVlc3RzKSB7XG4gICAgY29uc3QgcmV0cnlBZnRlciA9IGhlYWRlcnMuZ2V0KCdyZXRyeS1hZnRlcicpIHx8IGhlYWRlcnMuZ2V0KCd4LXJldHJ5LWFmdGVyJyk7XG5cbiAgICBpZiAocmV0cnlBZnRlcikge1xuICAgICAgY29uc3QgZGVsYXkgPSBwYXJzZUludChyZXRyeUFmdGVyKSAqIDEwMDA7XG4gICAgICByZXR1cm4geyByZXRyeTogdHJ1ZSwgZGVsYXk6IE51bWJlci5pc05hTihkZWxheSkgPyBkZWZhdWx0UmV0cnlEZWxheSA6IGRlbGF5IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcmV0cnk6IHRydWUsIGRlbGF5OiBkZWZhdWx0UmV0cnlEZWxheSB9O1xuICB9XG5cbiAgLy8gQ29kZSAwIHVzdWFsbHkgbWVhbnMgdGhlIGludGVybmV0IGNvbm5lY3Rpb24gaXMgZG93bi4gV2UgcmV0cnkgaW4gdGhpcyBjYXNlLlxuICAvLyBJdCBjb3VsZCBhbHNvIGJlIGEgQ09SUyBpc3N1ZSBidXQgdGhhdCBzaG91bGQgbm90IGJlIHRoZSBjYXNlIGluIHByb2R1Y3Rpb24uXG4gIGlmIChzdGF0dXMgPT09IDApIHtcbiAgICByZXR1cm4geyByZXRyeTogdHJ1ZSwgZGVsYXk6IGRlZmF1bHRSZXRyeURlbGF5IH07XG4gIH1cblxuICByZXR1cm4geyByZXRyeTogZmFsc2UgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5RmVhdHVyZUZsYWdzID0ge1xuICBoYXNXaXRoQXJnc0ZlYXR1cmU6IGJvb2xlYW47XG4gIHNob3VsZEF1dG9FeGVjdXRlTWV0aG9kOiBib29sZWFuO1xuICBzaG91bGRBdXRvRXhlY3V0ZTogYm9vbGVhbjtcbiAgaGFzUm91dGVGdW5jdGlvbjogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRRdWVyeUZlYXR1cmVVc2FnZSA9IDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4ob3B0aW9uczogQ3JlYXRlUXVlcnlPcHRpb25zPFRBcmdzPikgPT4ge1xuICBjb25zdCB7IGNyZWF0b3IsIGNyZWF0b3JJbnRlcm5hbHMsIGZlYXR1cmVzLCBxdWVyeUNvbmZpZyB9ID0gb3B0aW9ucztcblxuICBjb25zdCBoYXNXaXRoQXJnc0ZlYXR1cmUgPSBmZWF0dXJlcy5zb21lKChmKSA9PiBmLnR5cGUgPT0gUXVlcnlGZWF0dXJlVHlwZS5XaXRoQXJncyk7XG4gIGNvbnN0IHNob3VsZEF1dG9FeGVjdXRlTWV0aG9kID0gc2hvdWxkQXV0b0V4ZWN1dGVRdWVyeShjcmVhdG9ySW50ZXJuYWxzLm1ldGhvZCk7XG4gIGNvbnN0IHNob3VsZEF1dG9FeGVjdXRlID0gc2hvdWxkQXV0b0V4ZWN1dGVNZXRob2QgJiYgIXF1ZXJ5Q29uZmlnLm9ubHlNYW51YWxFeGVjdXRpb247XG4gIGNvbnN0IGhhc1JvdXRlRnVuY3Rpb24gPSB0eXBlb2YgY3JlYXRvci5yb3V0ZSA9PT0gJ2Z1bmN0aW9uJztcblxuICBpZiAoaGFzUm91dGVGdW5jdGlvbiAmJiAhaGFzV2l0aEFyZ3NGZWF0dXJlKSB7XG4gICAgdGhyb3cgd2l0aEFyZ3NRdWVyeUZlYXR1cmVNaXNzaW5nQnV0Um91dGVJc0Z1bmN0aW9uKCk7XG4gIH1cblxuICBjb25zdCBmZWF0dXJlRm5Db250ZXh0OiBRdWVyeUZlYXR1cmVGbGFncyA9IHtcbiAgICBoYXNXaXRoQXJnc0ZlYXR1cmUsXG4gICAgc2hvdWxkQXV0b0V4ZWN1dGVNZXRob2QsXG4gICAgc2hvdWxkQXV0b0V4ZWN1dGUsXG4gICAgaGFzUm91dGVGdW5jdGlvbixcbiAgfTtcblxuICByZXR1cm4gZmVhdHVyZUZuQ29udGV4dDtcbn07XG5cbmV4cG9ydCBjb25zdCBhcHBseVF1ZXJ5RmVhdHVyZXMgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KFxuICBvcHRpb25zOiBDcmVhdGVRdWVyeU9wdGlvbnM8VEFyZ3M+LFxuICBjb250ZXh0OiBRdWVyeUZlYXR1cmVDb250ZXh0PFRBcmdzPixcbikgPT4ge1xuICBjb25zdCBmZWF0dXJlVHlwZXMgPSBuZXcgU2V0PFF1ZXJ5RmVhdHVyZVR5cGU+KCk7XG5cbiAgZm9yIChjb25zdCBmZWF0dXJlIG9mIG9wdGlvbnMuZmVhdHVyZXMpIHtcbiAgICBpZiAoZmVhdHVyZVR5cGVzLmhhcyhmZWF0dXJlLnR5cGUpKSB7XG4gICAgICB0aHJvdyBxdWVyeUZlYXR1cmVVc2VkTXVsdGlwbGVUaW1lcyhmZWF0dXJlLnR5cGUpO1xuICAgIH1cblxuICAgIGZlYXR1cmVUeXBlcy5hZGQoZmVhdHVyZS50eXBlKTtcbiAgICBmZWF0dXJlLmZuKGNvbnRleHQpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWF5YmVFeGVjdXRlID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiB7XG4gIGZsYWdzOiBRdWVyeUZlYXR1cmVGbGFncztcbiAgZXhlY3V0ZTogUXVlcnlFeGVjdXRlPFRBcmdzPjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMuZmxhZ3Muc2hvdWxkQXV0b0V4ZWN1dGUgJiYgIW9wdGlvbnMuZmxhZ3MuaGFzUm91dGVGdW5jdGlvbiAmJiAhb3B0aW9ucy5mbGFncy5oYXNXaXRoQXJnc0ZlYXR1cmUpIHtcbiAgICBvcHRpb25zLmV4ZWN1dGUoKTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
3
|
+
import { setupQueryDependencies } from './query-dependencies';
|
|
4
|
+
import { createExecuteFn } from './query-execute';
|
|
5
|
+
import { createQuerySnapshotFn } from './query-snapshot';
|
|
6
|
+
import { setupQueryState } from './query-state';
|
|
7
|
+
import { applyQueryFeatures, getQueryFeatureUsage, maybeExecute } from './query-utils';
|
|
8
|
+
export const createQuery = (options) => {
|
|
9
|
+
const deps = setupQueryDependencies({ clientConfig: options.creatorInternals.client });
|
|
10
|
+
const state = setupQueryState({});
|
|
11
|
+
const { creator, creatorInternals, queryConfig } = options;
|
|
12
|
+
const flags = getQueryFeatureUsage(options);
|
|
13
|
+
const execute = createExecuteFn({ deps, state, creator, creatorInternals, queryConfig: options.queryConfig });
|
|
14
|
+
const createSnapshot = createQuerySnapshotFn({ state, deps });
|
|
15
|
+
const featureFnContext = {
|
|
16
|
+
state,
|
|
17
|
+
queryConfig,
|
|
18
|
+
creatorConfig: creator,
|
|
19
|
+
creatorInternals,
|
|
20
|
+
execute,
|
|
21
|
+
flags,
|
|
22
|
+
};
|
|
23
|
+
applyQueryFeatures(options, featureFnContext);
|
|
24
|
+
maybeExecute({ execute, flags });
|
|
25
|
+
const query = {
|
|
26
|
+
execute,
|
|
27
|
+
args: state.args.asReadonly(),
|
|
28
|
+
response: state.response.asReadonly(),
|
|
29
|
+
latestHttpEvent: state.latestHttpEvent.asReadonly(),
|
|
30
|
+
loading: state.loading.asReadonly(),
|
|
31
|
+
error: state.error.asReadonly(),
|
|
32
|
+
lastTimeExecutedAt: state.lastTimeExecutedAt.asReadonly(),
|
|
33
|
+
createSnapshot,
|
|
34
|
+
};
|
|
35
|
+
return query;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx5REFBeUQ7QUFNekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUE0Q3ZGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUEwQixPQUFrQyxFQUFFLEVBQUU7SUFDekYsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkYsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzNELE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNySCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTlELE1BQU0sZ0JBQWdCLEdBQStCO1FBQ25ELEtBQUs7UUFDTCxXQUFXO1FBQ1gsYUFBYSxFQUFFLE9BQU87UUFDdEIsZ0JBQWdCO1FBQ2hCLE9BQU87UUFDUCxLQUFLO0tBQ04sQ0FBQztJQUVGLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTlDLFlBQVksQ0FBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sS0FBSyxHQUFpQjtRQUMxQixPQUFPO1FBQ1AsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQzdCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTtRQUNyQyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUU7UUFDbkQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1FBQ25DLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUMvQixrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFO1FBQ3pELGNBQWM7S0FDZixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBSZXF1ZXN0TG9hZGluZ1N0YXRlIH0gZnJvbSAnLi9odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9ucywgSW50ZXJuYWxDcmVhdGVRdWVyeUNyZWF0b3JPcHRpb25zLCBRdWVyeUNvbmZpZyB9IGZyb20gJy4vcXVlcnktY3JlYXRvcic7XG5pbXBvcnQgeyBzZXR1cFF1ZXJ5RGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9xdWVyeS1kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHsgY3JlYXRlRXhlY3V0ZUZuLCBRdWVyeUV4ZWN1dGUgfSBmcm9tICcuL3F1ZXJ5LWV4ZWN1dGUnO1xuaW1wb3J0IHsgUXVlcnlGZWF0dXJlLCBRdWVyeUZlYXR1cmVDb250ZXh0IH0gZnJvbSAnLi9xdWVyeS1mZWF0dXJlcyc7XG5pbXBvcnQgeyBjcmVhdGVRdWVyeVNuYXBzaG90Rm4gfSBmcm9tICcuL3F1ZXJ5LXNuYXBzaG90JztcbmltcG9ydCB7IHNldHVwUXVlcnlTdGF0ZSB9IGZyb20gJy4vcXVlcnktc3RhdGUnO1xuaW1wb3J0IHsgYXBwbHlRdWVyeUZlYXR1cmVzLCBnZXRRdWVyeUZlYXR1cmVVc2FnZSwgbWF5YmVFeGVjdXRlIH0gZnJvbSAnLi9xdWVyeS11dGlscyc7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5QXJncyA9IHtcbiAgcmVzcG9uc2U/OiBhbnk7XG4gIHBhdGhQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xuICBxdWVyeVBhcmFtcz86IGFueTtcbiAgYm9keT86IGFueTtcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzcG9uc2VUeXBlPFQgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0gVFsncmVzcG9uc2UnXTtcbmV4cG9ydCB0eXBlIFBhdGhQYXJhbXNUeXBlPFQgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0gVFsncGF0aFBhcmFtcyddO1xuZXhwb3J0IHR5cGUgUXVlcnlQYXJhbXNUeXBlPFQgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0gVFsncXVlcnlQYXJhbXMnXTtcbmV4cG9ydCB0eXBlIEJvZHlUeXBlPFQgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0gVFsnYm9keSddO1xuXG5leHBvcnQgdHlwZSBSZXF1ZXN0QXJnczxUIGV4dGVuZHMgUXVlcnlBcmdzPiA9IE9taXQ8VCwgJ3Jlc3BvbnNlJz47XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVF1ZXJ5T3B0aW9uczxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIGNyZWF0b3I6IENyZWF0ZVF1ZXJ5Q3JlYXRvck9wdGlvbnM8VEFyZ3M+O1xuICBjcmVhdG9ySW50ZXJuYWxzOiBJbnRlcm5hbENyZWF0ZVF1ZXJ5Q3JlYXRvck9wdGlvbnM7XG4gIGZlYXR1cmVzOiBRdWVyeUZlYXR1cmU8VEFyZ3M+W107XG4gIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZztcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5QmFzZTxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIGFyZ3M6IFNpZ25hbDxSZXF1ZXN0QXJnczxUQXJncz4gfCBudWxsPjtcbiAgcmVzcG9uc2U6IFNpZ25hbDxSZXNwb25zZVR5cGU8VEFyZ3M+IHwgbnVsbD47XG4gIGxhdGVzdEh0dHBFdmVudDogU2lnbmFsPEh0dHBFdmVudDxSZXNwb25zZVR5cGU8VEFyZ3M+PiB8IG51bGw+O1xuICBsb2FkaW5nOiBTaWduYWw8SHR0cFJlcXVlc3RMb2FkaW5nU3RhdGUgfCBudWxsPjtcbiAgZXJyb3I6IFNpZ25hbDxIdHRwRXJyb3JSZXNwb25zZSB8IG51bGw+O1xuICBsYXN0VGltZUV4ZWN1dGVkQXQ6IFNpZ25hbDxudW1iZXIgfCBudWxsPjtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5U25hcHNob3Q8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0gUXVlcnlCYXNlPFRBcmdzPiAmIHtcbiAgaXNBbGl2ZTogU2lnbmFsPGJvb2xlYW4+O1xufTtcblxuZXhwb3J0IHR5cGUgQW55UXVlcnlTbmFwc2hvdCA9IFF1ZXJ5U25hcHNob3Q8YW55PjtcblxuZXhwb3J0IHR5cGUgUXVlcnk8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0gUXVlcnlCYXNlPFRBcmdzPiAmIHtcbiAgZXhlY3V0ZTogUXVlcnlFeGVjdXRlPFRBcmdzPjtcbiAgY3JlYXRlU25hcHNob3Q6ICgpID0+IFF1ZXJ5U25hcHNob3Q8VEFyZ3M+O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5ID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiBDcmVhdGVRdWVyeU9wdGlvbnM8VEFyZ3M+KSA9PiB7XG4gIGNvbnN0IGRlcHMgPSBzZXR1cFF1ZXJ5RGVwZW5kZW5jaWVzKHsgY2xpZW50Q29uZmlnOiBvcHRpb25zLmNyZWF0b3JJbnRlcm5hbHMuY2xpZW50IH0pO1xuICBjb25zdCBzdGF0ZSA9IHNldHVwUXVlcnlTdGF0ZTxUQXJncz4oe30pO1xuICBjb25zdCB7IGNyZWF0b3IsIGNyZWF0b3JJbnRlcm5hbHMsIHF1ZXJ5Q29uZmlnIH0gPSBvcHRpb25zO1xuICBjb25zdCBmbGFncyA9IGdldFF1ZXJ5RmVhdHVyZVVzYWdlKG9wdGlvbnMpO1xuXG4gIGNvbnN0IGV4ZWN1dGUgPSBjcmVhdGVFeGVjdXRlRm48VEFyZ3M+KHsgZGVwcywgc3RhdGUsIGNyZWF0b3IsIGNyZWF0b3JJbnRlcm5hbHMsIHF1ZXJ5Q29uZmlnOiBvcHRpb25zLnF1ZXJ5Q29uZmlnIH0pO1xuICBjb25zdCBjcmVhdGVTbmFwc2hvdCA9IGNyZWF0ZVF1ZXJ5U25hcHNob3RGbih7IHN0YXRlLCBkZXBzIH0pO1xuXG4gIGNvbnN0IGZlYXR1cmVGbkNvbnRleHQ6IFF1ZXJ5RmVhdHVyZUNvbnRleHQ8VEFyZ3M+ID0ge1xuICAgIHN0YXRlLFxuICAgIHF1ZXJ5Q29uZmlnLFxuICAgIGNyZWF0b3JDb25maWc6IGNyZWF0b3IsXG4gICAgY3JlYXRvckludGVybmFscyxcbiAgICBleGVjdXRlLFxuICAgIGZsYWdzLFxuICB9O1xuXG4gIGFwcGx5UXVlcnlGZWF0dXJlcyhvcHRpb25zLCBmZWF0dXJlRm5Db250ZXh0KTtcblxuICBtYXliZUV4ZWN1dGU8VEFyZ3M+KHsgZXhlY3V0ZSwgZmxhZ3MgfSk7XG5cbiAgY29uc3QgcXVlcnk6IFF1ZXJ5PFRBcmdzPiA9IHtcbiAgICBleGVjdXRlLFxuICAgIGFyZ3M6IHN0YXRlLmFyZ3MuYXNSZWFkb25seSgpLFxuICAgIHJlc3BvbnNlOiBzdGF0ZS5yZXNwb25zZS5hc1JlYWRvbmx5KCksXG4gICAgbGF0ZXN0SHR0cEV2ZW50OiBzdGF0ZS5sYXRlc3RIdHRwRXZlbnQuYXNSZWFkb25seSgpLFxuICAgIGxvYWRpbmc6IHN0YXRlLmxvYWRpbmcuYXNSZWFkb25seSgpLFxuICAgIGVycm9yOiBzdGF0ZS5lcnJvci5hc1JlYWRvbmx5KCksXG4gICAgbGFzdFRpbWVFeGVjdXRlZEF0OiBzdGF0ZS5sYXN0VGltZUV4ZWN1dGVkQXQuYXNSZWFkb25seSgpLFxuICAgIGNyZWF0ZVNuYXBzaG90LFxuICB9O1xuXG4gIHJldHVybiBxdWVyeTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { splitQueryConfig, } from './query-creator';
|
|
2
|
+
import { createSecureQuery } from './secure-query';
|
|
3
|
+
export const createSecureQueryCreator = (options, internals) => {
|
|
4
|
+
function queryCreator(...args) {
|
|
5
|
+
const { features, queryConfig } = splitQueryConfig(args);
|
|
6
|
+
return createSecureQuery({
|
|
7
|
+
creator: options,
|
|
8
|
+
creatorInternals: internals,
|
|
9
|
+
features,
|
|
10
|
+
queryConfig,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return queryCreator;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJlLXF1ZXJ5LWNyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL3NlY3VyZS1xdWVyeS1jcmVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFLTCxnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1uRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxPQUF5QyxFQUN6QyxTQUFrRCxFQUM3QixFQUFFO0lBSXZCLFNBQVMsWUFBWSxDQUFDLEdBQUcsSUFBMkM7UUFDbEUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBUSxJQUFJLENBQUMsQ0FBQztRQUVoRSxPQUFPLGlCQUFpQixDQUFRO1lBQzlCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGdCQUFnQixFQUFFLFNBQVM7WUFDM0IsUUFBUTtZQUNSLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi9iZWFyZXItYXV0aC1wcm92aWRlci1jb25maWcnO1xuaW1wb3J0IHsgUXVlcnksIFF1ZXJ5QXJncyB9IGZyb20gJy4vcXVlcnknO1xuaW1wb3J0IHtcbiAgQ3JlYXRlUXVlcnlDcmVhdG9yT3B0aW9ucyxcbiAgSW50ZXJuYWxDcmVhdGVRdWVyeUNyZWF0b3JPcHRpb25zLFxuICBRdWVyeUNvbmZpZyxcbiAgUXVlcnlDcmVhdG9yLFxuICBzcGxpdFF1ZXJ5Q29uZmlnLFxufSBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuaW1wb3J0IHsgUXVlcnlGZWF0dXJlIH0gZnJvbSAnLi9xdWVyeS1mZWF0dXJlcyc7XG5pbXBvcnQgeyBjcmVhdGVTZWN1cmVRdWVyeSB9IGZyb20gJy4vc2VjdXJlLXF1ZXJ5JztcblxuZXhwb3J0IHR5cGUgSW50ZXJuYWxTZWN1cmVDcmVhdGVRdWVyeUNyZWF0b3JPcHRpb25zID0gSW50ZXJuYWxDcmVhdGVRdWVyeUNyZWF0b3JPcHRpb25zICYge1xuICBhdXRoUHJvdmlkZXI6IEFueUJlYXJlckF1dGhQcm92aWRlckNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTZWN1cmVRdWVyeUNyZWF0b3IgPSA8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+KFxuICBvcHRpb25zOiBDcmVhdGVRdWVyeUNyZWF0b3JPcHRpb25zPFRBcmdzPixcbiAgaW50ZXJuYWxzOiBJbnRlcm5hbFNlY3VyZUNyZWF0ZVF1ZXJ5Q3JlYXRvck9wdGlvbnMsXG4pOiBRdWVyeUNyZWF0b3I8VEFyZ3M+ID0+IHtcbiAgZnVuY3Rpb24gcXVlcnlDcmVhdG9yKC4uLmZlYXR1cmVzOiBRdWVyeUZlYXR1cmU8VEFyZ3M+W10pOiBRdWVyeTxUQXJncz47XG4gIGZ1bmN0aW9uIHF1ZXJ5Q3JlYXRvcihxdWVyeUNvbmZpZzogUXVlcnlDb25maWcsIC4uLmZlYXR1cmVzOiBRdWVyeUZlYXR1cmU8VEFyZ3M+W10pOiBRdWVyeTxUQXJncz47XG5cbiAgZnVuY3Rpb24gcXVlcnlDcmVhdG9yKC4uLmFyZ3M6IChRdWVyeUZlYXR1cmU8VEFyZ3M+IHwgUXVlcnlDb25maWcpW10pOiBRdWVyeTxUQXJncz4ge1xuICAgIGNvbnN0IHsgZmVhdHVyZXMsIHF1ZXJ5Q29uZmlnIH0gPSBzcGxpdFF1ZXJ5Q29uZmlnPFRBcmdzPihhcmdzKTtcblxuICAgIHJldHVybiBjcmVhdGVTZWN1cmVRdWVyeTxUQXJncz4oe1xuICAgICAgY3JlYXRvcjogb3B0aW9ucyxcbiAgICAgIGNyZWF0b3JJbnRlcm5hbHM6IGludGVybmFscyxcbiAgICAgIGZlYXR1cmVzLFxuICAgICAgcXVlcnlDb25maWcsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcXVlcnlDcmVhdG9yO1xufTtcbiJdfQ==
|