@data-client/core 0.4.2 → 0.8.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/data_client_logo_and_text.svg +50 -0
- package/dist/index.js +66 -92
- package/dist/index.umd.min.js +1 -1
- package/dist/next.js +0 -447
- package/legacy/actionTypes.js +11 -13
- package/legacy/actions.js +2 -0
- package/legacy/controller/Controller.js +26 -42
- package/legacy/controller/createSet.js +3 -2
- package/legacy/controller/ensurePojo.js +7 -0
- package/legacy/index.js +2 -2
- package/legacy/internal.js +2 -2
- package/legacy/manager/DevtoolsManager.js +3 -3
- package/legacy/manager/NetworkManager.js +11 -11
- package/legacy/manager/SubscriptionManager.js +6 -6
- package/legacy/manager/applyManager.js +2 -9
- package/legacy/middlewareTypes.js +1 -1
- package/legacy/next/index.js +2 -3
- package/legacy/state/reducer/fetchReducer.js +5 -5
- package/legacy/state/reducer/setReducer.js +2 -2
- package/legacy/types.js +3 -4
- package/lib/actionTypes.d.ts +10 -12
- package/lib/actionTypes.d.ts.map +1 -1
- package/lib/actionTypes.js +11 -13
- package/lib/{newActions.d.ts → actions.d.ts} +1 -3
- package/lib/actions.d.ts.map +1 -0
- package/lib/actions.js +2 -0
- package/lib/controller/Controller.d.ts +20 -33
- package/lib/controller/Controller.d.ts.map +1 -1
- package/lib/controller/Controller.js +26 -42
- package/lib/controller/createSet.d.ts.map +1 -1
- package/lib/controller/createSet.js +3 -2
- package/lib/controller/ensurePojo.d.ts +3 -0
- package/lib/controller/ensurePojo.d.ts.map +1 -0
- package/lib/controller/ensurePojo.js +7 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- 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.js +3 -3
- package/lib/manager/NetworkManager.d.ts +6 -6
- package/lib/manager/NetworkManager.d.ts.map +1 -1
- package/lib/manager/NetworkManager.js +11 -11
- package/lib/manager/SubscriptionManager.d.ts +5 -5
- package/lib/manager/SubscriptionManager.js +6 -6
- package/lib/manager/applyManager.d.ts.map +1 -1
- package/lib/manager/applyManager.js +2 -9
- package/lib/middlewareTypes.d.ts +2 -5
- package/lib/middlewareTypes.d.ts.map +1 -1
- package/lib/middlewareTypes.js +1 -1
- package/lib/next/index.d.ts +0 -2
- package/lib/next/index.d.ts.map +1 -1
- package/lib/next/index.js +2 -3
- package/lib/state/reducer/expireReducer.d.ts +1 -1
- package/lib/state/reducer/fetchReducer.js +5 -5
- package/lib/state/reducer/invalidateReducer.d.ts +1 -1
- package/lib/state/reducer/setReducer.d.ts +2 -2
- package/lib/state/reducer/setReducer.d.ts.map +1 -1
- package/lib/state/reducer/setReducer.js +2 -2
- package/lib/types.d.ts +3 -4
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +3 -4
- package/package.json +3 -3
- package/src/actionTypes.ts +10 -12
- package/src/{newActions.ts → actions.ts} +1 -6
- package/src/controller/Controller.ts +27 -55
- package/src/controller/createSet.ts +2 -1
- package/src/controller/ensurePojo.ts +11 -0
- package/src/index.ts +1 -1
- package/src/internal.ts +1 -1
- package/src/manager/DevtoolsManager.ts +2 -2
- package/src/manager/NetworkManager.ts +10 -10
- package/src/manager/SubscriptionManager.ts +5 -5
- package/src/manager/__tests__/__snapshots__/pollingSubscription.ts.snap +2 -2
- package/src/manager/__tests__/logoutManager.ts +2 -2
- package/src/manager/__tests__/manager.ts +1 -1
- package/src/manager/__tests__/networkManager.ts +13 -16
- package/src/manager/applyManager.ts +1 -6
- package/src/middlewareTypes.ts +4 -9
- package/src/next/index.ts +0 -2
- package/src/state/__tests__/__snapshots__/reducer.ts.snap +1 -1
- package/src/state/__tests__/reducer.ts +27 -9
- package/src/state/reducer/fetchReducer.ts +5 -5
- package/src/state/reducer/setReducer.ts +5 -5
- package/src/types.ts +3 -4
- package/ts3.4/actionTypes.d.ts +10 -12
- package/ts3.4/{newActions.d.ts → actions.d.ts} +1 -3
- package/ts3.4/controller/Controller.d.ts +20 -39
- package/ts3.4/controller/ensurePojo.d.ts +3 -0
- package/ts3.4/index.d.ts +1 -1
- package/ts3.4/internal.d.ts +1 -1
- package/ts3.4/manager/NetworkManager.d.ts +6 -6
- package/ts3.4/manager/SubscriptionManager.d.ts +5 -5
- package/ts3.4/middlewareTypes.d.ts +2 -5
- package/ts3.4/next/index.d.ts +0 -2
- package/ts3.4/state/reducer/expireReducer.d.ts +1 -1
- package/ts3.4/state/reducer/invalidateReducer.d.ts +1 -1
- package/ts3.4/state/reducer/setReducer.d.ts +2 -2
- package/ts3.4/types.d.ts +3 -5
- package/legacy/fsa.js +0 -2
- package/legacy/newActions.js +0 -2
- package/lib/fsa.d.ts +0 -41
- package/lib/fsa.d.ts.map +0 -1
- package/lib/fsa.js +0 -2
- package/lib/newActions.d.ts.map +0 -1
- package/lib/newActions.js +0 -2
- package/src/fsa.ts +0 -99
- package/ts3.4/fsa.d.ts +0 -41
|
@@ -7,7 +7,7 @@ export function setReducer(state, action, controller) {
|
|
|
7
7
|
try {
|
|
8
8
|
var _state$meta$action$me;
|
|
9
9
|
let payload;
|
|
10
|
-
// for true
|
|
10
|
+
// for true set's payload is contained in action
|
|
11
11
|
if (action.type === OPTIMISTIC_TYPE) {
|
|
12
12
|
// this should never happen
|
|
13
13
|
if (!action.endpoint.getOptimisticResponse) return state;
|
|
@@ -108,4 +108,4 @@ function reduceError(state, action, error) {
|
|
|
108
108
|
function filterOptimistic(state, resolvingAction) {
|
|
109
109
|
return state.optimistic.filter(optimisticAction => optimisticAction.meta.key !== resolvingAction.meta.key || (optimisticAction.type === OPTIMISTIC_TYPE ? optimisticAction.meta.fetchedAt !== resolvingAction.meta.fetchedAt : optimisticAction.meta.date > resolvingAction.meta.date));
|
|
110
110
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDX1RZUEUiLCJzZXRSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInBheWxvYWQiLCJfc3RhdGUkbWV0YSRhY3Rpb24kbWUiLCJ0eXBlIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJjYWxsIiwic25hcHNob3QiLCJtZXRhIiwiZmV0Y2hlZEF0IiwiYXJncyIsImUiLCJfZSRjb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yIiwibmFtZSIsInJlc3VsdCIsImVudGl0aWVzIiwiaW5kZXhlcyIsImVudGl0eU1ldGEiLCJzY2hlbWEiLCJyZXN1bHRzIiwia2V5IiwidXBkYXRlIiwidXBkYXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImNvbnNvbGUiLCJkYXRlIiwiZXhwaXJlc0F0IiwicHJldkV4cGlyZXNBdCIsIm9wdGltaXN0aWMiLCJmaWx0ZXJPcHRpbWlzdGljIiwibGFzdFJlc2V0IiwibWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJzdGF0dXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJlcnJvclBvbGljeSIsInJlc29sdmluZ0FjdGlvbiIsImZpbHRlciIsIm9wdGltaXN0aWNBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9zZXRSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBPUFRJTUlTVElDX1RZUEUgfSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YXRlLCBSZWNlaXZlQWN0aW9uLCBPcHRpbWlzdGljQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVkdWNlcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IE9wdGltaXN0aWNBY3Rpb24gfCBSZWNlaXZlQWN0aW9uLFxuICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuKSB7XG4gIGlmIChhY3Rpb24uZXJyb3IpIHtcbiAgICByZXR1cm4gcmVkdWNlRXJyb3Ioc3RhdGUsIGFjdGlvbiwgYWN0aW9uLnBheWxvYWQpO1xuICB9XG4gIHRyeSB7XG4gICAgbGV0IHBheWxvYWQ6IGFueTtcbiAgICAvLyBmb3IgdHJ1ZSByZWNlaXZlcyBwYXlsb2FkIGlzIGNvbnRhaW5lZCBpbiBhY3Rpb25cbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IE9QVElNSVNUSUNfVFlQRSkge1xuICAgICAgLy8gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuXG4gICAgICBpZiAoIWFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UpIHJldHVybiBzdGF0ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGNvbXB1dGUgb3B0aW1pc3RpYyByZXNwb25zZSBiYXNlZCBvbiBjdXJyZW50IHN0YXRlXG4gICAgICAgIHBheWxvYWQgPSBhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlLmNhbGwoXG4gICAgICAgICAgYWN0aW9uLmVuZHBvaW50LFxuICAgICAgICAgIGNvbnRyb2xsZXIuc25hcHNob3Qoc3RhdGUsIGFjdGlvbi5tZXRhLmZldGNoZWRBdCksXG4gICAgICAgICAgLi4uYWN0aW9uLm1ldGEuYXJncyxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBBYm9ydE9wdGltaXN0aWMgbWVhbnMgJ2RvIG5vdGhpbmcnLCBvdGhlcndpc2Ugd2UgY291bnQgdGhlIGV4Y2VwdGlvbiBhcyBlbmRwb2ludCBmYWlsdXJlXG4gICAgICAgIGlmIChlLmNvbnN0cnVjdG9yPy5uYW1lID09PSAnQWJvcnRPcHRpbWlzdGljJykge1xuICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgfVxuICAgIGNvbnN0IHsgcmVzdWx0LCBlbnRpdGllcywgaW5kZXhlcywgZW50aXR5TWV0YSB9ID0gbm9ybWFsaXplKFxuICAgICAgcGF5bG9hZCxcbiAgICAgIGFjdGlvbi5lbmRwb2ludC5zY2hlbWEsXG4gICAgICBhY3Rpb24ubWV0YS5hcmdzIGFzIGFueSxcbiAgICAgIHN0YXRlLmVudGl0aWVzLFxuICAgICAgc3RhdGUuaW5kZXhlcyxcbiAgICAgIHN0YXRlLmVudGl0eU1ldGEsXG4gICAgICBhY3Rpb24ubWV0YSxcbiAgICApO1xuICAgIGNvbnN0IHJlc3VsdHMgPSB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHJlc3VsdCxcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBpZiAoYWN0aW9uLmVuZHBvaW50LnVwZGF0ZSkge1xuICAgICAgICBjb25zdCB1cGRhdGVycyA9IGFjdGlvbi5lbmRwb2ludC51cGRhdGUocmVzdWx0LCAuLi5hY3Rpb24ubWV0YS5hcmdzKTtcbiAgICAgICAgT2JqZWN0LmtleXModXBkYXRlcnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICByZXN1bHRzW2tleV0gPSB1cGRhdGVyc1trZXldKHJlc3VsdHNba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gbm8gcmVhc29uIHRvIGNvbXBsZXRlbHkgZmFpbCBiZWNhdXNlIG9mIHVzZXItY29kZSBlcnJvclxuICAgICAgLy8gaW50ZWdyaXR5IG9mIHRoaXMgc3RhdGUgdXBkYXRlIGlzIHN0aWxsIGd1YXJhbnRlZWRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgZXJyb3Igb2NjdXJlZCBkdXJpbmcgRW5kcG9pbnQudXBkYXRlKCkgZm9yICR7YWN0aW9uLm1ldGEua2V5fWAsXG4gICAgICApO1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBlbnRpdGllcyxcbiAgICAgIGluZGV4ZXMsXG4gICAgICByZXN1bHRzLFxuICAgICAgZW50aXR5TWV0YSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgLi4uc3RhdGUubWV0YSxcbiAgICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHtcbiAgICAgICAgICBkYXRlOiBhY3Rpb24ubWV0YS5kYXRlLFxuICAgICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICAgIHByZXZFeHBpcmVzQXQ6IHN0YXRlLm1ldGFbYWN0aW9uLm1ldGEua2V5XT8uZXhwaXJlc0F0LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gICAgICBsYXN0UmVzZXQ6IHN0YXRlLmxhc3RSZXNldCxcbiAgICB9O1xuICAgIC8vIHJlZHVjZXIgbXVzdCB1cGRhdGUgdGhlIHN0YXRlLCBzbyBpbiBjYXNlIG9mIHByb2Nlc3NpbmcgZXJyb3JzIHdlIHNpbXBseSBjb21wdXRlIHRoZSByZXN1bHRzIGlubGluZVxuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBgRXJyb3IgcHJvY2Vzc2luZyAke1xuICAgICAgICBhY3Rpb24ubWV0YS5rZXlcbiAgICAgIH1cXG5cXG5GdWxsIFNjaGVtYTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgYWN0aW9uLmVuZHBvaW50LnNjaGVtYSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAyLFxuICAgICAgKX1cXG5cXG5FcnJvcjpcXG4ke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgIGlmICgncGF5bG9hZCcgaW4gYWN0aW9uKSBlcnJvci5wYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBpcyBub3QgYWx3YXlzIGJ1YmJsZWQgdXAsIHNvIGxldCdzIGRvdWJsZSBzdXJlIHRoaXMgZG9lc24ndCBmYWlsIHNpbGVudGx5XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiByZWR1Y2VFcnJvcihzdGF0ZSwgYWN0aW9uLCBlcnJvcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVkdWNlRXJyb3IoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgYWN0aW9uOiBSZWNlaXZlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHtcbiAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICBlcnJvclBvbGljeTogYWN0aW9uLmVuZHBvaW50LmVycm9yUG9saWN5Py4oZXJyb3IpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gIH07XG59XG4vKiogRmlsdGVyIGFsbCByZXF1ZXN0cyB3aXRoIHNhbWUgc2VyaWFsaXphdGlvbiB0aGF0IGRpZCBub3Qgc3RhcnQgYWZ0ZXIgdGhlIHJlc29sdmluZyByZXF1ZXN0ICovXG5mdW5jdGlvbiBmaWx0ZXJPcHRpbWlzdGljKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIHJlc29sdmluZ0FjdGlvbjogUmVjZWl2ZUFjdGlvbiB8IE9wdGltaXN0aWNBY3Rpb24sXG4pIHtcbiAgcmV0dXJuIHN0YXRlLm9wdGltaXN0aWMuZmlsdGVyKFxuICAgIG9wdGltaXN0aWNBY3Rpb24gPT5cbiAgICAgIG9wdGltaXN0aWNBY3Rpb24ubWV0YS5rZXkgIT09IHJlc29sdmluZ0FjdGlvbi5tZXRhLmtleSB8fFxuICAgICAgKG9wdGltaXN0aWNBY3Rpb24udHlwZSA9PT0gT1BUSU1JU1RJQ19UWVBFXG4gICAgICAgID8gb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmZldGNoZWRBdCAhPT0gcmVzb2x2aW5nQWN0aW9uLm1ldGEuZmV0Y2hlZEF0XG4gICAgICAgIDogb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmRhdGUgPiByZXNvbHZpbmdBY3Rpb24ubWV0YS5kYXRlKSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxRQUFRLHdCQUF3QjtBQUVsRCxTQUFTQyxlQUFlLFFBQVEsc0JBQXNCO0FBSXRELE9BQU8sU0FBU0MsVUFBVUEsQ0FDeEJDLEtBQXFCLEVBQ3JCQyxNQUF3QyxFQUN4Q0MsVUFBc0IsRUFDdEI7RUFDQSxJQUFJRCxNQUFNLENBQUNFLEtBQUssRUFBRTtJQUNoQixPQUFPQyxXQUFXLENBQUNKLEtBQUssRUFBRUMsTUFBTSxFQUFFQSxNQUFNLENBQUNJLE9BQU8sQ0FBQztFQUNuRDtFQUNBLElBQUk7SUFBQSxJQUFBQyxxQkFBQTtJQUNGLElBQUlELE9BQVk7SUFDaEI7SUFDQSxJQUFJSixNQUFNLENBQUNNLElBQUksS0FBS1QsZUFBZSxFQUFFO01BQ25DO01BQ0EsSUFBSSxDQUFDRyxNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLEVBQUUsT0FBT1QsS0FBSztNQUN4RCxJQUFJO1FBQ0Y7UUFDQUssT0FBTyxHQUFHSixNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLENBQUNDLElBQUksQ0FDbERULE1BQU0sQ0FBQ08sUUFBUSxFQUNmTixVQUFVLENBQUNTLFFBQVEsQ0FBQ1gsS0FBSyxFQUFFQyxNQUFNLENBQUNXLElBQUksQ0FBQ0MsU0FBUyxDQUFDLEVBQ2pELEdBQUdaLE1BQU0sQ0FBQ1csSUFBSSxDQUFDRSxJQUNqQixDQUFDO01BQ0gsQ0FBQyxDQUFDLE9BQU9DLENBQU0sRUFBRTtRQUFBLElBQUFDLGNBQUE7UUFDZjtRQUNBLElBQUksRUFBQUEsY0FBQSxHQUFBRCxDQUFDLENBQUNFLFdBQVcscUJBQWJELGNBQUEsQ0FBZUUsSUFBSSxNQUFLLGlCQUFpQixFQUFFO1VBQzdDLE9BQU9sQixLQUFLO1FBQ2Q7UUFDQSxNQUFNZSxDQUFDO01BQ1Q7SUFDRixDQUFDLE1BQU07TUFD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
|
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDX1RZUEUiLCJzZXRSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInBheWxvYWQiLCJfc3RhdGUkbWV0YSRhY3Rpb24kbWUiLCJ0eXBlIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJjYWxsIiwic25hcHNob3QiLCJtZXRhIiwiZmV0Y2hlZEF0IiwiYXJncyIsImUiLCJfZSRjb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yIiwibmFtZSIsInJlc3VsdCIsImVudGl0aWVzIiwiaW5kZXhlcyIsImVudGl0eU1ldGEiLCJzY2hlbWEiLCJyZXN1bHRzIiwia2V5IiwidXBkYXRlIiwidXBkYXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImNvbnNvbGUiLCJkYXRlIiwiZXhwaXJlc0F0IiwicHJldkV4cGlyZXNBdCIsIm9wdGltaXN0aWMiLCJmaWx0ZXJPcHRpbWlzdGljIiwibGFzdFJlc2V0IiwibWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJzdGF0dXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJlcnJvclBvbGljeSIsInJlc29sdmluZ0FjdGlvbiIsImZpbHRlciIsIm9wdGltaXN0aWNBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9zZXRSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBPUFRJTUlTVElDX1RZUEUgfSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YXRlLCBTZXRBY3Rpb24sIE9wdGltaXN0aWNBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZWR1Y2VyKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogT3B0aW1pc3RpY0FjdGlvbiB8IFNldEFjdGlvbixcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbikge1xuICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGFjdGlvbi5wYXlsb2FkKTtcbiAgfVxuICB0cnkge1xuICAgIGxldCBwYXlsb2FkOiBhbnk7XG4gICAgLy8gZm9yIHRydWUgc2V0J3MgcGF5bG9hZCBpcyBjb250YWluZWQgaW4gYWN0aW9uXG4gICAgaWYgKGFjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEUpIHtcbiAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgaWYgKCFhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlKSByZXR1cm4gc3RhdGU7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBjb21wdXRlIG9wdGltaXN0aWMgcmVzcG9uc2UgYmFzZWQgb24gY3VycmVudCBzdGF0ZVxuICAgICAgICBwYXlsb2FkID0gYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZS5jYWxsKFxuICAgICAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgICAgICBjb250cm9sbGVyLnNuYXBzaG90KHN0YXRlLCBhY3Rpb24ubWV0YS5mZXRjaGVkQXQpLFxuICAgICAgICAgIC4uLmFjdGlvbi5tZXRhLmFyZ3MsXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgLy8gQWJvcnRPcHRpbWlzdGljIG1lYW5zICdkbyBub3RoaW5nJywgb3RoZXJ3aXNlIHdlIGNvdW50IHRoZSBleGNlcHRpb24gYXMgZW5kcG9pbnQgZmFpbHVyZVxuICAgICAgICBpZiAoZS5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ0Fib3J0T3B0aW1pc3RpYycpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgIH1cbiAgICBjb25zdCB7IHJlc3VsdCwgZW50aXRpZXMsIGluZGV4ZXMsIGVudGl0eU1ldGEgfSA9IG5vcm1hbGl6ZShcbiAgICAgIHBheWxvYWQsXG4gICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgYWN0aW9uLm1ldGEuYXJncyBhcyBhbnksXG4gICAgICBzdGF0ZS5lbnRpdGllcyxcbiAgICAgIHN0YXRlLmluZGV4ZXMsXG4gICAgICBzdGF0ZS5lbnRpdHlNZXRhLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHRzID0ge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIFthY3Rpb24ubWV0YS5rZXldOiByZXN1bHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGlvbi5lbmRwb2ludC51cGRhdGUpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlcnMgPSBhY3Rpb24uZW5kcG9pbnQudXBkYXRlKHJlc3VsdCwgLi4uYWN0aW9uLm1ldGEuYXJncyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgcmVzdWx0c1trZXldID0gdXBkYXRlcnNba2V5XShyZXN1bHRzW2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIG5vIHJlYXNvbiB0byBjb21wbGV0ZWx5IGZhaWwgYmVjYXVzZSBvZiB1c2VyLWNvZGUgZXJyb3JcbiAgICAgIC8vIGludGVncml0eSBvZiB0aGlzIHN0YXRlIHVwZGF0ZSBpcyBzdGlsbCBndWFyYW50ZWVkXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIGVycm9yIG9jY3VyZWQgZHVyaW5nIEVuZHBvaW50LnVwZGF0ZSgpIGZvciAke2FjdGlvbi5tZXRhLmtleX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBpbmRleGVzLFxuICAgICAgcmVzdWx0cyxcbiAgICAgIGVudGl0eU1ldGEsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIC4uLnN0YXRlLm1ldGEsXG4gICAgICAgIFthY3Rpb24ubWV0YS5rZXldOiB7XG4gICAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgICBwcmV2RXhwaXJlc0F0OiBzdGF0ZS5tZXRhW2FjdGlvbi5tZXRhLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgICAgbGFzdFJlc2V0OiBzdGF0ZS5sYXN0UmVzZXQsXG4gICAgfTtcbiAgICAvLyByZWR1Y2VyIG11c3QgdXBkYXRlIHRoZSBzdGF0ZSwgc28gaW4gY2FzZSBvZiBwcm9jZXNzaW5nIGVycm9ycyB3ZSBzaW1wbHkgY29tcHV0ZSB0aGUgcmVzdWx0cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLm1ldGEua2V5XG4gICAgICB9XFxuXFxuRnVsbCBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGFjdGlvbi5lbmRwb2ludC5zY2hlbWEsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgMixcbiAgICAgICl9XFxuXFxuRXJyb3I6XFxuJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICBpZiAoJ3BheWxvYWQnIGluIGFjdGlvbikgZXJyb3IucGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgIH1cblxuICAgIC8vIHRoaXMgaXMgbm90IGFsd2F5cyBidWJibGVkIHVwLCBzbyBsZXQncyBkb3VibGUgc3VyZSB0aGlzIGRvZXNuJ3QgZmFpbCBzaWxlbnRseVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gcmVkdWNlRXJyb3Ioc3RhdGUsIGFjdGlvbiwgZXJyb3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlZHVjZUVycm9yKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogU2V0QWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHtcbiAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICBlcnJvclBvbGljeTogYWN0aW9uLmVuZHBvaW50LmVycm9yUG9saWN5Py4oZXJyb3IpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gIH07XG59XG4vKiogRmlsdGVyIGFsbCByZXF1ZXN0cyB3aXRoIHNhbWUgc2VyaWFsaXphdGlvbiB0aGF0IGRpZCBub3Qgc3RhcnQgYWZ0ZXIgdGhlIHJlc29sdmluZyByZXF1ZXN0ICovXG5mdW5jdGlvbiBmaWx0ZXJPcHRpbWlzdGljKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIHJlc29sdmluZ0FjdGlvbjogU2V0QWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmtleSAhPT0gcmVzb2x2aW5nQWN0aW9uLm1ldGEua2V5IHx8XG4gICAgICAob3B0aW1pc3RpY0FjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEVcbiAgICAgICAgPyBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZmV0Y2hlZEF0ICE9PSByZXNvbHZpbmdBY3Rpb24ubWV0YS5mZXRjaGVkQXRcbiAgICAgICAgOiBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZGF0ZSA+IHJlc29sdmluZ0FjdGlvbi5tZXRhLmRhdGUpLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsd0JBQXdCO0FBRWxELFNBQVNDLGVBQWUsUUFBUSxzQkFBc0I7QUFJdEQsT0FBTyxTQUFTQyxVQUFVQSxDQUN4QkMsS0FBcUIsRUFDckJDLE1BQW9DLEVBQ3BDQyxVQUFzQixFQUN0QjtFQUNBLElBQUlELE1BQU0sQ0FBQ0UsS0FBSyxFQUFFO0lBQ2hCLE9BQU9DLFdBQVcsQ0FBQ0osS0FBSyxFQUFFQyxNQUFNLEVBQUVBLE1BQU0sQ0FBQ0ksT0FBTyxDQUFDO0VBQ25EO0VBQ0EsSUFBSTtJQUFBLElBQUFDLHFCQUFBO0lBQ0YsSUFBSUQsT0FBWTtJQUNoQjtJQUNBLElBQUlKLE1BQU0sQ0FBQ00sSUFBSSxLQUFLVCxlQUFlLEVBQUU7TUFDbkM7TUFDQSxJQUFJLENBQUNHLE1BQU0sQ0FBQ08sUUFBUSxDQUFDQyxxQkFBcUIsRUFBRSxPQUFPVCxLQUFLO01BQ3hELElBQUk7UUFDRjtRQUNBSyxPQUFPLEdBQUdKLE1BQU0sQ0FBQ08sUUFBUSxDQUFDQyxxQkFBcUIsQ0FBQ0MsSUFBSSxDQUNsRFQsTUFBTSxDQUFDTyxRQUFRLEVBQ2ZOLFVBQVUsQ0FBQ1MsUUFBUSxDQUFDWCxLQUFLLEVBQUVDLE1BQU0sQ0FBQ1csSUFBSSxDQUFDQyxTQUFTLENBQUMsRUFDakQsR0FBR1osTUFBTSxDQUFDVyxJQUFJLENBQUNFLElBQ2pCLENBQUM7TUFDSCxDQUFDLENBQUMsT0FBT0MsQ0FBTSxFQUFFO1FBQUEsSUFBQUMsY0FBQTtRQUNmO1FBQ0EsSUFBSSxFQUFBQSxjQUFBLEdBQUFELENBQUMsQ0FBQ0UsV0FBVyxxQkFBYkQsY0FBQSxDQUFlRSxJQUFJLE1BQUssaUJBQWlCLEVBQUU7VUFDN0MsT0FBT2xCLEtBQUs7UUFDZDtRQUNBLE1BQU1lLENBQUM7TUFDVDtJQUNGLENBQUMsTUFBTTtNQUNMVixPQUFPLEdBQUdKLE1BQU0s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
|
package/lib/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NormalizedIndex } from '@data-client/normalizr';
|
|
2
2
|
import type { UpdateFunction, AbstractInstanceType } from '@data-client/normalizr';
|
|
3
3
|
import type { ErrorTypes } from '@data-client/normalizr';
|
|
4
|
+
import type { ActionTypes, SetAction, OptimisticAction } from './actions.js';
|
|
4
5
|
import { SET_TYPE } from './actionTypes.js';
|
|
5
6
|
import type { Dispatch, Middleware, MiddlewareAPI } from './middlewareTypes.js';
|
|
6
|
-
import type { ActionTypes, SetAction, OptimisticAction } from './newActions.js';
|
|
7
7
|
export type { AbstractInstanceType, UpdateFunction };
|
|
8
|
-
export type
|
|
8
|
+
export type SetTypes = typeof SET_TYPE;
|
|
9
9
|
export type PK = string;
|
|
10
10
|
export interface State<T> {
|
|
11
11
|
readonly entities: {
|
|
@@ -39,8 +39,7 @@ export interface State<T> {
|
|
|
39
39
|
readonly optimistic: (SetAction | OptimisticAction)[];
|
|
40
40
|
readonly lastReset: number;
|
|
41
41
|
}
|
|
42
|
-
export *
|
|
43
|
-
export * from './newActions.js';
|
|
42
|
+
export * from './actions.js';
|
|
44
43
|
export interface Manager<Actions = ActionTypes> {
|
|
45
44
|
getMiddleware(): Middleware<Actions>;
|
|
46
45
|
cleanup(): void;
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEhF,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC;AAEvC,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC;AAExB,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG;YAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,CAAA;SAAE,GAAG,SAAS,CAAC;KACxE,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,CAAA;KAAE,CAAC;IAC9E,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG;YACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;YAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;YAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;YAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACpD,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG;YAC5B,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG;gBACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;aAC5B,CAAC;SACH,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,CAAC,SAAS,GAAG,gBAAgB,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,cAAc,cAAc,CAAC;AAE7B,MAAM,WAAW,OAAO,CAAC,OAAO,GAAG,WAAW;IAC5C,aAAa,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CACpC;AAED,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"}
|
package/lib/types.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbmV3QWN0aW9ucyIsIm5ld0FjdGlvbnMiXSwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9ybWFsaXplZEluZGV4IH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5pbXBvcnQgdHlwZSB7XG4gIFVwZGF0ZUZ1bmN0aW9uLFxuICBBYnN0cmFjdEluc3RhbmNlVHlwZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5pbXBvcnQgdHlwZSB7IEVycm9yVHlwZXMgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgU0VUX1RZUEUgfSBmcm9tICcuL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRGlzcGF0Y2gsIE1pZGRsZXdhcmUsIE1pZGRsZXdhcmVBUEkgfSBmcm9tICcuL21pZGRsZXdhcmVUeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFjdGlvblR5cGVzLCBTZXRBY3Rpb24sIE9wdGltaXN0aWNBY3Rpb24gfSBmcm9tICcuL25ld0FjdGlvbnMuanMnO1xuXG5leHBvcnQgdHlwZSB7IEFic3RyYWN0SW5zdGFuY2VUeXBlLCBVcGRhdGVGdW5jdGlvbiB9O1xuXG5leHBvcnQgdHlwZSBSZWNlaXZlVHlwZXMgPSB0eXBlb2YgU0VUX1RZUEU7XG5cbmV4cG9ydCB0eXBlIFBLID0gc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlPFQ+IHtcbiAgcmVhZG9ubHkgZW50aXRpZXM6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7IHJlYWRvbmx5IFtwazogc3RyaW5nXTogVCB9IHwgdW5kZWZpbmVkO1xuICB9O1xuICByZWFkb25seSBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXg7XG4gIHJlYWRvbmx5IHJlc3VsdHM6IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogdW5rbm93biB8IFBLW10gfCBQSyB8IHVuZGVmaW5lZCB9O1xuICByZWFkb25seSBtZXRhOiB7XG4gICAgcmVhZG9ubHkgW2tleTogc3RyaW5nXToge1xuICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgcmVhZG9ubHkgZXJyb3I/OiBFcnJvclR5cGVzO1xuICAgICAgcmVhZG9ubHkgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICByZWFkb25seSBwcmV2RXhwaXJlc0F0PzogbnVtYmVyO1xuICAgICAgcmVhZG9ubHkgaW52YWxpZGF0ZWQ/OiBib29sZWFuO1xuICAgICAgcmVhZG9ubHkgZXJyb3JQb2xpY3k/OiAnaGFyZCcgfCAnc29mdCcgfCB1bmRlZmluZWQ7XG4gICAgfTtcbiAgfTtcbiAgcmVhZG9ubHkgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgcmVhZG9ubHkgb3B0aW1pc3RpYzogKFNldEFjdGlvbiB8IE9wdGltaXN0aWNBY3Rpb24pW107XG4gIHJlYWRvbmx5IGxhc3RSZXNldDogbnVtYmVyO1xufVxuXG5leHBvcnQgKiBhcyBuZXdBY3Rpb25zIGZyb20gJy4vbmV3QWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL25ld0FjdGlvbnMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZXI8QWN0aW9ucyA9IEFjdGlvblR5cGVzPiB7XG4gIGdldE1pZGRsZXdhcmUoKTogTWlkZGxld2FyZTxBY3Rpb25zPjtcbiAgY2xlYW51cCgpOiB2b2lkO1xuICBpbml0PzogKHN0YXRlOiBTdGF0ZTxhbnk+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSB7IERpc3BhdGNoLCBNaWRkbGV3YXJlLCBNaWRkbGV3YXJlQVBJIH07XG4iXSwibWFwcGluZ3MiOiI2QkE4QzRCLGlCQUFpQjtBQUFBLFNBQUFBLFdBQUEsSUFBakNDLFVBQVU7QUFDdEIsY0FBYyxpQkFBaUIifQ==
|
|
1
|
+
export * from './actions.js';
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vcm1hbGl6ZWRJbmRleCB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUge1xuICBVcGRhdGVGdW5jdGlvbixcbiAgQWJzdHJhY3RJbnN0YW5jZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUgeyBFcnJvclR5cGVzIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCB0eXBlIHsgQWN0aW9uVHlwZXMsIFNldEFjdGlvbiwgT3B0aW1pc3RpY0FjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy5qcyc7XG5pbXBvcnQgeyBTRVRfVFlQRSB9IGZyb20gJy4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBEaXNwYXRjaCwgTWlkZGxld2FyZSwgTWlkZGxld2FyZUFQSSB9IGZyb20gJy4vbWlkZGxld2FyZVR5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgeyBBYnN0cmFjdEluc3RhbmNlVHlwZSwgVXBkYXRlRnVuY3Rpb24gfTtcblxuZXhwb3J0IHR5cGUgU2V0VHlwZXMgPSB0eXBlb2YgU0VUX1RZUEU7XG5cbmV4cG9ydCB0eXBlIFBLID0gc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlPFQ+IHtcbiAgcmVhZG9ubHkgZW50aXRpZXM6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7IHJlYWRvbmx5IFtwazogc3RyaW5nXTogVCB9IHwgdW5kZWZpbmVkO1xuICB9O1xuICByZWFkb25seSBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXg7XG4gIHJlYWRvbmx5IHJlc3VsdHM6IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogdW5rbm93biB8IFBLW10gfCBQSyB8IHVuZGVmaW5lZCB9O1xuICByZWFkb25seSBtZXRhOiB7XG4gICAgcmVhZG9ubHkgW2tleTogc3RyaW5nXToge1xuICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgcmVhZG9ubHkgZXJyb3I/OiBFcnJvclR5cGVzO1xuICAgICAgcmVhZG9ubHkgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICByZWFkb25seSBwcmV2RXhwaXJlc0F0PzogbnVtYmVyO1xuICAgICAgcmVhZG9ubHkgaW52YWxpZGF0ZWQ/OiBib29sZWFuO1xuICAgICAgcmVhZG9ubHkgZXJyb3JQb2xpY3k/OiAnaGFyZCcgfCAnc29mdCcgfCB1bmRlZmluZWQ7XG4gICAgfTtcbiAgfTtcbiAgcmVhZG9ubHkgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgcmVhZG9ubHkgb3B0aW1pc3RpYzogKFNldEFjdGlvbiB8IE9wdGltaXN0aWNBY3Rpb24pW107XG4gIHJlYWRvbmx5IGxhc3RSZXNldDogbnVtYmVyO1xufVxuXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZXI8QWN0aW9ucyA9IEFjdGlvblR5cGVzPiB7XG4gIGdldE1pZGRsZXdhcmUoKTogTWlkZGxld2FyZTxBY3Rpb25zPjtcbiAgY2xlYW51cCgpOiB2b2lkO1xuICBpbml0PzogKHN0YXRlOiBTdGF0ZTxhbnk+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSB7IERpc3BhdGNoLCBNaWRkbGV3YXJlLCBNaWRkbGV3YXJlQVBJIH07XG4iXSwibWFwcGluZ3MiOiJBQThDQSxjQUFjLGNBQWM7QUFBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-client/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "High performance reactive framework for async data.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"LICENSE",
|
|
61
61
|
"README.md",
|
|
62
62
|
"./typescript.svg",
|
|
63
|
-
"./
|
|
63
|
+
"./data_client_logo_and_text.svg"
|
|
64
64
|
],
|
|
65
65
|
"scripts": {
|
|
66
66
|
"build:lib": "NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
},
|
|
121
121
|
"dependencies": {
|
|
122
122
|
"@babel/runtime": "^7.17.0",
|
|
123
|
-
"@data-client/normalizr": "
|
|
123
|
+
"@data-client/normalizr": "workspace:^",
|
|
124
124
|
"flux-standard-action": "^2.1.1"
|
|
125
125
|
},
|
|
126
126
|
"devDependencies": {
|
package/src/actionTypes.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
export const FETCH_TYPE = '
|
|
2
|
-
|
|
3
|
-
export const
|
|
4
|
-
export const
|
|
5
|
-
export const
|
|
6
|
-
export const
|
|
7
|
-
export const
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
11
|
-
export const EXPIREALL_TYPE = 'rest-hooks/expireall' as const;
|
|
12
|
-
export const GC_TYPE = 'rest-hooks/gc' as const;
|
|
1
|
+
export const FETCH_TYPE = 'rdc/fetch' as const;
|
|
2
|
+
export const SET_TYPE = 'rdc/set' as const;
|
|
3
|
+
export const OPTIMISTIC_TYPE = 'rdc/optimistic' as const;
|
|
4
|
+
export const RESET_TYPE = 'rdc/reset' as const;
|
|
5
|
+
export const SUBSCRIBE_TYPE = 'rdc/subscribe' as const;
|
|
6
|
+
export const UNSUBSCRIBE_TYPE = 'rdc/unsubscribe' as const;
|
|
7
|
+
export const INVALIDATE_TYPE = 'rdc/invalidate' as const;
|
|
8
|
+
export const INVALIDATEALL_TYPE = 'rdc/invalidateall' as const;
|
|
9
|
+
export const EXPIREALL_TYPE = 'rdc/expireall' as const;
|
|
10
|
+
export const GC_TYPE = 'rdc/gc' as const;
|
|
@@ -25,7 +25,7 @@ type EndpointDefault = EndpointInterface & {
|
|
|
25
25
|
update?: EndpointUpdateFunction<EndpointInterface>;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
/*
|
|
28
|
+
/* SET */
|
|
29
29
|
export interface SetMeta {
|
|
30
30
|
args: readonly any[];
|
|
31
31
|
key: string;
|
|
@@ -55,11 +55,6 @@ export type SetAction<E extends EndpointAndUpdate<E> = EndpointDefault> =
|
|
|
55
55
|
| SetActionSuccess<E>
|
|
56
56
|
| SetActionError<E>;
|
|
57
57
|
|
|
58
|
-
// TODO(breaking): Remove - legacy name compatibility
|
|
59
|
-
/** @deprecated use SetAction instead */
|
|
60
|
-
export type ReceiveAction<E extends EndpointAndUpdate<E> = EndpointDefault> =
|
|
61
|
-
SetAction<E>;
|
|
62
|
-
|
|
63
58
|
/* FETCH */
|
|
64
59
|
export interface FetchMeta {
|
|
65
60
|
args: readonly any[];
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
createUnsubscription,
|
|
30
30
|
createSubscription,
|
|
31
31
|
} from './createSubscription.js';
|
|
32
|
+
import ensurePojo from './ensurePojo.js';
|
|
32
33
|
import type { EndpointUpdateFunction } from './types.js';
|
|
33
34
|
import { initialState } from '../state/reducer/createReducer.js';
|
|
34
35
|
import selectMeta from '../state/selectMeta.js';
|
|
@@ -56,16 +57,16 @@ const unsetState = (): State<unknown> => {
|
|
|
56
57
|
};
|
|
57
58
|
|
|
58
59
|
/**
|
|
59
|
-
* Imperative control of
|
|
60
|
-
* @see https://
|
|
60
|
+
* Imperative control of Reactive Data Client store
|
|
61
|
+
* @see https://dataclient.io/docs/api/Controller
|
|
61
62
|
*/
|
|
62
63
|
export default class Controller<
|
|
63
64
|
D extends GenericDispatch = DataClientDispatch,
|
|
64
65
|
> {
|
|
65
66
|
/**
|
|
66
|
-
* Dispatches an action to
|
|
67
|
+
* Dispatches an action to Reactive Data Client reducer.
|
|
67
68
|
*
|
|
68
|
-
* @see https://
|
|
69
|
+
* @see https://dataclient.io/docs/api/Controller#dispatch
|
|
69
70
|
*/
|
|
70
71
|
declare readonly dispatch: D;
|
|
71
72
|
/**
|
|
@@ -73,7 +74,7 @@ export default class Controller<
|
|
|
73
74
|
*
|
|
74
75
|
* This can be useful for imperative use-cases like event handlers.
|
|
75
76
|
* This should *not* be used to render; instead useSuspense() or useCache()
|
|
76
|
-
* @see https://
|
|
77
|
+
* @see https://dataclient.io/docs/api/Controller#getState
|
|
77
78
|
*/
|
|
78
79
|
declare readonly getState: () => State<unknown>;
|
|
79
80
|
declare readonly globalCache: DenormalizeCache;
|
|
@@ -94,8 +95,8 @@ export default class Controller<
|
|
|
94
95
|
/*************** Action Dispatchers ***************/
|
|
95
96
|
|
|
96
97
|
/**
|
|
97
|
-
* Fetches the endpoint with given args, updating the
|
|
98
|
-
* @see https://
|
|
98
|
+
* Fetches the endpoint with given args, updating the Reactive Data Client cache with the response or error upon completion.
|
|
99
|
+
* @see https://dataclient.io/docs/api/Controller#fetch
|
|
99
100
|
*/
|
|
100
101
|
fetch = <
|
|
101
102
|
E extends EndpointInterface & { update?: EndpointUpdateFunction<E> },
|
|
@@ -142,7 +143,7 @@ export default class Controller<
|
|
|
142
143
|
|
|
143
144
|
/**
|
|
144
145
|
* Forces refetching and suspense on useSuspense with the same Endpoint and parameters.
|
|
145
|
-
* @see https://
|
|
146
|
+
* @see https://dataclient.io/docs/api/Controller#invalidate
|
|
146
147
|
*/
|
|
147
148
|
invalidate = <E extends EndpointInterface>(
|
|
148
149
|
endpoint: E,
|
|
@@ -158,7 +159,7 @@ export default class Controller<
|
|
|
158
159
|
|
|
159
160
|
/**
|
|
160
161
|
* Forces refetching and suspense on useSuspense on all matching endpoint result keys.
|
|
161
|
-
* @see https://
|
|
162
|
+
* @see https://dataclient.io/docs/api/Controller#invalidateAll
|
|
162
163
|
* @returns Promise that resolves when invalidation is commited.
|
|
163
164
|
*/
|
|
164
165
|
invalidateAll = (options: { testKey: (key: string) => boolean }) =>
|
|
@@ -173,14 +174,14 @@ export default class Controller<
|
|
|
173
174
|
this.dispatch(createExpireAll((key: string) => options.testKey(key)));
|
|
174
175
|
|
|
175
176
|
/**
|
|
176
|
-
* Resets the entire
|
|
177
|
-
* @see https://
|
|
177
|
+
* Resets the entire Reactive Data Client cache. All inflight requests will not resolve.
|
|
178
|
+
* @see https://dataclient.io/docs/api/Controller#resetEntireStore
|
|
178
179
|
*/
|
|
179
180
|
resetEntireStore = (): Promise<void> => this.dispatch(createReset());
|
|
180
181
|
|
|
181
182
|
/**
|
|
182
183
|
* Stores response in cache for given Endpoint and args.
|
|
183
|
-
* @see https://
|
|
184
|
+
* @see https://dataclient.io/docs/api/Controller#set
|
|
184
185
|
*/
|
|
185
186
|
setResponse = <
|
|
186
187
|
E extends EndpointInterface & {
|
|
@@ -198,24 +199,9 @@ export default class Controller<
|
|
|
198
199
|
return this.dispatch(action);
|
|
199
200
|
};
|
|
200
201
|
|
|
201
|
-
/**
|
|
202
|
-
* @deprecated use https://resthooks.io/docs/api/Controller#setResponse instead
|
|
203
|
-
*/
|
|
204
|
-
/* istanbul ignore next */ receive = <
|
|
205
|
-
E extends EndpointInterface & {
|
|
206
|
-
update?: EndpointUpdateFunction<E>;
|
|
207
|
-
},
|
|
208
|
-
>(
|
|
209
|
-
endpoint: E,
|
|
210
|
-
...rest: readonly [...Parameters<E>, any]
|
|
211
|
-
): Promise<void> => {
|
|
212
|
-
/* istanbul ignore next */
|
|
213
|
-
return this.setResponse(endpoint, ...rest);
|
|
214
|
-
};
|
|
215
|
-
|
|
216
202
|
/**
|
|
217
203
|
* Stores the result of Endpoint and args as the error provided.
|
|
218
|
-
* @see https://
|
|
204
|
+
* @see https://dataclient.io/docs/api/Controller#setError
|
|
219
205
|
*/
|
|
220
206
|
setError = <
|
|
221
207
|
E extends EndpointInterface & {
|
|
@@ -234,25 +220,9 @@ export default class Controller<
|
|
|
234
220
|
return this.dispatch(action);
|
|
235
221
|
};
|
|
236
222
|
|
|
237
|
-
/**
|
|
238
|
-
* Another name for setError
|
|
239
|
-
* @deprecated use https://resthooks.io/docs/api/Controller#setError instead
|
|
240
|
-
*/
|
|
241
|
-
/* istanbul ignore next */ receiveError = <
|
|
242
|
-
E extends EndpointInterface & {
|
|
243
|
-
update?: EndpointUpdateFunction<E>;
|
|
244
|
-
},
|
|
245
|
-
>(
|
|
246
|
-
endpoint: E,
|
|
247
|
-
...rest: readonly [...Parameters<E>, Error]
|
|
248
|
-
): Promise<void> => {
|
|
249
|
-
/* istanbul ignore next */
|
|
250
|
-
return this.setError(endpoint, ...rest);
|
|
251
|
-
};
|
|
252
|
-
|
|
253
223
|
/**
|
|
254
224
|
* Resolves an inflight fetch. `fetchedAt` should `fetch`'s `createdAt`
|
|
255
|
-
* @see https://
|
|
225
|
+
* @see https://dataclient.io/docs/api/Controller#resolve
|
|
256
226
|
*/
|
|
257
227
|
resolve = <
|
|
258
228
|
E extends EndpointInterface & {
|
|
@@ -279,7 +249,7 @@ export default class Controller<
|
|
|
279
249
|
|
|
280
250
|
/**
|
|
281
251
|
* Marks a new subscription to a given Endpoint.
|
|
282
|
-
* @see https://
|
|
252
|
+
* @see https://dataclient.io/docs/api/Controller#subscribe
|
|
283
253
|
*/
|
|
284
254
|
subscribe = <
|
|
285
255
|
E extends EndpointInterface<
|
|
@@ -301,7 +271,7 @@ export default class Controller<
|
|
|
301
271
|
|
|
302
272
|
/**
|
|
303
273
|
* Marks completion of subscription to a given Endpoint.
|
|
304
|
-
* @see https://
|
|
274
|
+
* @see https://dataclient.io/docs/api/Controller#unsubscribe
|
|
305
275
|
*/
|
|
306
276
|
unsubscribe = <
|
|
307
277
|
E extends EndpointInterface<
|
|
@@ -331,8 +301,8 @@ export default class Controller<
|
|
|
331
301
|
*/
|
|
332
302
|
|
|
333
303
|
/**
|
|
334
|
-
* Gets a snapshot (https://
|
|
335
|
-
* @see https://
|
|
304
|
+
* Gets a snapshot (https://dataclient.io/docs/api/Snapshot)
|
|
305
|
+
* @see https://dataclient.io/docs/api/Controller#snapshot
|
|
336
306
|
*/
|
|
337
307
|
snapshot = (state: State<unknown>, fetchedAt?: number): SnapshotInterface => {
|
|
338
308
|
return new Snapshot(this, state, fetchedAt);
|
|
@@ -340,7 +310,7 @@ export default class Controller<
|
|
|
340
310
|
|
|
341
311
|
/**
|
|
342
312
|
* Gets the error, if any, for a given endpoint. Returns undefined for no errors.
|
|
343
|
-
* @see https://
|
|
313
|
+
* @see https://dataclient.io/docs/api/Controller#getError
|
|
344
314
|
*/
|
|
345
315
|
getError = <
|
|
346
316
|
E extends Pick<EndpointInterface, 'key'>,
|
|
@@ -365,7 +335,7 @@ export default class Controller<
|
|
|
365
335
|
|
|
366
336
|
/**
|
|
367
337
|
* Gets the (globally referentially stable) response for a given endpoint/args pair from state given.
|
|
368
|
-
* @see https://
|
|
338
|
+
* @see https://dataclient.io/docs/api/Controller#getResponse
|
|
369
339
|
*/
|
|
370
340
|
getResponse = <
|
|
371
341
|
E extends Pick<EndpointInterface, 'key' | 'schema' | 'invalidIfStale'>,
|
|
@@ -380,7 +350,9 @@ export default class Controller<
|
|
|
380
350
|
} => {
|
|
381
351
|
const state = rest[rest.length - 1] as State<unknown>;
|
|
382
352
|
// this is typescript generics breaking
|
|
383
|
-
const args: any = rest
|
|
353
|
+
const args: any = rest
|
|
354
|
+
.slice(0, rest.length - 1)
|
|
355
|
+
.map(ensurePojo) as Parameters<E['key']>;
|
|
384
356
|
const isActive = args.length !== 1 || args[0] !== null;
|
|
385
357
|
const key = isActive ? endpoint.key(...args) : '';
|
|
386
358
|
const cacheResults = isActive ? state.results[key] : undefined;
|
|
@@ -447,7 +419,7 @@ export default class Controller<
|
|
|
447
419
|
expiresAt = entityExpiresAt(paths, state.entityMeta);
|
|
448
420
|
}
|
|
449
421
|
|
|
450
|
-
// https://
|
|
422
|
+
// https://dataclient.io/docs/concepts/expiry-policy#expiry-status
|
|
451
423
|
// we don't track the difference between stale or fresh because that is tied to triggering
|
|
452
424
|
// conditions
|
|
453
425
|
const expiryStatus =
|
|
@@ -517,7 +489,7 @@ class Snapshot<T = unknown> implements SnapshotInterface {
|
|
|
517
489
|
}
|
|
518
490
|
|
|
519
491
|
/*************** Data Access ***************/
|
|
520
|
-
/** @see https://
|
|
492
|
+
/** @see https://dataclient.io/docs/api/Snapshot#getResponse */
|
|
521
493
|
getResponse = <
|
|
522
494
|
E extends Pick<EndpointInterface, 'key' | 'schema' | 'invalidIfStale'>,
|
|
523
495
|
Args extends readonly [...Parameters<E['key']>],
|
|
@@ -532,7 +504,7 @@ class Snapshot<T = unknown> implements SnapshotInterface {
|
|
|
532
504
|
return this.controller.getResponse(endpoint, ...args, this.state);
|
|
533
505
|
};
|
|
534
506
|
|
|
535
|
-
/** @see https://
|
|
507
|
+
/** @see https://dataclient.io/docs/api/Snapshot#getError */
|
|
536
508
|
getError = <
|
|
537
509
|
E extends Pick<EndpointInterface, 'key'>,
|
|
538
510
|
Args extends readonly [...Parameters<E['key']>],
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { EndpointInterface, ResolveType } from '@data-client/normalizr';
|
|
2
2
|
|
|
3
|
+
import ensurePojo from './ensurePojo.js';
|
|
3
4
|
import { EndpointUpdateFunction } from './types.js';
|
|
4
5
|
import { SET_TYPE } from '../actionTypes.js';
|
|
5
6
|
import type { SetAction, SetMeta } from '../types.js';
|
|
@@ -59,7 +60,7 @@ export default function createSet<
|
|
|
59
60
|
}
|
|
60
61
|
const now = Date.now();
|
|
61
62
|
const meta: SetMeta = {
|
|
62
|
-
args,
|
|
63
|
+
args: args.map(ensurePojo),
|
|
63
64
|
fetchedAt: fetchedAt ?? now,
|
|
64
65
|
date: now,
|
|
65
66
|
expiresAt: now + expiryLength,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const ensurePojo =
|
|
2
|
+
// FormData doesn't exist in node
|
|
3
|
+
/* istanbul ignore else we don't run coverage when we test node*/
|
|
4
|
+
typeof FormData !== 'undefined'
|
|
5
|
+
? (body: any) =>
|
|
6
|
+
body instanceof FormData
|
|
7
|
+
? Object.fromEntries((body as any).entries())
|
|
8
|
+
: body
|
|
9
|
+
: /* istanbul ignore next */
|
|
10
|
+
(body: any) => body;
|
|
11
|
+
export default ensurePojo;
|
package/src/index.ts
CHANGED
|
@@ -38,7 +38,7 @@ export type {
|
|
|
38
38
|
GenericDispatch,
|
|
39
39
|
} from './controller/Controller.js';
|
|
40
40
|
export { default as createFetch } from './controller/createFetch.js';
|
|
41
|
-
export { default as
|
|
41
|
+
export { default as createSet } from './controller/createSet.js';
|
|
42
42
|
|
|
43
43
|
export * from './controller/types.js';
|
|
44
44
|
export * as actionTypes from './actionTypes.js';
|
package/src/internal.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { DevToolsConfig };
|
|
|
7
7
|
|
|
8
8
|
const HASINTL = typeof Intl !== 'undefined';
|
|
9
9
|
const DEFAULT_CONFIG = {
|
|
10
|
-
name: `
|
|
10
|
+
name: `RDC: ${globalThis.document?.title}`,
|
|
11
11
|
autoPause: true,
|
|
12
12
|
serialize: {
|
|
13
13
|
options: undefined,
|
|
@@ -70,7 +70,7 @@ export default class DevToolsManager implements Manager {
|
|
|
70
70
|
action,
|
|
71
71
|
state.optimistic.reduce(reducer, state),
|
|
72
72
|
undefined,
|
|
73
|
-
'
|
|
73
|
+
'RDC',
|
|
74
74
|
);
|
|
75
75
|
});
|
|
76
76
|
return ret;
|
|
@@ -61,7 +61,7 @@ export default class NetworkManager implements Manager {
|
|
|
61
61
|
}
|
|
62
62
|
return Promise.resolve();
|
|
63
63
|
case SET_TYPE:
|
|
64
|
-
// only
|
|
64
|
+
// only set after new state is computed
|
|
65
65
|
return next(action).then(() => {
|
|
66
66
|
if (action.meta.key in this.fetched) {
|
|
67
67
|
// Note: meta *must* be set by reducer so this should be safe
|
|
@@ -69,7 +69,7 @@ export default class NetworkManager implements Manager {
|
|
|
69
69
|
controller.getState().meta[action.meta.key]?.error;
|
|
70
70
|
// processing errors result in state meta having error, so we should reject the promise
|
|
71
71
|
if (error) {
|
|
72
|
-
this.
|
|
72
|
+
this.handleSet(
|
|
73
73
|
createSet(action.endpoint, {
|
|
74
74
|
args: action.meta.args as any,
|
|
75
75
|
response: error,
|
|
@@ -78,7 +78,7 @@ export default class NetworkManager implements Manager {
|
|
|
78
78
|
}),
|
|
79
79
|
);
|
|
80
80
|
} else {
|
|
81
|
-
this.
|
|
81
|
+
this.handleSet(action);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
});
|
|
@@ -145,7 +145,7 @@ export default class NetworkManager implements Manager {
|
|
|
145
145
|
return this.controller.getState().lastReset;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
/** Called when middleware intercepts '
|
|
148
|
+
/** Called when middleware intercepts 'rdc/fetch' action.
|
|
149
149
|
*
|
|
150
150
|
* Will then start a promise for a key and potentially start the network
|
|
151
151
|
* fetch.
|
|
@@ -171,7 +171,7 @@ export default class NetworkManager implements Manager {
|
|
|
171
171
|
reject(error);
|
|
172
172
|
throw error;
|
|
173
173
|
});
|
|
174
|
-
// schedule non-throttled resolutions in a microtask before
|
|
174
|
+
// schedule non-throttled resolutions in a microtask before set
|
|
175
175
|
// this enables users awaiting their fetch to trigger any react updates needed to deal
|
|
176
176
|
// with upcoming changes because of the fetch (for instance avoiding suspense if something is deleted)
|
|
177
177
|
if (!throttle) {
|
|
@@ -224,11 +224,11 @@ export default class NetworkManager implements Manager {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
/** Called when middleware intercepts a
|
|
227
|
+
/** Called when middleware intercepts a set action.
|
|
228
228
|
*
|
|
229
|
-
* Will resolve the promise associated with
|
|
229
|
+
* Will resolve the promise associated with set key.
|
|
230
230
|
*/
|
|
231
|
-
protected
|
|
231
|
+
protected handleSet(action: SetAction) {
|
|
232
232
|
// this can still turn out to be untrue since this is async
|
|
233
233
|
if (action.meta.key in this.fetched) {
|
|
234
234
|
let promiseHandler: (value?: any) => void;
|
|
@@ -245,9 +245,9 @@ export default class NetworkManager implements Manager {
|
|
|
245
245
|
|
|
246
246
|
/** Attaches NetworkManager to store
|
|
247
247
|
*
|
|
248
|
-
* Intercepts '
|
|
248
|
+
* Intercepts 'rdc/fetch' actions to start requests.
|
|
249
249
|
*
|
|
250
|
-
* Resolve/rejects a request when matching '
|
|
250
|
+
* Resolve/rejects a request when matching 'rdc/set' event
|
|
251
251
|
* is seen.
|
|
252
252
|
*/
|
|
253
253
|
getMiddleware() {
|
|
@@ -25,7 +25,7 @@ export interface SubscriptionConstructable {
|
|
|
25
25
|
): Subscription;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
/** Handles subscription actions -> fetch or
|
|
28
|
+
/** Handles subscription actions -> fetch or set actions
|
|
29
29
|
*
|
|
30
30
|
* Constructor takes a SubscriptionConstructable class to control how
|
|
31
31
|
* subscriptions are handled. (e.g., polling, websockets)
|
|
@@ -75,7 +75,7 @@ export default class SubscriptionManager<S extends SubscriptionConstructable>
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
/** Called when middleware intercepts '
|
|
78
|
+
/** Called when middleware intercepts 'rdc/subscribe' action.
|
|
79
79
|
*
|
|
80
80
|
*/
|
|
81
81
|
protected handleSubscribe(action: SubscribeAction) {
|
|
@@ -92,7 +92,7 @@ export default class SubscriptionManager<S extends SubscriptionConstructable>
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
/** Called when middleware intercepts '
|
|
95
|
+
/** Called when middleware intercepts 'rdc/unsubscribe' action.
|
|
96
96
|
*
|
|
97
97
|
*/
|
|
98
98
|
protected handleUnsubscribe(action: UnsubscribeAction) {
|
|
@@ -112,10 +112,10 @@ export default class SubscriptionManager<S extends SubscriptionConstructable>
|
|
|
112
112
|
|
|
113
113
|
/** Attaches Manager to store
|
|
114
114
|
*
|
|
115
|
-
* Intercepts '
|
|
115
|
+
* Intercepts 'rdc/subscribe'/'rest-hordc/ribe' to register resources that
|
|
116
116
|
* need to be kept up to date.
|
|
117
117
|
*
|
|
118
|
-
* Will possibly dispatch '
|
|
118
|
+
* Will possibly dispatch 'rdc/fetch' or 'rest-hordc/' to keep resources fresh
|
|
119
119
|
*
|
|
120
120
|
*/
|
|
121
121
|
getMiddleware() {
|
|
@@ -20,7 +20,7 @@ exports[`PollingSubscription fresh data should call after period 1`] = `
|
|
|
20
20
|
"throttle": true,
|
|
21
21
|
},
|
|
22
22
|
"payload": [Function],
|
|
23
|
-
"type": "
|
|
23
|
+
"type": "rdc/fetch",
|
|
24
24
|
},
|
|
25
25
|
]
|
|
26
26
|
`;
|
|
@@ -39,7 +39,7 @@ exports[`PollingSubscription fresh data should call after period 2`] = `
|
|
|
39
39
|
"throttle": true,
|
|
40
40
|
},
|
|
41
41
|
"payload": [Function],
|
|
42
|
-
"type": "
|
|
42
|
+
"type": "rdc/fetch",
|
|
43
43
|
},
|
|
44
44
|
]
|
|
45
45
|
`;
|
|
@@ -43,7 +43,7 @@ describe('LogoutManager', () => {
|
|
|
43
43
|
controller: { value: controller },
|
|
44
44
|
},
|
|
45
45
|
);
|
|
46
|
-
it('should ignore non-error
|
|
46
|
+
it('should ignore non-error set', async () => {
|
|
47
47
|
const action = createSet(CoolerArticleResource.get, {
|
|
48
48
|
args: [{ id: 5 }],
|
|
49
49
|
response: { id: 5, title: 'hi' },
|
|
@@ -52,7 +52,7 @@ describe('LogoutManager', () => {
|
|
|
52
52
|
|
|
53
53
|
expect(dispatch.mock.calls.length).toBe(0);
|
|
54
54
|
});
|
|
55
|
-
it('should ignore non-401
|
|
55
|
+
it('should ignore non-401 set', async () => {
|
|
56
56
|
const error: any = new Error('network failed');
|
|
57
57
|
error.status = 404;
|
|
58
58
|
const action = createSet(CoolerArticleResource.get, {
|
|
@@ -4,7 +4,7 @@ import { ActionTypes } from '../../types';
|
|
|
4
4
|
import NetworkManager from '../NetworkManager';
|
|
5
5
|
|
|
6
6
|
const middleware: Middleware = new NetworkManager().getMiddleware();
|
|
7
|
-
it('middlewares should compose with non-
|
|
7
|
+
it('middlewares should compose with non-data-client middlewares', () => {
|
|
8
8
|
type AnotherAction = {
|
|
9
9
|
type: 'BOB';
|
|
10
10
|
payload: any;
|