@data-client/core 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +134 -409
- package/dist/index.umd.min.js +1 -1
- package/dist/next.js +61 -101
- package/legacy/actionTypes.js +2 -2
- package/legacy/controller/Controller.js +276 -6
- package/legacy/controller/createFetch.js +3 -14
- package/legacy/controller/createInvalidate.js +1 -1
- package/legacy/controller/createInvalidateAll.js +1 -1
- package/legacy/controller/createOptimistic.js +1 -7
- package/legacy/controller/createReset.js +1 -1
- package/legacy/controller/createSet.js +31 -0
- package/legacy/controller/createSubscription.js +3 -7
- package/legacy/index.js +2 -5
- package/legacy/internal.js +2 -2
- package/legacy/manager/DevtoolsManager.js +2 -2
- package/legacy/manager/LogoutManager.js +2 -2
- package/legacy/manager/NetworkManager.js +28 -59
- package/legacy/manager/PollingSubscription.js +18 -27
- package/legacy/manager/SubscriptionManager.js +16 -42
- package/legacy/manager/applyManager.js +2 -1
- package/legacy/middlewareTypes.js +1 -1
- package/legacy/newActions.js +1 -1
- package/legacy/next/index.js +3 -3
- package/legacy/state/reducer/createReducer.js +2 -6
- package/legacy/state/reducer/fetchReducer.js +3 -13
- package/legacy/state/reducer/invalidateReducer.js +1 -1
- package/legacy/state/reducer/setReducer.js +9 -16
- package/legacy/types.js +2 -6
- package/lib/actionTypes.d.ts +1 -0
- package/lib/actionTypes.d.ts.map +1 -1
- package/lib/actionTypes.js +2 -2
- package/lib/controller/Controller.d.ts +126 -6
- package/lib/controller/Controller.d.ts.map +1 -1
- package/lib/controller/Controller.js +276 -6
- package/lib/controller/createFetch.d.ts +2 -2
- package/lib/controller/createFetch.d.ts.map +1 -1
- package/lib/controller/createFetch.js +3 -14
- package/lib/controller/createInvalidate.d.ts +1 -1
- package/lib/controller/createInvalidate.d.ts.map +1 -1
- package/lib/controller/createInvalidate.js +1 -1
- package/lib/controller/createInvalidateAll.d.ts +1 -1
- package/lib/controller/createInvalidateAll.d.ts.map +1 -1
- package/lib/controller/createInvalidateAll.js +1 -1
- package/lib/controller/createOptimistic.d.ts +2 -2
- package/lib/controller/createOptimistic.d.ts.map +1 -1
- package/lib/controller/createOptimistic.js +1 -7
- package/lib/controller/createReset.d.ts +1 -1
- package/lib/controller/createReset.d.ts.map +1 -1
- package/lib/controller/createReset.js +1 -1
- package/lib/controller/{createReceive.d.ts → createSet.d.ts} +6 -6
- package/lib/controller/createSet.d.ts.map +1 -0
- package/lib/controller/createSet.js +31 -0
- package/lib/controller/createSubscription.d.ts +3 -3
- package/lib/controller/createSubscription.d.ts.map +1 -1
- package/lib/controller/createSubscription.js +3 -7
- package/lib/index.d.ts +2 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -5
- package/lib/internal.d.ts +1 -1
- package/lib/internal.d.ts.map +1 -1
- package/lib/internal.js +2 -2
- package/lib/manager/DevtoolsManager.d.ts +1 -1
- package/lib/manager/DevtoolsManager.js +2 -2
- package/lib/manager/LogoutManager.d.ts +4 -5
- package/lib/manager/LogoutManager.d.ts.map +1 -1
- package/lib/manager/LogoutManager.js +2 -2
- package/lib/manager/NetworkManager.d.ts +4 -5
- package/lib/manager/NetworkManager.d.ts.map +1 -1
- package/lib/manager/NetworkManager.js +28 -61
- package/lib/manager/PollingSubscription.d.ts +9 -9
- package/lib/manager/PollingSubscription.d.ts.map +1 -1
- package/lib/manager/PollingSubscription.js +18 -27
- package/lib/manager/SubscriptionManager.d.ts +10 -15
- package/lib/manager/SubscriptionManager.d.ts.map +1 -1
- package/lib/manager/SubscriptionManager.js +16 -42
- package/lib/manager/applyManager.d.ts.map +1 -1
- package/lib/manager/applyManager.js +2 -1
- package/lib/middlewareTypes.d.ts +5 -5
- package/lib/middlewareTypes.d.ts.map +1 -1
- package/lib/middlewareTypes.js +1 -1
- package/lib/newActions.d.ts +26 -18
- package/lib/newActions.d.ts.map +1 -1
- package/lib/newActions.js +1 -1
- package/lib/next/index.d.ts +2 -2
- package/lib/next/index.d.ts.map +1 -1
- package/lib/next/index.js +3 -3
- package/lib/state/reducer/createReducer.d.ts.map +1 -1
- package/lib/state/reducer/createReducer.js +2 -6
- package/lib/state/reducer/fetchReducer.d.ts +1 -2
- package/lib/state/reducer/fetchReducer.d.ts.map +1 -1
- package/lib/state/reducer/fetchReducer.js +3 -14
- package/lib/state/reducer/invalidateReducer.d.ts +3 -4
- package/lib/state/reducer/invalidateReducer.d.ts.map +1 -1
- package/lib/state/reducer/invalidateReducer.js +1 -1
- package/lib/state/reducer/setReducer.d.ts +2 -38
- package/lib/state/reducer/setReducer.d.ts.map +1 -1
- package/lib/state/reducer/setReducer.js +9 -17
- package/lib/types.d.ts +9 -30
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +2 -6
- package/package.json +10 -7
- package/src/actionTypes.ts +1 -1
- package/src/controller/Controller.ts +491 -10
- package/src/controller/createFetch.ts +4 -19
- package/src/controller/createInvalidate.ts +1 -1
- package/src/controller/createInvalidateAll.ts +1 -1
- package/src/controller/createOptimistic.ts +3 -9
- package/src/controller/createReset.ts +1 -1
- package/src/controller/{createReceive.ts → createSet.ts} +9 -17
- package/src/controller/createSubscription.ts +3 -10
- package/src/index.ts +2 -16
- package/src/internal.ts +1 -1
- package/src/manager/DevtoolsManager.ts +1 -1
- package/src/manager/LogoutManager.ts +4 -5
- package/src/manager/NetworkManager.ts +31 -80
- package/src/manager/PollingSubscription.ts +40 -38
- package/src/manager/SubscriptionManager.ts +22 -54
- package/src/manager/__tests__/__snapshots__/pollingSubscription.ts.snap +10 -8
- package/src/manager/__tests__/logoutManager.ts +5 -5
- package/src/manager/__tests__/manager.ts +2 -4
- package/src/manager/__tests__/networkManager.ts +8 -42
- package/src/manager/__tests__/pollingSubscription.ts +259 -151
- package/src/manager/__tests__/subscriptionManager.ts +7 -13
- package/src/manager/applyManager.ts +1 -0
- package/src/middlewareTypes.ts +5 -10
- package/src/newActions.ts +33 -23
- package/src/next/index.ts +2 -2
- package/src/state/__tests__/reducer.ts +59 -297
- package/src/state/reducer/createReducer.ts +3 -11
- package/src/state/reducer/fetchReducer.ts +5 -18
- package/src/state/reducer/invalidateReducer.ts +2 -2
- package/src/state/reducer/setReducer.ts +10 -22
- package/src/types.ts +9 -78
- package/ts3.4/actionTypes.d.ts +1 -0
- package/ts3.4/controller/Controller.d.ts +168 -6
- package/ts3.4/controller/createFetch.d.ts +2 -2
- package/ts3.4/controller/createInvalidate.d.ts +1 -1
- package/ts3.4/controller/createInvalidateAll.d.ts +1 -1
- package/ts3.4/controller/createOptimistic.d.ts +1 -1
- package/ts3.4/controller/createReset.d.ts +1 -1
- package/ts3.4/controller/{createReceive.d.ts → createSet.d.ts} +6 -6
- package/ts3.4/controller/createSubscription.d.ts +3 -3
- package/ts3.4/index.d.ts +2 -7
- package/ts3.4/internal.d.ts +1 -1
- package/ts3.4/manager/DevtoolsManager.d.ts +1 -1
- package/ts3.4/manager/LogoutManager.d.ts +4 -5
- package/ts3.4/manager/NetworkManager.d.ts +4 -5
- package/ts3.4/manager/PollingSubscription.d.ts +9 -9
- package/ts3.4/manager/SubscriptionManager.d.ts +10 -15
- package/ts3.4/middlewareTypes.d.ts +5 -5
- package/ts3.4/newActions.d.ts +26 -18
- package/ts3.4/next/index.d.ts +2 -2
- package/ts3.4/state/reducer/fetchReducer.d.ts +1 -2
- package/ts3.4/state/reducer/invalidateReducer.d.ts +3 -4
- package/ts3.4/state/reducer/setReducer.d.ts +2 -38
- package/ts3.4/types.d.ts +8 -30
- package/legacy/compatibleActions.js +0 -2
- package/legacy/controller/BaseController.js +0 -289
- package/legacy/controller/createReceive.js +0 -36
- package/legacy/endpoint/index.js +0 -2
- package/legacy/endpoint/shapes.js +0 -2
- package/legacy/endpoint/types.js +0 -2
- package/legacy/legacyActions.js +0 -2
- package/legacy/next/Controller.js +0 -24
- package/legacy/previousActions.js +0 -2
- package/legacy/state/applyUpdatersToResults.js +0 -4
- package/legacy/state/legacy-actions/createFetch.js +0 -62
- package/legacy/state/legacy-actions/createReceive.js +0 -37
- package/legacy/state/legacy-actions/createReceiveError.js +0 -28
- package/legacy/state/legacy-actions/index.js +0 -4
- package/legacy/state/reducerInstance.js +0 -9
- package/lib/compatibleActions.d.ts +0 -47
- package/lib/compatibleActions.d.ts.map +0 -1
- package/lib/compatibleActions.js +0 -2
- package/lib/controller/BaseController.d.ts +0 -128
- package/lib/controller/BaseController.d.ts.map +0 -1
- package/lib/controller/BaseController.js +0 -289
- package/lib/controller/createReceive.d.ts.map +0 -1
- package/lib/controller/createReceive.js +0 -36
- package/lib/endpoint/index.d.ts +0 -3
- package/lib/endpoint/index.d.ts.map +0 -1
- package/lib/endpoint/index.js +0 -2
- package/lib/endpoint/shapes.d.ts +0 -25
- package/lib/endpoint/shapes.d.ts.map +0 -1
- package/lib/endpoint/shapes.js +0 -2
- package/lib/endpoint/types.d.ts +0 -45
- package/lib/endpoint/types.d.ts.map +0 -1
- package/lib/endpoint/types.js +0 -2
- package/lib/legacyActions.d.ts +0 -92
- package/lib/legacyActions.d.ts.map +0 -1
- package/lib/legacyActions.js +0 -2
- package/lib/next/Controller.d.ts +0 -14
- package/lib/next/Controller.d.ts.map +0 -1
- package/lib/next/Controller.js +0 -24
- package/lib/previousActions.d.ts +0 -91
- package/lib/previousActions.d.ts.map +0 -1
- package/lib/previousActions.js +0 -2
- package/lib/state/applyUpdatersToResults.d.ts +0 -13
- package/lib/state/applyUpdatersToResults.d.ts.map +0 -1
- package/lib/state/applyUpdatersToResults.js +0 -7
- package/lib/state/legacy-actions/createFetch.d.ts +0 -19
- package/lib/state/legacy-actions/createFetch.d.ts.map +0 -1
- package/lib/state/legacy-actions/createFetch.js +0 -62
- package/lib/state/legacy-actions/createReceive.d.ts +0 -14
- package/lib/state/legacy-actions/createReceive.d.ts.map +0 -1
- package/lib/state/legacy-actions/createReceive.js +0 -37
- package/lib/state/legacy-actions/createReceiveError.d.ts +0 -9
- package/lib/state/legacy-actions/createReceiveError.d.ts.map +0 -1
- package/lib/state/legacy-actions/createReceiveError.js +0 -28
- package/lib/state/legacy-actions/index.d.ts +0 -4
- package/lib/state/legacy-actions/index.d.ts.map +0 -1
- package/lib/state/legacy-actions/index.js +0 -4
- package/lib/state/reducerInstance.d.ts +0 -7
- package/lib/state/reducerInstance.d.ts.map +0 -1
- package/lib/state/reducerInstance.js +0 -9
- package/src/compatibleActions.ts +0 -96
- package/src/controller/BaseController.ts +0 -508
- package/src/endpoint/index.ts +0 -14
- package/src/endpoint/shapes.ts +0 -53
- package/src/endpoint/types.ts +0 -72
- package/src/legacyActions.ts +0 -163
- package/src/manager/__tests__/__snapshots__/pollingSubscription-endpoint.ts.snap +0 -49
- package/src/manager/__tests__/networkManager-legacy.ts +0 -394
- package/src/manager/__tests__/pollingSubscription-endpoint.ts +0 -423
- package/src/next/Controller.ts +0 -39
- package/src/previousActions.ts +0 -159
- package/src/state/__tests__/applyUpdatersToResults.ts +0 -40
- package/src/state/applyUpdatersToResults.ts +0 -29
- package/src/state/legacy-actions/createFetch.ts +0 -95
- package/src/state/legacy-actions/createReceive.ts +0 -68
- package/src/state/legacy-actions/createReceiveError.ts +0 -43
- package/src/state/legacy-actions/index.ts +0 -3
- package/src/state/reducerInstance.ts +0 -14
- package/ts3.4/compatibleActions.d.ts +0 -47
- package/ts3.4/controller/BaseController.d.ts +0 -170
- package/ts3.4/endpoint/index.d.ts +0 -3
- package/ts3.4/endpoint/shapes.d.ts +0 -25
- package/ts3.4/endpoint/types.d.ts +0 -45
- package/ts3.4/legacyActions.d.ts +0 -95
- package/ts3.4/next/Controller.d.ts +0 -14
- package/ts3.4/previousActions.d.ts +0 -94
- package/ts3.4/state/applyUpdatersToResults.d.ts +0 -13
- package/ts3.4/state/legacy-actions/createFetch.d.ts +0 -19
- package/ts3.4/state/legacy-actions/createReceive.d.ts +0 -14
- package/ts3.4/state/legacy-actions/createReceiveError.d.ts +0 -9
- package/ts3.4/state/legacy-actions/index.d.ts +0 -4
- package/ts3.4/state/reducerInstance.d.ts +0 -7
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import { WeakEntityMap, ExpiryStatus, denormalizeCached, isEntity } from '@data-client/normalizr';
|
|
2
|
-
import { inferResults, validateInference } from '@data-client/normalizr';
|
|
3
|
-
import createInvalidate from './createInvalidate.js';
|
|
4
|
-
import createInvalidateAll from './createInvalidateAll.js';
|
|
5
|
-
import createReceive from './createReceive.js';
|
|
6
|
-
import createReset from './createReset.js';
|
|
7
|
-
import { createUnsubscription, createSubscription } from './createSubscription.js';
|
|
8
|
-
import { initialState } from '../state/reducer/createReducer.js';
|
|
9
|
-
import selectMeta from '../state/selectMeta.js';
|
|
10
|
-
const unsetDispatch = action => {
|
|
11
|
-
throw new Error(`Dispatching while constructing your middleware is not allowed. ` + `Other middleware would not be applied to this dispatch.`);
|
|
12
|
-
};
|
|
13
|
-
const unsetState = () => {
|
|
14
|
-
// This is only the value until it is set by the CacheProvider
|
|
15
|
-
/* istanbul ignore next */
|
|
16
|
-
return initialState;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Imperative control of Rest Hooks store
|
|
21
|
-
* @see https://resthooks.io/docs/api/Controller
|
|
22
|
-
*/
|
|
23
|
-
export default class Controller {
|
|
24
|
-
/**
|
|
25
|
-
* Dispatches an action to Rest Hooks reducer.
|
|
26
|
-
*
|
|
27
|
-
* @see https://resthooks.io/docs/api/Controller#dispatch
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Gets the latest state snapshot that is fully committed.
|
|
32
|
-
*
|
|
33
|
-
* This can be useful for imperative use-cases like event handlers.
|
|
34
|
-
* This should *not* be used to render; instead useSuspense() or useCache()
|
|
35
|
-
* @see https://resthooks.io/docs/api/Controller#getState
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
constructor({
|
|
39
|
-
dispatch = unsetDispatch,
|
|
40
|
-
getState = unsetState,
|
|
41
|
-
globalCache = {
|
|
42
|
-
entities: {},
|
|
43
|
-
results: {}
|
|
44
|
-
}
|
|
45
|
-
} = {}) {
|
|
46
|
-
/*************** Action Dispatchers ***************/
|
|
47
|
-
/**
|
|
48
|
-
* Forces refetching and suspense on useSuspense with the same Endpoint and parameters.
|
|
49
|
-
* @see https://resthooks.io/docs/api/Controller#invalidate
|
|
50
|
-
*/
|
|
51
|
-
this.invalidate = (endpoint, ...args) => args[0] !== null ? this.dispatch(createInvalidate(endpoint, {
|
|
52
|
-
args: args
|
|
53
|
-
})) : Promise.resolve();
|
|
54
|
-
/**
|
|
55
|
-
* Forces refetching and suspense on useSuspense on all matching endpoint result keys.
|
|
56
|
-
* @see https://resthooks.io/docs/api/Controller#invalidateAll
|
|
57
|
-
*/
|
|
58
|
-
this.invalidateAll = options => this.dispatch(createInvalidateAll(key => options.testKey(key)));
|
|
59
|
-
/**
|
|
60
|
-
* Resets the entire Rest Hooks cache. All inflight requests will not resolve.
|
|
61
|
-
* @see https://resthooks.io/docs/api/Controller#resetEntireStore
|
|
62
|
-
*/
|
|
63
|
-
this.resetEntireStore = () => this.dispatch(createReset());
|
|
64
|
-
/**
|
|
65
|
-
* Stores response in cache for given Endpoint and args.
|
|
66
|
-
* @see https://resthooks.io/docs/api/Controller#set
|
|
67
|
-
*/
|
|
68
|
-
this.setResponse = (endpoint, ...rest) => {
|
|
69
|
-
const response = rest[rest.length - 1];
|
|
70
|
-
const action = createReceive(endpoint, {
|
|
71
|
-
args: rest.slice(0, rest.length - 1),
|
|
72
|
-
response
|
|
73
|
-
});
|
|
74
|
-
return this.dispatch(action);
|
|
75
|
-
};
|
|
76
|
-
// TODO: deprecate
|
|
77
|
-
/**
|
|
78
|
-
* Another name for setResponse
|
|
79
|
-
* @see https://resthooks.io/docs/api/Controller#setResponse
|
|
80
|
-
*/
|
|
81
|
-
/* istanbul ignore next */
|
|
82
|
-
this.receive = (endpoint, ...rest) => {
|
|
83
|
-
/* istanbul ignore next */
|
|
84
|
-
return this.setResponse(endpoint, ...rest);
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Stores the result of Endpoint and args as the error provided.
|
|
88
|
-
* @see https://resthooks.io/docs/api/Controller#setError
|
|
89
|
-
*/
|
|
90
|
-
this.setError = (endpoint, ...rest) => {
|
|
91
|
-
const response = rest[rest.length - 1];
|
|
92
|
-
const action = createReceive(endpoint, {
|
|
93
|
-
args: rest.slice(0, rest.length - 1),
|
|
94
|
-
response,
|
|
95
|
-
error: true
|
|
96
|
-
});
|
|
97
|
-
return this.dispatch(action);
|
|
98
|
-
};
|
|
99
|
-
// TODO: deprecate
|
|
100
|
-
/**
|
|
101
|
-
* Another name for setError
|
|
102
|
-
* @see https://resthooks.io/docs/api/Controller#setError
|
|
103
|
-
*/
|
|
104
|
-
/* istanbul ignore next */
|
|
105
|
-
this.receiveError = (endpoint, ...rest) => {
|
|
106
|
-
/* istanbul ignore next */
|
|
107
|
-
return this.setError(endpoint, ...rest);
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Resolves an inflight fetch. `fetchedAt` should `fetch`'s `createdAt`
|
|
111
|
-
* @see https://resthooks.io/docs/api/Controller#resolve
|
|
112
|
-
*/
|
|
113
|
-
this.resolve = (endpoint, meta) => {
|
|
114
|
-
return this.dispatch(createReceive(endpoint, meta));
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Marks a new subscription to a given Endpoint.
|
|
118
|
-
* @see https://resthooks.io/docs/api/Controller#subscribe
|
|
119
|
-
*/
|
|
120
|
-
this.subscribe = (endpoint, ...args) => args[0] !== null ? this.dispatch(createSubscription(endpoint, {
|
|
121
|
-
args: args
|
|
122
|
-
})) : Promise.resolve();
|
|
123
|
-
/**
|
|
124
|
-
* Marks completion of subscription to a given Endpoint.
|
|
125
|
-
* @see https://resthooks.io/docs/api/Controller#unsubscribe
|
|
126
|
-
*/
|
|
127
|
-
this.unsubscribe = (endpoint, ...args) => args[0] !== null ? this.dispatch(createUnsubscription(endpoint, {
|
|
128
|
-
args: args
|
|
129
|
-
})) : Promise.resolve();
|
|
130
|
-
/*************** More ***************/
|
|
131
|
-
/* TODO:
|
|
132
|
-
abort = <E extends EndpointInterface>(
|
|
133
|
-
endpoint: E,
|
|
134
|
-
...args: readonly [...Parameters<E>]
|
|
135
|
-
): Promise<void>
|
|
136
|
-
*/
|
|
137
|
-
/**
|
|
138
|
-
* Gets a snapshot (https://resthooks.io/docs/api/Snapshot)
|
|
139
|
-
* @see https://resthooks.io/docs/api/Controller#snapshot
|
|
140
|
-
*/
|
|
141
|
-
this.snapshot = (state, fetchedAt) => {
|
|
142
|
-
return new Snapshot(this, state, fetchedAt);
|
|
143
|
-
};
|
|
144
|
-
/**
|
|
145
|
-
* Gets the error, if any, for a given endpoint. Returns undefined for no errors.
|
|
146
|
-
* @see https://resthooks.io/docs/api/Controller#getError
|
|
147
|
-
*/
|
|
148
|
-
this.getError = (endpoint, ...rest) => {
|
|
149
|
-
if (rest[0] === null) return;
|
|
150
|
-
const state = rest[rest.length - 1];
|
|
151
|
-
// this is typescript generics breaking
|
|
152
|
-
const args = rest.slice(0, rest.length - 1);
|
|
153
|
-
const key = endpoint.key(...args);
|
|
154
|
-
const meta = selectMeta(state, key);
|
|
155
|
-
const results = state.results[key];
|
|
156
|
-
if (results !== undefined && (meta == null ? void 0 : meta.errorPolicy) === 'soft') return;
|
|
157
|
-
return meta == null ? void 0 : meta.error;
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* Gets the (globally referentially stable) response for a given endpoint/args pair from state given.
|
|
161
|
-
* @see https://resthooks.io/docs/api/Controller#getResponse
|
|
162
|
-
*/
|
|
163
|
-
this.getResponse = (endpoint, ...rest) => {
|
|
164
|
-
const state = rest[rest.length - 1];
|
|
165
|
-
// this is typescript generics breaking
|
|
166
|
-
const args = rest.slice(0, rest.length - 1);
|
|
167
|
-
const isActive = args.length !== 1 || args[0] !== null;
|
|
168
|
-
const key = isActive ? endpoint.key(...args) : '';
|
|
169
|
-
const cacheResults = isActive ? state.results[key] : undefined;
|
|
170
|
-
const schema = endpoint.schema;
|
|
171
|
-
const meta = selectMeta(state, key);
|
|
172
|
-
let expiresAt = meta == null ? void 0 : meta.expiresAt;
|
|
173
|
-
let invalidResults = false;
|
|
174
|
-
let results;
|
|
175
|
-
if (cacheResults === undefined && endpoint.schema !== undefined) {
|
|
176
|
-
results = inferResults(endpoint.schema, args, state.indexes, state.entities);
|
|
177
|
-
invalidResults = !validateInference(results);
|
|
178
|
-
if (!expiresAt && invalidResults) expiresAt = 1;
|
|
179
|
-
} else {
|
|
180
|
-
results = cacheResults;
|
|
181
|
-
}
|
|
182
|
-
if (!isActive) {
|
|
183
|
-
return {
|
|
184
|
-
data: results,
|
|
185
|
-
expiryStatus: ExpiryStatus.Valid,
|
|
186
|
-
expiresAt: Infinity
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
if (!endpoint.schema || !schemaHasEntity(endpoint.schema)) {
|
|
190
|
-
return {
|
|
191
|
-
data: results,
|
|
192
|
-
expiryStatus: meta != null && meta.invalidated ? ExpiryStatus.Invalid : cacheResults && !endpoint.invalidIfStale ? ExpiryStatus.Valid : ExpiryStatus.InvalidIfStale,
|
|
193
|
-
expiresAt: expiresAt || 0
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// Warn users with bad configurations
|
|
198
|
-
/* istanbul ignore next */
|
|
199
|
-
if (process.env.NODE_ENV !== 'production' && schema && isEntity(schema)) {
|
|
200
|
-
if (Array.isArray(results)) {
|
|
201
|
-
throw new Error(`fetch key ${key} has list results when single result is expected`);
|
|
202
|
-
}
|
|
203
|
-
if (typeof results === 'object') {
|
|
204
|
-
throw new Error(`fetch key ${key} has object results when entity's primary key (string) result is expected`);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (!this.globalCache.results[key]) this.globalCache.results[key] = new WeakEntityMap();
|
|
208
|
-
|
|
209
|
-
// second argument is false if any entities are missing
|
|
210
|
-
// eslint-disable-next-line prefer-const
|
|
211
|
-
const {
|
|
212
|
-
data,
|
|
213
|
-
paths
|
|
214
|
-
} = denormalizeCached(results, schema, state.entities, this.globalCache.entities, this.globalCache.results[key], args);
|
|
215
|
-
const invalidDenormalize = typeof data === 'symbol';
|
|
216
|
-
|
|
217
|
-
// fallback to entity expiry time
|
|
218
|
-
if (!expiresAt) {
|
|
219
|
-
expiresAt = entityExpiresAt(paths, state.entityMeta);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// https://resthooks.io/docs/concepts/expiry-policy#expiry-status
|
|
223
|
-
// we don't track the difference between stale or fresh because that is tied to triggering
|
|
224
|
-
// conditions
|
|
225
|
-
const expiryStatus = meta != null && meta.invalidated || invalidDenormalize && !(meta != null && meta.error) ? ExpiryStatus.Invalid : invalidDenormalize || endpoint.invalidIfStale || invalidResults ? ExpiryStatus.InvalidIfStale : ExpiryStatus.Valid;
|
|
226
|
-
return {
|
|
227
|
-
data,
|
|
228
|
-
expiryStatus,
|
|
229
|
-
expiresAt
|
|
230
|
-
};
|
|
231
|
-
};
|
|
232
|
-
this.dispatch = dispatch;
|
|
233
|
-
this.getState = getState;
|
|
234
|
-
this.globalCache = globalCache;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// benchmark: https://www.measurethat.net/Benchmarks/Show/24691/0/min-reducer-vs-imperative-with-paths
|
|
239
|
-
// earliest expiry dictates age
|
|
240
|
-
function entityExpiresAt(paths, entityMeta) {
|
|
241
|
-
let expiresAt = Infinity;
|
|
242
|
-
for (const {
|
|
243
|
-
pk,
|
|
244
|
-
key
|
|
245
|
-
} of paths) {
|
|
246
|
-
var _entityMeta$key, _entityMeta$key$pk;
|
|
247
|
-
const entityExpiry = (_entityMeta$key = entityMeta[key]) == null ? void 0 : (_entityMeta$key$pk = _entityMeta$key[pk]) == null ? void 0 : _entityMeta$key$pk.expiresAt;
|
|
248
|
-
// expiresAt will always resolve to false with any comparison
|
|
249
|
-
if (entityExpiry < expiresAt) expiresAt = entityExpiry;
|
|
250
|
-
}
|
|
251
|
-
return expiresAt;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/** Determine whether the schema has any entities.
|
|
255
|
-
*
|
|
256
|
-
* Without entities, denormalization is not needed, and results should not be inferred.
|
|
257
|
-
*/
|
|
258
|
-
function schemaHasEntity(schema) {
|
|
259
|
-
if (isEntity(schema)) return true;
|
|
260
|
-
if (Array.isArray(schema)) return schema.length !== 0 && schemaHasEntity(schema[0]);
|
|
261
|
-
if (schema && (typeof schema === 'object' || typeof schema === 'function')) {
|
|
262
|
-
const nestedSchema = 'schema' in schema ? schema.schema : schema;
|
|
263
|
-
if (typeof nestedSchema === 'function') {
|
|
264
|
-
return schemaHasEntity(nestedSchema);
|
|
265
|
-
}
|
|
266
|
-
return Object.values(nestedSchema).some(x => schemaHasEntity(x));
|
|
267
|
-
}
|
|
268
|
-
return false;
|
|
269
|
-
}
|
|
270
|
-
class Snapshot {
|
|
271
|
-
constructor(controller, state, fetchedAt = 0) {
|
|
272
|
-
this.state = void 0;
|
|
273
|
-
this.controller = void 0;
|
|
274
|
-
this.fetchedAt = void 0;
|
|
275
|
-
/*************** Data Access ***************/
|
|
276
|
-
/** @see https://resthooks.io/docs/api/Snapshot#getResponse */
|
|
277
|
-
this.getResponse = (endpoint, ...args) => {
|
|
278
|
-
return this.controller.getResponse(endpoint, ...args, this.state);
|
|
279
|
-
};
|
|
280
|
-
/** @see https://resthooks.io/docs/api/Snapshot#getError */
|
|
281
|
-
this.getError = (endpoint, ...args) => {
|
|
282
|
-
return this.controller.getError(endpoint, ...args, this.state);
|
|
283
|
-
};
|
|
284
|
-
this.state = state;
|
|
285
|
-
this.controller = controller;
|
|
286
|
-
this.fetchedAt = fetchedAt;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWFrRW50aXR5TWFwIiwiRXhwaXJ5U3RhdHVzIiwiZGVub3JtYWxpemVDYWNoZWQiLCJpc0VudGl0eSIsImluZmVyUmVzdWx0cyIsInZhbGlkYXRlSW5mZXJlbmNlIiwiY3JlYXRlSW52YWxpZGF0ZSIsImNyZWF0ZUludmFsaWRhdGVBbGwiLCJjcmVhdGVSZWNlaXZlIiwiY3JlYXRlUmVzZXQiLCJjcmVhdGVVbnN1YnNjcmlwdGlvbiIsImNyZWF0ZVN1YnNjcmlwdGlvbiIsImluaXRpYWxTdGF0ZSIsInNlbGVjdE1ldGEiLCJ1bnNldERpc3BhdGNoIiwiYWN0aW9uIiwiRXJyb3IiLCJ1bnNldFN0YXRlIiwiQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiZGlzcGF0Y2giLCJnZXRTdGF0ZSIsImdsb2JhbENhY2hlIiwiZW50aXRpZXMiLCJyZXN1bHRzIiwiaW52YWxpZGF0ZSIsImVuZHBvaW50IiwiYXJncyIsIlByb21pc2UiLCJyZXNvbHZlIiwiaW52YWxpZGF0ZUFsbCIsIm9wdGlvbnMiLCJrZXkiLCJ0ZXN0S2V5IiwicmVzZXRFbnRpcmVTdG9yZSIsInNldFJlc3BvbnNlIiwicmVzdCIsInJlc3BvbnNlIiwibGVuZ3RoIiwic2xpY2UiLCJyZWNlaXZlIiwic2V0RXJyb3IiLCJlcnJvciIsInJlY2VpdmVFcnJvciIsIm1ldGEiLCJzdWJzY3JpYmUiLCJ1bnN1YnNjcmliZSIsInNuYXBzaG90Iiwic3RhdGUiLCJmZXRjaGVkQXQiLCJTbmFwc2hvdCIsImdldEVycm9yIiwidW5kZWZpbmVkIiwiZXJyb3JQb2xpY3kiLCJnZXRSZXNwb25zZSIsImlzQWN0aXZlIiwiY2FjaGVSZXN1bHRzIiwic2NoZW1hIiwiZXhwaXJlc0F0IiwiaW52YWxpZFJlc3VsdHMiLCJpbmRleGVzIiwiZGF0YSIsImV4cGlyeVN0YXR1cyIsIlZhbGlkIiwiSW5maW5pdHkiLCJzY2hlbWFIYXNFbnRpdHkiLCJpbnZhbGlkYXRlZCIsIkludmFsaWQiLCJpbnZhbGlkSWZTdGFsZSIsIkludmFsaWRJZlN0YWxlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiQXJyYXkiLCJpc0FycmF5IiwicGF0aHMiLCJpbnZhbGlkRGVub3JtYWxpemUiLCJlbnRpdHlFeHBpcmVzQXQiLCJlbnRpdHlNZXRhIiwicGsiLCJfZW50aXR5TWV0YSRrZXkiLCJfZW50aXR5TWV0YSRrZXkkcGsiLCJlbnRpdHlFeHBpcnkiLCJuZXN0ZWRTY2hlbWEiLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb21lIiwieCIsImNvbnRyb2xsZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9CYXNlQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVycm9yVHlwZXMsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxuICBEZW5vcm1hbGl6ZUNhY2hlLFxuICBTY2hlbWEsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHtcbiAgV2Vha0VudGl0eU1hcCxcbiAgRXhwaXJ5U3RhdHVzLFxuICBFbmRwb2ludEludGVyZmFjZSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIFBhdGgsXG4gIGRlbm9ybWFsaXplQ2FjaGVkLFxuICBpc0VudGl0eSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5pbXBvcnQgeyBpbmZlclJlc3VsdHMsIHZhbGlkYXRlSW5mZXJlbmNlIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCBjcmVhdGVJbnZhbGlkYXRlIGZyb20gJy4vY3JlYXRlSW52YWxpZGF0ZS5qcyc7XG5pbXBvcnQgY3JlYXRlSW52YWxpZGF0ZUFsbCBmcm9tICcuL2NyZWF0ZUludmFsaWRhdGVBbGwuanMnO1xuaW1wb3J0IGNyZWF0ZVJlY2VpdmUgZnJvbSAnLi9jcmVhdGVSZWNlaXZlLmpzJztcbmltcG9ydCBjcmVhdGVSZXNldCBmcm9tICcuL2NyZWF0ZVJlc2V0LmpzJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVuc3Vic2NyaXB0aW9uLFxuICBjcmVhdGVTdWJzY3JpcHRpb24sXG59IGZyb20gJy4vY3JlYXRlU3Vic2NyaXB0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUvcmVkdWNlci9jcmVhdGVSZWR1Y2VyLmpzJztcbmltcG9ydCBzZWxlY3RNZXRhIGZyb20gJy4uL3N0YXRlL3NlbGVjdE1ldGEuanMnO1xuaW1wb3J0IHR5cGUge1xuICBBY3Rpb25UeXBlcyBhcyBCcm9hZEFjdGlvblR5cGVzLFxuICBDb21iaW5lZEFjdGlvblR5cGVzLFxuICBTdGF0ZSxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSBHZW5lcmljRGlzcGF0Y2ggPSAodmFsdWU6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCB0eXBlIENvbXBhdGlibGVEaXNwYXRjaCA9ICh2YWx1ZTogQ29tYmluZWRBY3Rpb25UeXBlcykgPT4gUHJvbWlzZTx2b2lkPjtcbnR5cGUgUHJldmlvdXNEaXNwYXRjaCA9ICh2YWx1ZTogQnJvYWRBY3Rpb25UeXBlcykgPT4gUHJvbWlzZTx2b2lkPjtcblxuaW50ZXJmYWNlIENvbnN0cnVjdG9yUHJvcHM8RCBleHRlbmRzIEdlbmVyaWNEaXNwYXRjaCA9IENvbXBhdGlibGVEaXNwYXRjaD4ge1xuICBkaXNwYXRjaD86IEQ7XG4gIGdldFN0YXRlPzogKCkgPT4gU3RhdGU8dW5rbm93bj47XG4gIGdsb2JhbENhY2hlPzogRGVub3JtYWxpemVDYWNoZTtcbn1cblxuY29uc3QgdW5zZXREaXNwYXRjaCA9IChhY3Rpb246IHVua25vd24pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBEaXNwYXRjaGluZyB3aGlsZSBjb25zdHJ1Y3RpbmcgeW91ciBtaWRkbGV3YXJlIGlzIG5vdCBhbGxvd2VkLiBgICtcbiAgICAgIGBPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guYCxcbiAgKTtcbn07XG5jb25zdCB1bnNldFN0YXRlID0gKCk6IFN0YXRlPHVua25vd24+ID0+IHtcbiAgLy8gVGhpcyBpcyBvbmx5IHRoZSB2YWx1ZSB1bnRpbCBpdCBpcyBzZXQgYnkgdGhlIENhY2hlUHJvdmlkZXJcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcbn07XG5cbi8qKlxuICogSW1wZXJhdGl2ZSBjb250cm9sIG9mIFJlc3QgSG9va3Mgc3RvcmVcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250cm9sbGVyPFxuICBEIGV4dGVuZHMgR2VuZXJpY0Rpc3BhdGNoID0gQ29tcGF0aWJsZURpc3BhdGNoLFxuPiB7XG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFuIGFjdGlvbiB0byBSZXN0IEhvb2tzIHJlZHVjZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNkaXNwYXRjaFxuICAgKi9cbiAgZGVjbGFyZSByZWFkb25seSBkaXNwYXRjaDogRDtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGxhdGVzdCBzdGF0ZSBzbmFwc2hvdCB0aGF0IGlzIGZ1bGx5IGNvbW1pdHRlZC5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBlcmF0aXZlIHVzZS1jYXNlcyBsaWtlIGV2ZW50IGhhbmRsZXJzLlxuICAgKiBUaGlzIHNob3VsZCAqbm90KiBiZSB1c2VkIHRvIHJlbmRlcjsgaW5zdGVhZCB1c2VTdXNwZW5zZSgpIG9yIHVzZUNhY2hlKClcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2dldFN0YXRlXG4gICAqL1xuICBkZWNsYXJlIHJlYWRvbmx5IGdldFN0YXRlOiAoKSA9PiBTdGF0ZTx1bmtub3duPjtcbiAgZGVjbGFyZSByZWFkb25seSBnbG9iYWxDYWNoZTogRGVub3JtYWxpemVDYWNoZTtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgZGlzcGF0Y2ggPSB1bnNldERpc3BhdGNoIGFzIGFueSxcbiAgICBnZXRTdGF0ZSA9IHVuc2V0U3RhdGUsXG4gICAgZ2xvYmFsQ2FjaGUgPSB7XG4gICAgICBlbnRpdGllczoge30sXG4gICAgICByZXN1bHRzOiB7fSxcbiAgICB9LFxuICB9OiBDb25zdHJ1Y3RvclByb3BzPEQ+ID0ge30pIHtcbiAgICB0aGlzLmRpc3BhdGNoID0gZGlzcGF0Y2g7XG4gICAgdGhpcy5nZXRTdGF0ZSA9IGdldFN0YXRlO1xuICAgIHRoaXMuZ2xvYmFsQ2FjaGUgPSBnbG9iYWxDYWNoZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKiogQWN0aW9uIERpc3BhdGNoZXJzICoqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRm9yY2VzIHJlZmV0Y2hpbmcgYW5kIHN1c3BlbnNlIG9uIHVzZVN1c3BlbnNlIHdpdGggdGhlIHNhbWUgRW5kcG9pbnQgYW5kIHBhcmFtZXRlcnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNpbnZhbGlkYXRlXG4gICAqL1xuICBpbnZhbGlkYXRlID0gPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsXG4gICAgICA/IHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgY3JlYXRlSW52YWxpZGF0ZShlbmRwb2ludCwge1xuICAgICAgICAgICAgYXJnczogYXJncyBhcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgIDogUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgLyoqXG4gICAqIEZvcmNlcyByZWZldGNoaW5nIGFuZCBzdXNwZW5zZSBvbiB1c2VTdXNwZW5zZSBvbiBhbGwgbWF0Y2hpbmcgZW5kcG9pbnQgcmVzdWx0IGtleXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNpbnZhbGlkYXRlQWxsXG4gICAqL1xuICBpbnZhbGlkYXRlQWxsID0gKG9wdGlvbnM6IHsgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuIH0pID0+XG4gICAgdGhpcy5kaXNwYXRjaChjcmVhdGVJbnZhbGlkYXRlQWxsKChrZXk6IHN0cmluZykgPT4gb3B0aW9ucy50ZXN0S2V5KGtleSkpKTtcblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBlbnRpcmUgUmVzdCBIb29rcyBjYWNoZS4gQWxsIGluZmxpZ2h0IHJlcXVlc3RzIHdpbGwgbm90IHJlc29sdmUuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNyZXNldEVudGlyZVN0b3JlXG4gICAqL1xuICByZXNldEVudGlyZVN0b3JlID0gKCk6IFByb21pc2U8dm9pZD4gPT4gdGhpcy5kaXNwYXRjaChjcmVhdGVSZXNldCgpKTtcblxuICAvKipcbiAgICogU3RvcmVzIHJlc3BvbnNlIGluIGNhY2hlIGZvciBnaXZlbiBFbmRwb2ludCBhbmQgYXJncy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldFxuICAgKi9cbiAgc2V0UmVzcG9uc2UgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBhbnldXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBSZXNvbHZlVHlwZTxFPiA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhY3Rpb24gPSBjcmVhdGVSZWNlaXZlKGVuZHBvaW50LCB7XG4gICAgICBhcmdzOiByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFPixcbiAgICAgIHJlc3BvbnNlLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGFjdGlvbik7XG4gIH07XG5cbiAgLy8gVE9ETzogZGVwcmVjYXRlXG4gIC8qKlxuICAgKiBBbm90aGVyIG5hbWUgZm9yIHNldFJlc3BvbnNlXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzZXRSZXNwb25zZVxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gcmVjZWl2ZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIGFueV1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5zZXRSZXNwb25zZShlbmRwb2ludCwgLi4ucmVzdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgcmVzdWx0IG9mIEVuZHBvaW50IGFuZCBhcmdzIGFzIHRoZSBlcnJvciBwcm92aWRlZC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldEVycm9yXG4gICAqL1xuICBzZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIEVycm9yXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXNwb25zZTogRXJyb3IgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYWN0aW9uID0gY3JlYXRlUmVjZWl2ZShlbmRwb2ludCwge1xuICAgICAgYXJnczogcmVzdC5zbGljZSgwLCByZXN0Lmxlbmd0aCAtIDEpIGFzIFBhcmFtZXRlcnM8RT4sXG4gICAgICByZXNwb25zZSxcbiAgICAgIGVycm9yOiB0cnVlLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGFjdGlvbik7XG4gIH07XG5cbiAgLy8gVE9ETzogZGVwcmVjYXRlXG4gIC8qKlxuICAgKiBBbm90aGVyIG5hbWUgZm9yIHNldEVycm9yXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzZXRFcnJvclxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gcmVjZWl2ZUVycm9yID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gICAgfSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5yZXN0OiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPiwgRXJyb3JdXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRoaXMuc2V0RXJyb3IoZW5kcG9pbnQsIC4uLnJlc3QpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbiBpbmZsaWdodCBmZXRjaC4gYGZldGNoZWRBdGAgc2hvdWxkIGBmZXRjaGAncyBgY3JlYXRlZEF0YFxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjcmVzb2x2ZVxuICAgKi9cbiAgcmVzb2x2ZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgbWV0YTpcbiAgICAgIHwge1xuICAgICAgICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICAgICAgICByZXNwb25zZTogRXJyb3I7XG4gICAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgICAgZXJyb3I6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICAgICAgICByZXNwb25zZTogYW55O1xuICAgICAgICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgICAgIGVycm9yPzogZmFsc2U7XG4gICAgICAgIH0sXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGNyZWF0ZVJlY2VpdmUoZW5kcG9pbnQsIG1ldGEgYXMgYW55KSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1hcmtzIGEgbmV3IHN1YnNjcmlwdGlvbiB0byBhIGdpdmVuIEVuZHBvaW50LlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc3Vic2NyaWJlXG4gICAqL1xuICBzdWJzY3JpYmUgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPFxuICAgICAgRmV0Y2hGdW5jdGlvbixcbiAgICAgIFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCB8IGZhbHNlXG4gICAgPixcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfCByZWFkb25seSBbbnVsbF1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PlxuICAgIGFyZ3NbMF0gIT09IG51bGxcbiAgICAgID8gdGhpcy5kaXNwYXRjaChcbiAgICAgICAgICBjcmVhdGVTdWJzY3JpcHRpb24oZW5kcG9pbnQsIHtcbiAgICAgICAgICAgIGFyZ3M6IGFyZ3MgYXMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8qKlxuICAgKiBNYXJrcyBjb21wbGV0aW9uIG9mIHN1YnNjcmlwdGlvbiB0byBhIGdpdmVuIEVuZHBvaW50LlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjdW5zdWJzY3JpYmVcbiAgICovXG4gIHVuc3Vic2NyaWJlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZTxcbiAgICAgIEZldGNoRnVuY3Rpb24sXG4gICAgICBTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQgfCBmYWxzZVxuICAgID4sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsXG4gICAgICA/IHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgY3JlYXRlVW5zdWJzY3JpcHRpb24oZW5kcG9pbnQsIHtcbiAgICAgICAgICAgIGFyZ3M6IGFyZ3MgYXMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8qKioqKioqKioqKioqKiogTW9yZSAqKioqKioqKioqKioqKiovXG5cbiAgLyogVE9ETzpcbiAgYWJvcnQgPSA8RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl1cbiAgKTogUHJvbWlzZTx2b2lkPlxuICAqL1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgc25hcHNob3QgKGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL1NuYXBzaG90KVxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc25hcHNob3RcbiAgICovXG4gIHNuYXBzaG90ID0gKHN0YXRlOiBTdGF0ZTx1bmtub3duPiwgZmV0Y2hlZEF0PzogbnVtYmVyKTogU25hcHNob3RJbnRlcmZhY2UgPT4ge1xuICAgIHJldHVybiBuZXcgU25hcHNob3QodGhpcywgc3RhdGUsIGZldGNoZWRBdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVycm9yLCBpZiBhbnksIGZvciBhIGdpdmVuIGVuZHBvaW50LiBSZXR1cm5zIHVuZGVmaW5lZCBmb3Igbm8gZXJyb3JzLlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZ2V0RXJyb3JcbiAgICovXG4gIGdldEVycm9yID0gPFxuICAgIEUgZXh0ZW5kcyBQaWNrPEVuZHBvaW50SW50ZXJmYWNlLCAna2V5Jz4sXG4gICAgQXJncyBleHRlbmRzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0gfCByZWFkb25seSBbbnVsbF0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogWy4uLkFyZ3MsIFN0YXRlPHVua25vd24+XVxuICApOiBFcnJvclR5cGVzIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAocmVzdFswXSA9PT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IHN0YXRlID0gcmVzdFtyZXN0Lmxlbmd0aCAtIDFdIGFzIFN0YXRlPHVua25vd24+O1xuICAgIC8vIHRoaXMgaXMgdHlwZXNjcmlwdCBnZW5lcmljcyBicmVha2luZ1xuICAgIGNvbnN0IGFyZ3M6IGFueSA9IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEVbJ2tleSddPjtcbiAgICBjb25zdCBrZXkgPSBlbmRwb2ludC5rZXkoLi4uYXJncyk7XG5cbiAgICBjb25zdCBtZXRhID0gc2VsZWN0TWV0YShzdGF0ZSwga2V5KTtcbiAgICBjb25zdCByZXN1bHRzID0gc3RhdGUucmVzdWx0c1trZXldO1xuXG4gICAgaWYgKHJlc3VsdHMgIT09IHVuZGVmaW5lZCAmJiBtZXRhPy5lcnJvclBvbGljeSA9PT0gJ3NvZnQnKSByZXR1cm47XG5cbiAgICByZXR1cm4gbWV0YT8uZXJyb3IgYXMgYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSAoZ2xvYmFsbHkgcmVmZXJlbnRpYWxseSBzdGFibGUpIHJlc3BvbnNlIGZvciBhIGdpdmVuIGVuZHBvaW50L2FyZ3MgcGFpciBmcm9tIHN0YXRlIGdpdmVuLlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZ2V0UmVzcG9uc2VcbiAgICovXG4gIGdldFJlc3BvbnNlID0gPFxuICAgIEUgZXh0ZW5kcyBQaWNrPEVuZHBvaW50SW50ZXJmYWNlLCAna2V5JyB8ICdzY2hlbWEnIHwgJ2ludmFsaWRJZlN0YWxlJz4sXG4gICAgQXJncyBleHRlbmRzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0gfCByZWFkb25seSBbbnVsbF0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogWy4uLkFyZ3MsIFN0YXRlPHVua25vd24+XVxuICApOiB7XG4gICAgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47XG4gICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXM7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH0gPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gcmVzdFtyZXN0Lmxlbmd0aCAtIDFdIGFzIFN0YXRlPHVua25vd24+O1xuICAgIC8vIHRoaXMgaXMgdHlwZXNjcmlwdCBnZW5lcmljcyBicmVha2luZ1xuICAgIGNvbnN0IGFyZ3M6IGFueSA9IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEVbJ2tleSddPjtcbiAgICBjb25zdCBpc0FjdGl2ZSA9IGFyZ3MubGVuZ3RoICE9PSAxIHx8IGFyZ3NbMF0gIT09IG51bGw7XG4gICAgY29uc3Qga2V5ID0gaXNBY3RpdmUgPyBlbmRwb2ludC5rZXkoLi4uYXJncykgOiAnJztcbiAgICBjb25zdCBjYWNoZVJlc3VsdHMgPSBpc0FjdGl2ZSA/IHN0YXRlLnJlc3VsdHNba2V5XSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzY2hlbWEgPSBlbmRwb2ludC5zY2hlbWE7XG4gICAgY29uc3QgbWV0YSA9IHNlbGVjdE1ldGEoc3RhdGUsIGtleSk7XG4gICAgbGV0IGV4cGlyZXNBdCA9IG1ldGE/LmV4cGlyZXNBdDtcblxuICAgIGxldCBpbnZhbGlkUmVzdWx0cyA9IGZhbHNlO1xuICAgIGxldCByZXN1bHRzO1xuICAgIGlmIChjYWNoZVJlc3VsdHMgPT09IHVuZGVmaW5lZCAmJiBlbmRwb2ludC5zY2hlbWEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0cyA9IGluZmVyUmVzdWx0cyhcbiAgICAgICAgZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgICBhcmdzLFxuICAgICAgICBzdGF0ZS5pbmRleGVzLFxuICAgICAgICBzdGF0ZS5lbnRpdGllcyxcbiAgICAgICk7XG4gICAgICBpbnZhbGlkUmVzdWx0cyA9ICF2YWxpZGF0ZUluZmVyZW5jZShyZXN1bHRzKTtcbiAgICAgIGlmICghZXhwaXJlc0F0ICYmIGludmFsaWRSZXN1bHRzKSBleHBpcmVzQXQgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRzID0gY2FjaGVSZXN1bHRzO1xuICAgIH1cblxuICAgIGlmICghaXNBY3RpdmUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IHJlc3VsdHMgYXMgYW55LFxuICAgICAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cy5WYWxpZCxcbiAgICAgICAgZXhwaXJlc0F0OiBJbmZpbml0eSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKCFlbmRwb2ludC5zY2hlbWEgfHwgIXNjaGVtYUhhc0VudGl0eShlbmRwb2ludC5zY2hlbWEpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiByZXN1bHRzLFxuICAgICAgICBleHBpcnlTdGF0dXM6IG1ldGE/LmludmFsaWRhdGVkXG4gICAgICAgICAgPyBFeHBpcnlTdGF0dXMuSW52YWxpZFxuICAgICAgICAgIDogY2FjaGVSZXN1bHRzICYmICFlbmRwb2ludC5pbnZhbGlkSWZTdGFsZVxuICAgICAgICAgID8gRXhwaXJ5U3RhdHVzLlZhbGlkXG4gICAgICAgICAgOiBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGUsXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlc0F0IHx8IDAsXG4gICAgICB9IGFzIHtcbiAgICAgICAgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47XG4gICAgICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgICAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gV2FybiB1c2VycyB3aXRoIGJhZCBjb25maWd1cmF0aW9uc1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgc2NoZW1hICYmIGlzRW50aXR5KHNjaGVtYSkpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZmV0Y2gga2V5ICR7a2V5fSBoYXMgbGlzdCByZXN1bHRzIHdoZW4gc2luZ2xlIHJlc3VsdCBpcyBleHBlY3RlZGAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHJlc3VsdHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZmV0Y2gga2V5ICR7a2V5fSBoYXMgb2JqZWN0IHJlc3VsdHMgd2hlbiBlbnRpdHkncyBwcmltYXJ5IGtleSAoc3RyaW5nKSByZXN1bHQgaXMgZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5nbG9iYWxDYWNoZS5yZXN1bHRzW2tleV0pXG4gICAgICB0aGlzLmdsb2JhbENhY2hlLnJlc3VsdHNba2V5XSA9IG5ldyBXZWFrRW50aXR5TWFwKCk7XG5cbiAgICAvLyBzZWNvbmQgYXJndW1lbnQgaXMgZmFsc2UgaWYgYW55IGVudGl0aWVzIGFyZSBtaXNzaW5nXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGNvbnN0IHsgZGF0YSwgcGF0aHMgfSA9IGRlbm9ybWFsaXplQ2FjaGVkKFxuICAgICAgcmVzdWx0cyxcbiAgICAgIHNjaGVtYSxcbiAgICAgIHN0YXRlLmVudGl0aWVzLFxuICAgICAgdGhpcy5nbG9iYWxDYWNoZS5lbnRpdGllcyxcbiAgICAgIHRoaXMuZ2xvYmFsQ2FjaGUucmVzdWx0c1trZXldLFxuICAgICAgYXJncyxcbiAgICApIGFzIHsgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47IHBhdGhzOiBQYXRoW10gfTtcbiAgICBjb25zdCBpbnZhbGlkRGVub3JtYWxpemUgPSB0eXBlb2YgZGF0YSA9PT0gJ3N5bWJvbCc7XG5cbiAgICAvLyBmYWxsYmFjayB0byBlbnRpdHkgZXhwaXJ5IHRpbWVcbiAgICBpZiAoIWV4cGlyZXNBdCkge1xuICAgICAgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJlc0F0KHBhdGhzLCBzdGF0ZS5lbnRpdHlNZXRhKTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2NvbmNlcHRzL2V4cGlyeS1wb2xpY3kjZXhwaXJ5LXN0YXR1c1xuICAgIC8vIHdlIGRvbid0IHRyYWNrIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhbGUgb3IgZnJlc2ggYmVjYXVzZSB0aGF0IGlzIHRpZWQgdG8gdHJpZ2dlcmluZ1xuICAgIC8vIGNvbmRpdGlvbnNcbiAgICBjb25zdCBleHBpcnlTdGF0dXMgPVxuICAgICAgbWV0YT8uaW52YWxpZGF0ZWQgfHwgKGludmFsaWREZW5vcm1hbGl6ZSAmJiAhbWV0YT8uZXJyb3IpXG4gICAgICAgID8gRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgICAgOiBpbnZhbGlkRGVub3JtYWxpemUgfHwgZW5kcG9pbnQuaW52YWxpZElmU3RhbGUgfHwgaW52YWxpZFJlc3VsdHNcbiAgICAgICAgPyBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGVcbiAgICAgICAgOiBFeHBpcnlTdGF0dXMuVmFsaWQ7XG5cbiAgICByZXR1cm4geyBkYXRhLCBleHBpcnlTdGF0dXMsIGV4cGlyZXNBdCB9O1xuICB9O1xufVxuXG4vLyBiZW5jaG1hcms6IGh0dHBzOi8vd3d3Lm1lYXN1cmV0aGF0Lm5ldC9CZW5jaG1hcmtzL1Nob3cvMjQ2OTEvMC9taW4tcmVkdWNlci12cy1pbXBlcmF0aXZlLXdpdGgtcGF0aHNcbi8vIGVhcmxpZXN0IGV4cGlyeSBkaWN0YXRlcyBhZ2VcbmZ1bmN0aW9uIGVudGl0eUV4cGlyZXNBdChcbiAgcGF0aHM6IFBhdGhbXSxcbiAgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjsgLy8gVGhpcyBpcyBvbmx5IHRoZSB2YWx1ZSB1bnRpbCBpdCBpcyBzZXQgYnkgdGhlIENhY2hlUHJvdmlkZXJcbiAgICAgIH07XG4gICAgfTtcbiAgfSxcbikge1xuICBsZXQgZXhwaXJlc0F0ID0gSW5maW5pdHk7XG4gIGZvciAoY29uc3QgeyBwaywga2V5IH0gb2YgcGF0aHMpIHtcbiAgICBjb25zdCBlbnRpdHlFeHBpcnkgPSBlbnRpdHlNZXRhW2tleV0/Lltwa10/LmV4cGlyZXNBdDtcbiAgICAvLyBleHBpcmVzQXQgd2lsbCBhbHdheXMgcmVzb2x2ZSB0byBmYWxzZSB3aXRoIGFueSBjb21wYXJpc29uXG4gICAgaWYgKGVudGl0eUV4cGlyeSA8IGV4cGlyZXNBdCkgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJ5O1xuICB9XG4gIHJldHVybiBleHBpcmVzQXQ7XG59XG5cbi8qKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgc2NoZW1hIGhhcyBhbnkgZW50aXRpZXMuXG4gKlxuICogV2l0aG91dCBlbnRpdGllcywgZGVub3JtYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQsIGFuZCByZXN1bHRzIHNob3VsZCBub3QgYmUgaW5mZXJyZWQuXG4gKi9cbmZ1bmN0aW9uIHNjaGVtYUhhc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IGJvb2xlYW4ge1xuICBpZiAoaXNFbnRpdHkoc2NoZW1hKSkgcmV0dXJuIHRydWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpXG4gICAgcmV0dXJuIHNjaGVtYS5sZW5ndGggIT09IDAgJiYgc2NoZW1hSGFzRW50aXR5KHNjaGVtYVswXSk7XG4gIGlmIChzY2hlbWEgJiYgKHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgY29uc3QgbmVzdGVkU2NoZW1hID1cbiAgICAgICdzY2hlbWEnIGluIHNjaGVtYSA/IChzY2hlbWEuc2NoZW1hIGFzIFJlY29yZDxzdHJpbmcsIFNjaGVtYT4pIDogc2NoZW1hO1xuICAgIGlmICh0eXBlb2YgbmVzdGVkU2NoZW1hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gc2NoZW1hSGFzRW50aXR5KG5lc3RlZFNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG5lc3RlZFNjaGVtYSkuc29tZSh4ID0+IHNjaGVtYUhhc0VudGl0eSh4KSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgdHlwZSB7IEVycm9yVHlwZXMgfTtcblxuY2xhc3MgU25hcHNob3Q8VCA9IHVua25vd24+IGltcGxlbWVudHMgU25hcHNob3RJbnRlcmZhY2Uge1xuICBwcml2YXRlIHN0YXRlOiBTdGF0ZTxUPjtcbiAgcHJpdmF0ZSBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihjb250cm9sbGVyOiBDb250cm9sbGVyLCBzdGF0ZTogU3RhdGU8VD4sIGZldGNoZWRBdCA9IDApIHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICB0aGlzLmZldGNoZWRBdCA9IGZldGNoZWRBdDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKiogRGF0YSBBY2Nlc3MgKioqKioqKioqKioqKioqL1xuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRSZXNwb25zZSAqL1xuICBnZXRSZXNwb25zZSA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleScgfCAnc2NoZW1hJyB8ICdpbnZhbGlkSWZTdGFsZSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9ID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFJlc3BvbnNlKGVuZHBvaW50LCAuLi5hcmdzLCB0aGlzLnN0YXRlKTtcbiAgfTtcblxuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRFcnJvciAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRFcnJvcihlbmRwb2ludCwgLi4uYXJncywgdGhpcy5zdGF0ZSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQU1BLFNBQ0VBLGFBQWEsRUFDYkMsWUFBWSxFQU1aQyxpQkFBaUIsRUFDakJDLFFBQVEsUUFDSCx3QkFBd0I7QUFDL0IsU0FBU0MsWUFBWSxFQUFFQyxpQkFBaUIsUUFBUSx3QkFBd0I7QUFFeEUsT0FBT0MsZ0JBQWdCLE1BQU0sdUJBQXVCO0FBQ3BELE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLE9BQU9DLFdBQVcsTUFBTSxrQkFBa0I7QUFDMUMsU0FDRUMsb0JBQW9CLEVB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createReceive.d.ts","sourceRoot":"","sources":["../../src/controller/createReceive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,CAAC,SAAS,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACpC,EAED,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE;IACP,IAAI,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC;CACb,GACA,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,CAAC,SAAS,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACpC,EAED,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE;IACP,IAAI,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACA,uBAAuB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { SET_TYPE } from '../actionTypes.js';
|
|
2
|
-
export default function createReceive(endpoint, {
|
|
3
|
-
args,
|
|
4
|
-
fetchedAt,
|
|
5
|
-
response,
|
|
6
|
-
error = false
|
|
7
|
-
}) {
|
|
8
|
-
var _endpoint$errorExpiry, _endpoint$dataExpiryL;
|
|
9
|
-
const expiryLength = error ? (_endpoint$errorExpiry = endpoint.errorExpiryLength) != null ? _endpoint$errorExpiry : 1000 : (_endpoint$dataExpiryL = endpoint.dataExpiryLength) != null ? _endpoint$dataExpiryL : 60000;
|
|
10
|
-
/* istanbul ignore next */
|
|
11
|
-
if (process.env.NODE_ENV === 'development' && expiryLength < 0) {
|
|
12
|
-
throw new Error('Negative expiry length are not allowed.');
|
|
13
|
-
}
|
|
14
|
-
const now = Date.now();
|
|
15
|
-
const meta = {
|
|
16
|
-
args,
|
|
17
|
-
fetchedAt: fetchedAt != null ? fetchedAt : now,
|
|
18
|
-
date: now,
|
|
19
|
-
expiresAt: now + expiryLength,
|
|
20
|
-
// For legacy support; TODO: remove
|
|
21
|
-
schema: endpoint.schema,
|
|
22
|
-
key: endpoint.key(...args)
|
|
23
|
-
};
|
|
24
|
-
// For legacy support; TODO: remove
|
|
25
|
-
if (endpoint.update) meta.update = endpoint.update;
|
|
26
|
-
if (endpoint.errorPolicy) meta.errorPolicy = endpoint.errorPolicy;
|
|
27
|
-
const action = {
|
|
28
|
-
type: SET_TYPE,
|
|
29
|
-
payload: response,
|
|
30
|
-
endpoint: endpoint,
|
|
31
|
-
meta
|
|
32
|
-
};
|
|
33
|
-
if (error) action.error = true;
|
|
34
|
-
return action;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfVFlQRSIsImNyZWF0ZVJlY2VpdmUiLCJlbmRwb2ludCIsImFyZ3MiLCJmZXRjaGVkQXQiLCJyZXNwb25zZSIsImVycm9yIiwiX2VuZHBvaW50JGVycm9yRXhwaXJ5IiwiX2VuZHBvaW50JGRhdGFFeHBpcnlMIiwiZXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiRXJyb3IiLCJub3ciLCJEYXRlIiwibWV0YSIsImRhdGUiLCJleHBpcmVzQXQiLCJzY2hlbWEiLCJrZXkiLCJ1cGRhdGUiLCJlcnJvclBvbGljeSIsImFjdGlvbiIsInR5cGUiLCJwYXlsb2FkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvY3JlYXRlUmVjZWl2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50SW50ZXJmYWNlLCBSZXNvbHZlVHlwZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBTRVRfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tcGF0aWJsZVJlY2VpdmVBY3Rpb24sXG4gIENvbXBhdGlibGVSZWNlaXZlTWV0YSxcbn0gZnJvbSAnLi4vY29tcGF0aWJsZUFjdGlvbnMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVSZWNlaXZlPFxuICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgfSxcbj4oXG4gIGVuZHBvaW50OiBFLFxuICBvcHRpb25zOiB7XG4gICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgIHJlc3BvbnNlOiBFcnJvcjtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I6IHRydWU7XG4gIH0sXG4pOiBDb21wYXRpYmxlUmVjZWl2ZUFjdGlvbjxFPjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVjZWl2ZTxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAgb3B0aW9uczoge1xuICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICByZXNwb25zZTogUmVzb2x2ZVR5cGU8RT47XG4gICAgZmV0Y2hlZEF0PzogbnVtYmVyO1xuICAgIGVycm9yPzogZmFsc2U7XG4gIH0sXG4pOiBDb21wYXRpYmxlUmVjZWl2ZUFjdGlvbjxFPjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVjZWl2ZTxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0LFxuICAgIHJlc3BvbnNlLFxuICAgIGVycm9yID0gZmFsc2UsXG4gIH06IHtcbiAgICBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl07XG4gICAgcmVzcG9uc2U6IGFueTtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I/OiBib29sZWFuO1xuICB9LFxuKTogQ29tcGF0aWJsZVJlY2VpdmVBY3Rpb248RT4ge1xuICBjb25zdCBleHBpcnlMZW5ndGg6IG51bWJlciA9IGVycm9yXG4gICAgPyBlbmRwb2ludC5lcnJvckV4cGlyeUxlbmd0aCA/PyAxMDAwXG4gICAgOiBlbmRwb2ludC5kYXRhRXhwaXJ5TGVuZ3RoID8/IDYwMDAwO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgZXhwaXJ5TGVuZ3RoIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTmVnYXRpdmUgZXhwaXJ5IGxlbmd0aCBhcmUgbm90IGFsbG93ZWQuJyk7XG4gIH1cbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgbWV0YTogQ29tcGF0aWJsZVJlY2VpdmVNZXRhID0ge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0OiBmZXRjaGVkQXQgPz8gbm93LFxuICAgIGRhdGU6IG5vdyxcbiAgICBleHBpcmVzQXQ6IG5vdyArIGV4cGlyeUxlbmd0aCxcbiAgICAvLyBGb3IgbGVnYWN5IHN1cHBvcnQ7IFRPRE86IHJlbW92ZVxuICAgIHNjaGVtYTogZW5kcG9pbnQuc2NoZW1hLFxuICAgIGtleTogZW5kcG9pbnQua2V5KC4uLmFyZ3MpLFxuICB9O1xuICAvLyBGb3IgbGVnYWN5IHN1cHBvcnQ7IFRPRE86IHJlbW92ZVxuICBpZiAoZW5kcG9pbnQudXBkYXRlKSBtZXRhLnVwZGF0ZSA9IGVuZHBvaW50LnVwZGF0ZTtcbiAgaWYgKGVuZHBvaW50LmVycm9yUG9saWN5KSBtZXRhLmVycm9yUG9saWN5ID0gZW5kcG9pbnQuZXJyb3JQb2xpY3k7XG5cbiAgY29uc3QgYWN0aW9uOiBDb21wYXRpYmxlUmVjZWl2ZUFjdGlvbjxFPiA9IHtcbiAgICB0eXBlOiBTRVRfVFlQRSxcbiAgICBwYXlsb2FkOiByZXNwb25zZSxcbiAgICBlbmRwb2ludDogZW5kcG9pbnQsXG4gICAgbWV0YSxcbiAgfTtcbiAgaWYgKGVycm9yKSAoYWN0aW9uIGFzIGFueSkuZXJyb3IgPSB0cnVlO1xuICByZXR1cm4gYWN0aW9uO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxRQUFRLFFBQVEsbUJBQW1CO0FBa0M1QyxlQUFlLFNBQVNDLGFBQWFBLENBS25DQyxRQUFXLEVBQ1g7RUFDRUMsSUFBSTtFQUNKQyxTQUFTO0VBQ1RDLFFBQVE7RUFDUkMsS0FBSyxHQUFHO0FBTVYsQ0FBQyxFQUMyQjtFQUFBLElBQUFDLHFCQUFBLEVBQUFDLHFCQUFBO0VBQzVCLE1BQU1DLFlBQW9CLEdBQUdILEtBQUssSUFBQUMscUJBQUEsR0FDOUJMLFFBQVEsQ0FBQ1EsaUJBQWlCLFlBQUFILHFCQUFBLEdBQUksSUFBSSxJQUFBQyxxQkFBQSxHQUNsQ04sUUFBUSxDQUFDUyxnQkFBZ0IsWUFBQUgscUJBQUEsR0FBSSxLQUFLO0VBQ3RDO0VBQ0EsSUFBSUksT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxhQUFhLElBQUlMLFlBQVksR0FBRyxDQUFDLEVBQUU7SUFDOUQsTUFBTSxJQUFJTSxLQUFLLENBQUMseUNBQXlDLENBQUM7RUFDNUQ7RUFDQSxNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0QsR0FBRyxDQUFDLENBQUM7RUFDdEIsTUFBTUUsSUFBMkIsR0FBRztJQUNsQ2YsSUFBSTtJQUNKQyxTQUFTLEVBQUVBLFNBQVMsV0FBVEEsU0FBUyxHQUFJWSxHQUFHO0lBQzNCRyxJQUFJLEVBQUVILEdBQUc7SUFDVEksU0FBUyxFQUFFSixHQUFHLEdBQUdQLFlBQVk7SUFDN0I7SUFDQVksTUFBTSxFQUFFbkIsUUFBUSxDQUFDbUIsTUFBTTtJQUN2QkMsR0FBRyxFQUFFcEIsUUFBUSxDQUFDb0IsR0FBRyxDQUFDLEdBQUduQixJQUFJO0VBQzNCLENBQUM7RUFDRDtFQUNBLElBQUlELFFBQVEsQ0FBQ3FCLE1BQU0sRUFBRUwsSUFBSSxDQUFDSyxNQUFNLEdBQUdyQixRQUFRLENBQUNxQixNQUFNO0VBQ2xELElBQUlyQixRQUFRLENBQUNzQixXQUFXLEVBQUVOLElBQUksQ0FBQ00sV0FBVyxHQUFHdEIsUUFBUSxDQUFDc0IsV0FBVztFQUVqRSxNQUFNQyxNQUFrQyxHQUFHO0lBQ3pDQyxJQUFJLEVBQUUxQixRQUFRO0lBQ2QyQixPQUFPLEVBQUV0QixRQUFRO0lBQ2pCSCxRQUFRLEVBQUVBLFFBQVE7SUFDbEJnQjtFQUNGLENBQUM7RUFDRCxJQUFJWixLQUFLLEVBQUdtQixNQUFNLENBQVNuQixLQUFLLEdBQUcsSUFBSTtFQUN2QyxPQUFPbUIsTUFBTTtBQUNmIn0=
|
package/lib/endpoint/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/lib/endpoint/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHtcbiAgRmV0Y2hTaGFwZSxcbiAgUmVhZFNoYXBlLFxuICBNdXRhdGVTaGFwZSxcbiAgRGVsZXRlU2hhcGUsXG59IGZyb20gJy4vc2hhcGVzLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgU2V0U2hhcGVQYXJhbXMsXG4gIFBhcmFtc0Zyb21TaGFwZSxcbiAgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtcyxcbiAgU2NoZW1hRnJvbVNoYXBlLFxuICBCb2R5RnJvbVNoYXBlLFxuICBSZXR1cm5Gcm9tU2hhcGUsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuIl0sIm1hcHBpbmdzIjoiIn0=
|
package/lib/endpoint/shapes.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Schema, EndpointExtraOptions as FetchOptions } from '@data-client/normalizr';
|
|
2
|
-
/** Defines the shape of a network request */
|
|
3
|
-
export interface FetchShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Body extends Readonly<object | string> | void | unknown = Readonly<object | string> | undefined, Response = any> {
|
|
4
|
-
readonly type: 'read' | 'mutate' | 'delete';
|
|
5
|
-
fetch(params: Params, body?: Body): Promise<Response>;
|
|
6
|
-
getFetchKey(params: Params): string;
|
|
7
|
-
readonly schema: S;
|
|
8
|
-
readonly options?: FetchOptions;
|
|
9
|
-
}
|
|
10
|
-
/** To change values on the server */
|
|
11
|
-
export interface MutateShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Body extends Readonly<object | string> | void | unknown = Readonly<object | string> | undefined, Response extends object | string | number | boolean | null = any> extends FetchShape<S, Params, Body, Response> {
|
|
12
|
-
readonly type: 'mutate';
|
|
13
|
-
fetch(params: Params, body: Body): Promise<Response>;
|
|
14
|
-
}
|
|
15
|
-
/** Removes entities */
|
|
16
|
-
export interface DeleteShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Response extends object | string | number | boolean | null = any> extends FetchShape<S, Params, undefined, Response> {
|
|
17
|
-
readonly type: 'mutate';
|
|
18
|
-
fetch(params: Params, ...args: any): Promise<Response>;
|
|
19
|
-
}
|
|
20
|
-
/** For retrieval requests */
|
|
21
|
-
export interface ReadShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Response extends object | string | number | boolean | null = any> extends FetchShape<S, Params, undefined, Response> {
|
|
22
|
-
readonly type: 'read';
|
|
23
|
-
fetch(params: Params): Promise<Response>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=shapes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../src/endpoint/shapes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,oBAAoB,IAAI,YAAY,EACrC,MAAM,wBAAwB,CAAC;AAEhC,6CAA6C;AAC7C,MAAM,WAAW,UAAU,CACzB,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,IAAI,SAAS,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,OAAO,GACnD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GACzB,SAAS,EACb,QAAQ,GAAG,GAAG;IAEd,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;CACjC;AAED,qCAAqC;AACrC,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,IAAI,SAAS,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,OAAO,GACnD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GACzB,SAAS,EACb,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAChE,SAAQ,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtD;AAED,uBAAuB;AACvB,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAChE,SAAQ,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxD;AAED,6BAA6B;AAC7B,MAAM,WAAW,SAAS,CACxB,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAChE,SAAQ,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1C"}
|
package/lib/endpoint/shapes.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L3NoYXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTY2hlbWEsXG4gIEVuZHBvaW50RXh0cmFPcHRpb25zIGFzIEZldGNoT3B0aW9ucyxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbi8qKiBEZWZpbmVzIHRoZSBzaGFwZSBvZiBhIG5ldHdvcmsgcmVxdWVzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBGZXRjaFNoYXBlPFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+ID0gUmVhZG9ubHk8b2JqZWN0PixcbiAgQm9keSBleHRlbmRzIFJlYWRvbmx5PG9iamVjdCB8IHN0cmluZz4gfCB2b2lkIHwgdW5rbm93biA9XG4gICAgfCBSZWFkb25seTxvYmplY3QgfCBzdHJpbmc+XG4gICAgfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlID0gYW55LFxuPiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdyZWFkJyB8ICdtdXRhdGUnIHwgJ2RlbGV0ZSc7XG4gIGZldGNoKHBhcmFtczogUGFyYW1zLCBib2R5PzogQm9keSk6IFByb21pc2U8UmVzcG9uc2U+O1xuICBnZXRGZXRjaEtleShwYXJhbXM6IFBhcmFtcyk6IHN0cmluZztcbiAgcmVhZG9ubHkgc2NoZW1hOiBTO1xuICByZWFkb25seSBvcHRpb25zPzogRmV0Y2hPcHRpb25zO1xufVxuXG4vKiogVG8gY2hhbmdlIHZhbHVlcyBvbiB0aGUgc2VydmVyICovXG5leHBvcnQgaW50ZXJmYWNlIE11dGF0ZVNoYXBlPFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+ID0gUmVhZG9ubHk8b2JqZWN0PixcbiAgQm9keSBleHRlbmRzIFJlYWRvbmx5PG9iamVjdCB8IHN0cmluZz4gfCB2b2lkIHwgdW5rbm93biA9XG4gICAgfCBSZWFkb25seTxvYmplY3QgfCBzdHJpbmc+XG4gICAgfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgPSBhbnksXG4+IGV4dGVuZHMgRmV0Y2hTaGFwZTxTLCBQYXJhbXMsIEJvZHksIFJlc3BvbnNlPiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdtdXRhdGUnO1xuICBmZXRjaChwYXJhbXM6IFBhcmFtcywgYm9keTogQm9keSk6IFByb21pc2U8UmVzcG9uc2U+O1xufVxuXG4vKiogUmVtb3ZlcyBlbnRpdGllcyAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxldGVTaGFwZTxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgUGFyYW1zIGV4dGVuZHMgUmVhZG9ubHk8b2JqZWN0PiA9IFJlYWRvbmx5PG9iamVjdD4sXG4gIFJlc3BvbnNlIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgPSBhbnksXG4+IGV4dGVuZHMgRmV0Y2hTaGFwZTxTLCBQYXJhbXMsIHVuZGVmaW5lZCwgUmVzcG9uc2U+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ211dGF0ZSc7XG4gIGZldGNoKHBhcmFtczogUGFyYW1zLCAuLi5hcmdzOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlPjtcbn1cblxuLyoqIEZvciByZXRyaWV2YWwgcmVxdWVzdHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZFNoYXBlPFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+ID0gUmVhZG9ubHk8b2JqZWN0PixcbiAgUmVzcG9uc2UgZXh0ZW5kcyBvYmplY3QgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCA9IGFueSxcbj4gZXh0ZW5kcyBGZXRjaFNoYXBlPFMsIFBhcmFtcywgdW5kZWZpbmVkLCBSZXNwb25zZT4ge1xuICByZWFkb25seSB0eXBlOiAncmVhZCc7XG4gIGZldGNoKHBhcmFtczogUGFyYW1zKTogUHJvbWlzZTxSZXNwb25zZT47XG59XG4iXSwibWFwcGluZ3MiOiIifQ==
|
package/lib/endpoint/types.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Schema } from '@data-client/normalizr';
|
|
2
|
-
import type { Denormalize } from '@data-client/normalizr';
|
|
3
|
-
import { FetchShape } from './shapes.js';
|
|
4
|
-
import { UpdateFunction } from '../types.js';
|
|
5
|
-
export type ResultShape<RS> = RS extends {
|
|
6
|
-
schema: infer U;
|
|
7
|
-
} ? U : never;
|
|
8
|
-
export type SelectReturn<RS> = RS extends {
|
|
9
|
-
select: (...args: any[]) => infer U;
|
|
10
|
-
} ? U : never;
|
|
11
|
-
export type AlwaysSelect<RS> = NonNullable<SelectReturn<RS>>;
|
|
12
|
-
export type ParamArg<RS> = RS extends {
|
|
13
|
-
getFetchKey: (params: infer U) => any;
|
|
14
|
-
} ? U : never;
|
|
15
|
-
export type BodyArg<RS> = RS extends {
|
|
16
|
-
fetch: (url: any, body: infer U) => any;
|
|
17
|
-
} ? U : never;
|
|
18
|
-
/** Sets a FetchShape's Param type.
|
|
19
|
-
* Useful to constrain acceptable params (second arg) in hooks like useResource().
|
|
20
|
-
*
|
|
21
|
-
* @param [Shape] FetchShape to act upon
|
|
22
|
-
* @param [Params] what to set the Params to
|
|
23
|
-
*/
|
|
24
|
-
export type SetShapeParams<Shape extends FetchShape<any, any, any>, Params extends Readonly<object>> = {
|
|
25
|
-
[K in keyof Shape]: Shape[K];
|
|
26
|
-
} & (Shape['fetch'] extends (first: any, ...rest: infer Args) => infer Return ? {
|
|
27
|
-
fetch: (first: Params, ...rest: Args) => Return;
|
|
28
|
-
} : never);
|
|
29
|
-
/** Get the Params type for a given Shape */
|
|
30
|
-
export type ParamsFromShape<S> = S extends {
|
|
31
|
-
fetch: (first: infer A, ...rest: any) => any;
|
|
32
|
-
} ? A : S extends {
|
|
33
|
-
getFetchKey: (first: infer A, ...rest: any) => any;
|
|
34
|
-
} ? A : never;
|
|
35
|
-
/** Get the Schema type for a given Shape */
|
|
36
|
-
export type SchemaFromShape<F extends FetchShape<Schema | undefined, any, any>> = F['schema'];
|
|
37
|
-
/** Get the Body type for a given Shape */
|
|
38
|
-
export type BodyFromShape<F extends FetchShape<any, any, any>> = Parameters<F['fetch']>[1];
|
|
39
|
-
export type OptimisticUpdateParams<SourceSchema extends Schema | undefined, DestShape extends FetchShape<any, any, any>> = [
|
|
40
|
-
DestShape,
|
|
41
|
-
ParamsFromShape<DestShape>,
|
|
42
|
-
UpdateFunction<SourceSchema, SchemaFromShape<DestShape>>
|
|
43
|
-
];
|
|
44
|
-
export type ReturnFromShape<S extends FetchShape<any, any, any>> = ReturnType<S['fetch']> extends unknown ? Promise<Denormalize<S['schema']>> : ReturnType<S['fetch']>;
|
|
45
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/endpoint/types.ts"],"names":[],"mappings":"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"}
|
package/lib/endpoint/types.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBGZXRjaFNoYXBlIH0gZnJvbSAnLi9zaGFwZXMuanMnO1xuaW1wb3J0IHsgVXBkYXRlRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdFNoYXBlPFJTPiA9IFJTIGV4dGVuZHMgeyBzY2hlbWE6IGluZmVyIFUgfSA/IFUgOiBuZXZlcjtcbmV4cG9ydCB0eXBlIFNlbGVjdFJldHVybjxSUz4gPSBSUyBleHRlbmRzIHtcbiAgc2VsZWN0OiAoLi4uYXJnczogYW55W10pID0+IGluZmVyIFU7XG59XG4gID8gVVxuICA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgQWx3YXlzU2VsZWN0PFJTPiA9IE5vbk51bGxhYmxlPFNlbGVjdFJldHVybjxSUz4+O1xuZXhwb3J0IHR5cGUgUGFyYW1Bcmc8UlM+ID0gUlMgZXh0ZW5kcyB7XG4gIGdldEZldGNoS2V5OiAocGFyYW1zOiBpbmZlciBVKSA9PiBhbnk7XG59XG4gID8gVVxuICA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgQm9keUFyZzxSUz4gPSBSUyBleHRlbmRzIHtcbiAgZmV0Y2g6ICh1cmw6IGFueSwgYm9keTogaW5mZXIgVSkgPT4gYW55O1xufVxuICA/IFVcbiAgOiBuZXZlcjtcblxuLyoqIFNldHMgYSBGZXRjaFNoYXBlJ3MgUGFyYW0gdHlwZS5cbiAqIFVzZWZ1bCB0byBjb25zdHJhaW4gYWNjZXB0YWJsZSBwYXJhbXMgKHNlY29uZCBhcmcpIGluIGhvb2tzIGxpa2UgdXNlUmVzb3VyY2UoKS5cbiAqXG4gKiBAcGFyYW0gW1NoYXBlXSBGZXRjaFNoYXBlIHRvIGFjdCB1cG9uXG4gKiBAcGFyYW0gW1BhcmFtc10gd2hhdCB0byBzZXQgdGhlIFBhcmFtcyB0b1xuICovXG5leHBvcnQgdHlwZSBTZXRTaGFwZVBhcmFtczxcbiAgU2hhcGUgZXh0ZW5kcyBGZXRjaFNoYXBlPGFueSwgYW55LCBhbnk+LFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+LFxuPiA9IHtcbiAgW0sgaW4ga2V5b2YgU2hhcGVdOiBTaGFwZVtLXTtcbn0gJiAoU2hhcGVbJ2ZldGNoJ10gZXh0ZW5kcyAoZmlyc3Q6IGFueSwgLi4ucmVzdDogaW5mZXIgQXJncykgPT4gaW5mZXIgUmV0dXJuXG4gID8geyBmZXRjaDogKGZpcnN0OiBQYXJhbXMsIC4uLnJlc3Q6IEFyZ3MpID0+IFJldHVybiB9XG4gIDogbmV2ZXIpO1xuXG4vKiogR2V0IHRoZSBQYXJhbXMgdHlwZSBmb3IgYSBnaXZlbiBTaGFwZSAqL1xuZXhwb3J0IHR5cGUgUGFyYW1zRnJvbVNoYXBlPFM+ID0gUyBleHRlbmRzIHtcbiAgZmV0Y2g6IChmaXJzdDogaW5mZXIgQSwgLi4ucmVzdDogYW55KSA9PiBhbnk7XG59XG4gID8gQVxuICA6IFMgZXh0ZW5kcyB7IGdldEZldGNoS2V5OiAoZmlyc3Q6IGluZmVyIEEsIC4uLnJlc3Q6IGFueSkgPT4gYW55IH1cbiAgPyBBXG4gIDogbmV2ZXI7XG5cbi8qKiBHZXQgdGhlIFNjaGVtYSB0eXBlIGZvciBhIGdpdmVuIFNoYXBlICovXG5leHBvcnQgdHlwZSBTY2hlbWFGcm9tU2hhcGU8XG4gIEYgZXh0ZW5kcyBGZXRjaFNoYXBlPFNjaGVtYSB8IHVuZGVmaW5lZCwgYW55LCBhbnk+LFxuPiA9IEZbJ3NjaGVtYSddO1xuXG4vKiogR2V0IHRoZSBCb2R5IHR5cGUgZm9yIGEgZ2l2ZW4gU2hhcGUgKi9cbmV4cG9ydCB0eXBlIEJvZHlGcm9tU2hhcGU8RiBleHRlbmRzIEZldGNoU2hhcGU8YW55LCBhbnksIGFueT4+ID0gUGFyYW1ldGVyczxcbiAgRlsnZmV0Y2gnXVxuPlsxXTtcblxuZXhwb3J0IHR5cGUgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtczxcbiAgU291cmNlU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBEZXN0U2hhcGUgZXh0ZW5kcyBGZXRjaFNoYXBlPGFueSwgYW55LCBhbnk+LFxuPiA9IFtcbiAgRGVzdFNoYXBlLFxuICBQYXJhbXNGcm9tU2hhcGU8RGVzdFNoYXBlPixcbiAgVXBkYXRlRnVuY3Rpb248U291cmNlU2NoZW1hLCBTY2hlbWFGcm9tU2hhcGU8RGVzdFNoYXBlPj4sXG5dO1xuXG5leHBvcnQgdHlwZSBSZXR1cm5Gcm9tU2hhcGU8UyBleHRlbmRzIEZldGNoU2hhcGU8YW55LCBhbnksIGFueT4+ID0gUmV0dXJuVHlwZTxcbiAgU1snZmV0Y2gnXVxuPiBleHRlbmRzIHVua25vd25cbiAgPyBQcm9taXNlPERlbm9ybWFsaXplPFNbJ3NjaGVtYSddPj5cbiAgOiBSZXR1cm5UeXBlPFNbJ2ZldGNoJ10+O1xuIl0sIm1hcHBpbmdzIjoiIn0=
|
package/lib/legacyActions.d.ts
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import type { UpdateFunction, Schema, EndpointExtraOptions, EndpointInterface } from '@data-client/normalizr';
|
|
2
|
-
import { FSAWithPayloadAndMeta, FSAWithMeta } from 'flux-standard-action';
|
|
3
|
-
import { RECEIVE_TYPE, RESET_TYPE, FETCH_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE, INVALIDATE_TYPE, GC_TYPE, OPTIMISTIC_TYPE } from './actionTypes.js';
|
|
4
|
-
import type { EndpointUpdateFunction } from './controller/types.js';
|
|
5
|
-
import { FetchShape } from './endpoint/index.js';
|
|
6
|
-
import { ErrorableFSAWithPayloadAndMeta } from './fsa.js';
|
|
7
|
-
export interface ReceiveMeta<S extends Schema | undefined> {
|
|
8
|
-
schema?: S;
|
|
9
|
-
key: string;
|
|
10
|
-
args?: readonly any[];
|
|
11
|
-
updaters?: Record<string, UpdateFunction<S, any>>;
|
|
12
|
-
update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
|
|
13
|
-
fetchedAt?: number;
|
|
14
|
-
date: number;
|
|
15
|
-
expiresAt: number;
|
|
16
|
-
errorPolicy?: (error: any) => 'hard' | 'soft' | undefined;
|
|
17
|
-
}
|
|
18
|
-
export type ReceiveAction<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> = ErrorableFSAWithPayloadAndMeta<typeof RECEIVE_TYPE, Payload, ReceiveMeta<S>>;
|
|
19
|
-
export type OptimisticAction<E extends EndpointInterface & {
|
|
20
|
-
update?: EndpointUpdateFunction<E>;
|
|
21
|
-
} = EndpointInterface & {
|
|
22
|
-
update?: EndpointUpdateFunction<EndpointInterface>;
|
|
23
|
-
}> = {
|
|
24
|
-
type: typeof OPTIMISTIC_TYPE;
|
|
25
|
-
meta: {
|
|
26
|
-
schema: E['schema'];
|
|
27
|
-
key: string;
|
|
28
|
-
args: readonly any[];
|
|
29
|
-
update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
|
|
30
|
-
fetchedAt: number;
|
|
31
|
-
date: number;
|
|
32
|
-
expiresAt: number;
|
|
33
|
-
errorPolicy?: (error: any) => 'hard' | 'soft' | undefined;
|
|
34
|
-
};
|
|
35
|
-
endpoint: E;
|
|
36
|
-
error?: undefined;
|
|
37
|
-
};
|
|
38
|
-
export interface ResetAction {
|
|
39
|
-
type: typeof RESET_TYPE;
|
|
40
|
-
date: number | Date;
|
|
41
|
-
}
|
|
42
|
-
interface FetchMeta<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> {
|
|
43
|
-
type: FetchShape<any, any>['type'];
|
|
44
|
-
schema?: S;
|
|
45
|
-
key: string;
|
|
46
|
-
args?: readonly any[];
|
|
47
|
-
updaters?: Record<string, UpdateFunction<S, any>>;
|
|
48
|
-
update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
|
|
49
|
-
options?: EndpointExtraOptions;
|
|
50
|
-
throttle: boolean;
|
|
51
|
-
resolve: (value?: any | PromiseLike<any>) => void;
|
|
52
|
-
reject: (reason?: any) => void;
|
|
53
|
-
promise: PromiseLike<any>;
|
|
54
|
-
createdAt: number | Date;
|
|
55
|
-
optimisticResponse?: Payload;
|
|
56
|
-
nm?: boolean;
|
|
57
|
-
}
|
|
58
|
-
export interface FetchAction<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> extends FSAWithPayloadAndMeta<typeof FETCH_TYPE, () => Promise<Payload>, FetchMeta<any, any>> {
|
|
59
|
-
meta: FetchMeta<Payload, S>;
|
|
60
|
-
endpoint?: undefined;
|
|
61
|
-
}
|
|
62
|
-
export interface SubscribeAction extends FSAWithMeta<typeof SUBSCRIBE_TYPE, undefined, any> {
|
|
63
|
-
meta: {
|
|
64
|
-
args?: readonly any[];
|
|
65
|
-
schema: Schema | undefined;
|
|
66
|
-
fetch: () => Promise<any>;
|
|
67
|
-
key: string;
|
|
68
|
-
options: EndpointExtraOptions | undefined;
|
|
69
|
-
};
|
|
70
|
-
endpoint?: undefined;
|
|
71
|
-
}
|
|
72
|
-
export interface UnsubscribeAction extends FSAWithMeta<typeof UNSUBSCRIBE_TYPE, undefined, any> {
|
|
73
|
-
meta: {
|
|
74
|
-
args?: readonly any[];
|
|
75
|
-
key: string;
|
|
76
|
-
options: EndpointExtraOptions | undefined;
|
|
77
|
-
};
|
|
78
|
-
endpoint?: undefined;
|
|
79
|
-
}
|
|
80
|
-
export interface InvalidateAction extends FSAWithMeta<typeof INVALIDATE_TYPE, undefined, any> {
|
|
81
|
-
meta: {
|
|
82
|
-
key: string;
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
export interface GCAction {
|
|
86
|
-
type: typeof GC_TYPE;
|
|
87
|
-
entities: [string, string][];
|
|
88
|
-
results: string[];
|
|
89
|
-
}
|
|
90
|
-
export type ActionTypes = FetchAction | OptimisticAction | ReceiveAction | SubscribeAction | UnsubscribeAction | InvalidateAction | ResetAction | GCAction;
|
|
91
|
-
export {};
|
|
92
|
-
//# sourceMappingURL=legacyActions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"legacyActions.d.ts","sourceRoot":"","sources":["../src/legacyActions.ts"],"names":[],"mappings":"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"}
|