@data-client/core 0.9.4 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +23 -1
  2. package/data_client_logo_and_text.svg +63 -0
  3. package/dist/index.js +10 -7
  4. package/dist/index.umd.min.js +1 -1
  5. package/legacy/controller/Controller.js +3 -3
  6. package/legacy/controller/createSet.js +1 -1
  7. package/legacy/controller/ensurePojo.js +2 -3
  8. package/legacy/controller/types.js +1 -1
  9. package/legacy/manager/DevtoolsManager.js +6 -2
  10. package/legacy/middlewareTypes.js +1 -1
  11. package/legacy/state/RIC.js +1 -1
  12. package/legacy/state/reducer/createReducer.js +3 -3
  13. package/legacy/state/reducer/setReducer.js +1 -1
  14. package/lib/controller/Controller.d.ts.map +1 -1
  15. package/lib/controller/Controller.js +3 -3
  16. package/lib/controller/createSet.js +1 -1
  17. package/lib/controller/ensurePojo.d.ts.map +1 -1
  18. package/lib/controller/ensurePojo.js +2 -3
  19. package/lib/controller/types.d.ts.map +1 -1
  20. package/lib/controller/types.js +1 -1
  21. package/lib/manager/DevtoolsManager.d.ts +1 -0
  22. package/lib/manager/DevtoolsManager.d.ts.map +1 -1
  23. package/lib/manager/DevtoolsManager.js +6 -2
  24. package/lib/middlewareTypes.d.ts.map +1 -1
  25. package/lib/middlewareTypes.js +1 -1
  26. package/lib/state/RIC.d.ts.map +1 -1
  27. package/lib/state/RIC.js +1 -1
  28. package/lib/state/reducer/createReducer.js +3 -3
  29. package/lib/state/reducer/setReducer.js +1 -1
  30. package/package.json +3 -3
  31. package/src/controller/Controller.ts +33 -36
  32. package/src/controller/createSet.ts +3 -2
  33. package/src/controller/ensurePojo.ts +6 -7
  34. package/src/controller/types.ts +2 -4
  35. package/src/manager/DevtoolsManager.ts +8 -2
  36. package/src/manager/__tests__/subscriptionManager.ts +3 -2
  37. package/src/middlewareTypes.ts +4 -12
  38. package/src/state/RIC.ts +3 -4
  39. package/src/state/__tests__/reducer.ts +7 -9
  40. package/src/state/reducer/setReducer.ts +3 -3
  41. package/ts3.4/manager/DevtoolsManager.d.ts +1 -0
  42. package/data_client_logo_and_text.png +0 -0
@@ -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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDX1RZUEUiLCJzZXRSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInBheWxvYWQiLCJfc3RhdGUkbWV0YSRhY3Rpb24kbWUiLCJ0eXBlIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJjYWxsIiwic25hcHNob3QiLCJtZXRhIiwiZmV0Y2hlZEF0IiwiYXJncyIsImUiLCJfZSRjb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yIiwibmFtZSIsInJlc3VsdCIsImVudGl0aWVzIiwiaW5kZXhlcyIsImVudGl0eU1ldGEiLCJzY2hlbWEiLCJyZXN1bHRzIiwia2V5IiwidXBkYXRlIiwidXBkYXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImNvbnNvbGUiLCJkYXRlIiwiZXhwaXJlc0F0IiwicHJldkV4cGlyZXNBdCIsIm9wdGltaXN0aWMiLCJmaWx0ZXJPcHRpbWlzdGljIiwibGFzdFJlc2V0IiwibWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJzdGF0dXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJlcnJvclBvbGljeSIsInJlc29sdmluZ0FjdGlvbiIsImZpbHRlciIsIm9wdGltaXN0aWNBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9zZXRSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBPUFRJTUlTVElDX1RZUEUgfSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YXRlLCBTZXRBY3Rpb24sIE9wdGltaXN0aWNBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZWR1Y2VyKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogT3B0aW1pc3RpY0FjdGlvbiB8IFNldEFjdGlvbixcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbikge1xuICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGFjdGlvbi5wYXlsb2FkKTtcbiAgfVxuICB0cnkge1xuICAgIGxldCBwYXlsb2FkOiBhbnk7XG4gICAgLy8gZm9yIHRydWUgc2V0J3MgcGF5bG9hZCBpcyBjb250YWluZWQgaW4gYWN0aW9uXG4gICAgaWYgKGFjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEUpIHtcbiAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgaWYgKCFhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlKSByZXR1cm4gc3RhdGU7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBjb21wdXRlIG9wdGltaXN0aWMgcmVzcG9uc2UgYmFzZWQgb24gY3VycmVudCBzdGF0ZVxuICAgICAgICBwYXlsb2FkID0gYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZS5jYWxsKFxuICAgICAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgICAgICBjb250cm9sbGVyLnNuYXBzaG90KHN0YXRlLCBhY3Rpb24ubWV0YS5mZXRjaGVkQXQpLFxuICAgICAgICAgIC4uLmFjdGlvbi5tZXRhLmFyZ3MsXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgLy8gQWJvcnRPcHRpbWlzdGljIG1lYW5zICdkbyBub3RoaW5nJywgb3RoZXJ3aXNlIHdlIGNvdW50IHRoZSBleGNlcHRpb24gYXMgZW5kcG9pbnQgZmFpbHVyZVxuICAgICAgICBpZiAoZS5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ0Fib3J0T3B0aW1pc3RpYycpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgIH1cbiAgICBjb25zdCB7IHJlc3VsdCwgZW50aXRpZXMsIGluZGV4ZXMsIGVudGl0eU1ldGEgfSA9IG5vcm1hbGl6ZShcbiAgICAgIHBheWxvYWQsXG4gICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgYWN0aW9uLm1ldGEuYXJncyBhcyBhbnksXG4gICAgICBzdGF0ZS5lbnRpdGllcyxcbiAgICAgIHN0YXRlLmluZGV4ZXMsXG4gICAgICBzdGF0ZS5lbnRpdHlNZXRhLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHRzID0ge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIFthY3Rpb24ubWV0YS5rZXldOiByZXN1bHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGlvbi5lbmRwb2ludC51cGRhdGUpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlcnMgPSBhY3Rpb24uZW5kcG9pbnQudXBkYXRlKHJlc3VsdCwgLi4uYWN0aW9uLm1ldGEuYXJncyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgcmVzdWx0c1trZXldID0gdXBkYXRlcnNba2V5XShyZXN1bHRzW2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIG5vIHJlYXNvbiB0byBjb21wbGV0ZWx5IGZhaWwgYmVjYXVzZSBvZiB1c2VyLWNvZGUgZXJyb3JcbiAgICAgIC8vIGludGVncml0eSBvZiB0aGlzIHN0YXRlIHVwZGF0ZSBpcyBzdGlsbCBndWFyYW50ZWVkXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIGVycm9yIG9jY3VyZWQgZHVyaW5nIEVuZHBvaW50LnVwZGF0ZSgpIGZvciAke2FjdGlvbi5tZXRhLmtleX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBpbmRleGVzLFxuICAgICAgcmVzdWx0cyxcbiAgICAgIGVudGl0eU1ldGEsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIC4uLnN0YXRlLm1ldGEsXG4gICAgICAgIFthY3Rpb24ubWV0YS5rZXldOiB7XG4gICAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgICBwcmV2RXhwaXJlc0F0OiBzdGF0ZS5tZXRhW2FjdGlvbi5tZXRhLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgICAgbGFzdFJlc2V0OiBzdGF0ZS5sYXN0UmVzZXQsXG4gICAgfTtcbiAgICAvLyByZWR1Y2VyIG11c3QgdXBkYXRlIHRoZSBzdGF0ZSwgc28gaW4gY2FzZSBvZiBwcm9jZXNzaW5nIGVycm9ycyB3ZSBzaW1wbHkgY29tcHV0ZSB0aGUgcmVzdWx0cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLm1ldGEua2V5XG4gICAgICB9XFxuXFxuRnVsbCBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGFjdGlvbi5lbmRwb2ludC5zY2hlbWEsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgMixcbiAgICAgICl9XFxuXFxuRXJyb3I6XFxuJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICBpZiAoJ3BheWxvYWQnIGluIGFjdGlvbikgZXJyb3IucGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgIH1cblxuICAgIC8vIHRoaXMgaXMgbm90IGFsd2F5cyBidWJibGVkIHVwLCBzbyBsZXQncyBkb3VibGUgc3VyZSB0aGlzIGRvZXNuJ3QgZmFpbCBzaWxlbnRseVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gcmVkdWNlRXJyb3Ioc3RhdGUsIGFjdGlvbiwgZXJyb3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlZHVjZUVycm9yKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogU2V0QWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHtcbiAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICBlcnJvclBvbGljeTogYWN0aW9uLmVuZHBvaW50LmVycm9yUG9saWN5Py4oZXJyb3IpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gIH07XG59XG4vKiogRmlsdGVyIGFsbCByZXF1ZXN0cyB3aXRoIHNhbWUgc2VyaWFsaXphdGlvbiB0aGF0IGRpZCBub3Qgc3RhcnQgYWZ0ZXIgdGhlIHJlc29sdmluZyByZXF1ZXN0ICovXG5mdW5jdGlvbiBmaWx0ZXJPcHRpbWlzdGljKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIHJlc29sdmluZ0FjdGlvbjogU2V0QWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmtleSAhPT0gcmVzb2x2aW5nQWN0aW9uLm1ldGEua2V5IHx8XG4gICAgICAob3B0aW1pc3RpY0FjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEVcbiAgICAgICAgPyBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZmV0Y2hlZEF0ICE9PSByZXNvbHZpbmdBY3Rpb24ubWV0YS5mZXRjaGVkQXRcbiAgICAgICAgOiBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZGF0ZSA+IHJlc29sdmluZ0FjdGlvbi5tZXRhLmRhdGUpLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsd0JBQXdCO0FBRWxELFNBQVNDLGVBQWUsUUFBUSxzQkFBc0I7QUFJdEQsT0FBTyxTQUFTQyxVQUFVQSxDQUN4QkMsS0FBcUIsRUFDckJDLE1BQW9DLEVBQ3BDQyxVQUFzQixFQUN0QjtFQUNBLElBQUlELE1BQU0sQ0FBQ0UsS0FBSyxFQUFFO0lBQ2hCLE9BQU9DLFdBQVcsQ0FBQ0osS0FBSyxFQUFFQyxNQUFNLEVBQUVBLE1BQU0sQ0FBQ0ksT0FBTyxDQUFDO0VBQ25EO0VBQ0EsSUFBSTtJQUFBLElBQUFDLHFCQUFBO0lBQ0YsSUFBSUQsT0FBWTtJQUNoQjtJQUNBLElBQUlKLE1BQU0sQ0FBQ00sSUFBSSxLQUFLVCxlQUFlLEVBQUU7TUFDbkM7TUFDQSxJQUFJLENBQUNHLE1BQU0sQ0FBQ08sUUFBUSxDQUFDQyxxQkFBcUIsRUFBRSxPQUFPVCxLQUFLO01BQ3hELElBQUk7UUFDRjtRQUNBSyxPQUFPLEdBQUdKLE1BQU0sQ0FBQ08sUUFBUSxDQUFDQyxxQkFBcUIsQ0FBQ0MsSUFBSSxDQUNsRFQsTUFBTSxDQUFDTyxRQUFRLEVBQ2ZOLFVBQVUsQ0FBQ1MsUUFBUSxDQUFDWCxLQUFLLEVBQUVDLE1BQU0sQ0FBQ1csSUFBSSxDQUFDQyxTQUFTLENBQUMsRUFDakQsR0FBR1osTUFBTSxDQUFDVyxJQUFJLENBQUNFLElBQ2pCLENBQUM7TUFDSCxDQUFDLENBQUMsT0FBT0MsQ0FBTSxFQUFFO1FBQUEsSUFBQUMsY0FBQTtRQUNmO1FBQ0EsSUFBSSxFQUFBQSxjQUFBLEdBQUFELENBQUMsQ0FBQ0UsV0FBVyxxQkFBYkQsY0FBQSxDQUFlRSxJQUFJLE1BQUssaUJBQWlCLEVBQUU7VUFDN0MsT0FBT2xCLEtBQUs7UUFDZDtRQUNBLE1BQU1lLENBQUM7TUFDVDtJQUNGLENBQUMsTUFBTTtNQUNMVixPQUFPLEdBQUdKLE1BQU0s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
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDX1RZUEUiLCJzZXRSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInBheWxvYWQiLCJfc3RhdGUkbWV0YSRhY3Rpb24kbWUiLCJ0eXBlIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJjYWxsIiwic25hcHNob3QiLCJtZXRhIiwiZmV0Y2hlZEF0IiwiYXJncyIsImUiLCJfZSRjb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yIiwibmFtZSIsInJlc3VsdCIsImVudGl0aWVzIiwiaW5kZXhlcyIsImVudGl0eU1ldGEiLCJzY2hlbWEiLCJyZXN1bHRzIiwia2V5IiwidXBkYXRlIiwidXBkYXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImNvbnNvbGUiLCJkYXRlIiwiZXhwaXJlc0F0IiwicHJldkV4cGlyZXNBdCIsIm9wdGltaXN0aWMiLCJmaWx0ZXJPcHRpbWlzdGljIiwibGFzdFJlc2V0IiwibWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJzdGF0dXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJlcnJvclBvbGljeSIsInJlc29sdmluZ0FjdGlvbiIsImZpbHRlciIsIm9wdGltaXN0aWNBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9zZXRSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBPUFRJTUlTVElDX1RZUEUgfSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YXRlLCBTZXRBY3Rpb24sIE9wdGltaXN0aWNBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZWR1Y2VyKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogT3B0aW1pc3RpY0FjdGlvbiB8IFNldEFjdGlvbixcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbikge1xuICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGFjdGlvbi5wYXlsb2FkKTtcbiAgfVxuICB0cnkge1xuICAgIGxldCBwYXlsb2FkOiBhbnk7XG4gICAgLy8gZm9yIHRydWUgc2V0J3MgcGF5bG9hZCBpcyBjb250YWluZWQgaW4gYWN0aW9uXG4gICAgaWYgKGFjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEUpIHtcbiAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgaWYgKCFhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlKSByZXR1cm4gc3RhdGU7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBjb21wdXRlIG9wdGltaXN0aWMgcmVzcG9uc2UgYmFzZWQgb24gY3VycmVudCBzdGF0ZVxuICAgICAgICBwYXlsb2FkID0gYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZS5jYWxsKFxuICAgICAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgICAgICBjb250cm9sbGVyLnNuYXBzaG90KHN0YXRlLCBhY3Rpb24ubWV0YS5mZXRjaGVkQXQpLFxuICAgICAgICAgIC4uLmFjdGlvbi5tZXRhLmFyZ3MsXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgLy8gQWJvcnRPcHRpbWlzdGljIG1lYW5zICdkbyBub3RoaW5nJywgb3RoZXJ3aXNlIHdlIGNvdW50IHRoZSBleGNlcHRpb24gYXMgZW5kcG9pbnQgZmFpbHVyZVxuICAgICAgICBpZiAoZS5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ0Fib3J0T3B0aW1pc3RpYycpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgIH1cbiAgICBjb25zdCB7IHJlc3VsdCwgZW50aXRpZXMsIGluZGV4ZXMsIGVudGl0eU1ldGEgfSA9IG5vcm1hbGl6ZShcbiAgICAgIHBheWxvYWQsXG4gICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgYWN0aW9uLm1ldGEuYXJncyBhcyBhbnksXG4gICAgICBzdGF0ZS5lbnRpdGllcyxcbiAgICAgIHN0YXRlLmluZGV4ZXMsXG4gICAgICBzdGF0ZS5lbnRpdHlNZXRhLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHRzID0ge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIFthY3Rpb24ubWV0YS5rZXldOiByZXN1bHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGlvbi5lbmRwb2ludC51cGRhdGUpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlcnMgPSBhY3Rpb24uZW5kcG9pbnQudXBkYXRlKHJlc3VsdCwgLi4uYWN0aW9uLm1ldGEuYXJncyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgcmVzdWx0c1trZXldID0gdXBkYXRlcnNba2V5XShyZXN1bHRzW2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIG5vIHJlYXNvbiB0byBjb21wbGV0ZWx5IGZhaWwgYmVjYXVzZSBvZiB1c2VyLWNvZGUgZXJyb3JcbiAgICAgIC8vIGludGVncml0eSBvZiB0aGlzIHN0YXRlIHVwZGF0ZSBpcyBzdGlsbCBndWFyYW50ZWVkXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIGVycm9yIG9jY3VyZWQgZHVyaW5nIEVuZHBvaW50LnVwZGF0ZSgpIGZvciAke2FjdGlvbi5tZXRhLmtleX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBpbmRleGVzLFxuICAgICAgcmVzdWx0cyxcbiAgICAgIGVudGl0eU1ldGEsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIC4uLnN0YXRlLm1ldGEsXG4gICAgICAgIFthY3Rpb24ubWV0YS5rZXldOiB7XG4gICAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgICBwcmV2RXhwaXJlc0F0OiBzdGF0ZS5tZXRhW2FjdGlvbi5tZXRhLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgICAgbGFzdFJlc2V0OiBzdGF0ZS5sYXN0UmVzZXQsXG4gICAgfTtcbiAgICAvLyByZWR1Y2VyIG11c3QgdXBkYXRlIHRoZSBzdGF0ZSwgc28gaW4gY2FzZSBvZiBwcm9jZXNzaW5nIGVycm9ycyB3ZSBzaW1wbHkgY29tcHV0ZSB0aGUgcmVzdWx0cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLm1ldGEua2V5XG4gICAgICB9XFxuXFxuRnVsbCBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGFjdGlvbi5lbmRwb2ludC5zY2hlbWEsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgMixcbiAgICAgICl9XFxuXFxuRXJyb3I6XFxuJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICBpZiAoJ3BheWxvYWQnIGluIGFjdGlvbikgZXJyb3IucGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgIH1cblxuICAgIC8vIHRoaXMgaXMgbm90IGFsd2F5cyBidWJibGVkIHVwLCBzbyBsZXQncyBkb3VibGUgc3VyZSB0aGlzIGRvZXNuJ3QgZmFpbCBzaWxlbnRseVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gcmVkdWNlRXJyb3Ioc3RhdGUsIGFjdGlvbiwgZXJyb3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlZHVjZUVycm9yKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogU2V0QWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHtcbiAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICBlcnJvclBvbGljeTogYWN0aW9uLmVuZHBvaW50LmVycm9yUG9saWN5Py4oZXJyb3IpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gIH07XG59XG4vKiogRmlsdGVyIGFsbCByZXF1ZXN0cyB3aXRoIHNhbWUgc2VyaWFsaXphdGlvbiB0aGF0IGRpZCBub3Qgc3RhcnQgYWZ0ZXIgdGhlIHJlc29sdmluZyByZXF1ZXN0ICovXG5mdW5jdGlvbiBmaWx0ZXJPcHRpbWlzdGljKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIHJlc29sdmluZ0FjdGlvbjogU2V0QWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmtleSAhPT0gcmVzb2x2aW5nQWN0aW9uLm1ldGEua2V5IHx8XG4gICAgICAob3B0aW1pc3RpY0FjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEUgP1xuICAgICAgICBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZmV0Y2hlZEF0ICE9PSByZXNvbHZpbmdBY3Rpb24ubWV0YS5mZXRjaGVkQXRcbiAgICAgIDogb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmRhdGUgPiByZXNvbHZpbmdBY3Rpb24ubWV0YS5kYXRlKSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxRQUFRLHdCQUF3QjtBQUVsRCxTQUFTQyxlQUFlLFFBQVEsc0JBQXNCO0FBSXRELE9BQU8sU0FBU0MsVUFBVUEsQ0FDeEJDLEtBQXFCLEVBQ3JCQyxNQUFvQyxFQUNwQ0MsVUFBc0IsRUFDdEI7RUFDQSxJQUFJRCxNQUFNLENBQUNFLEtBQUssRUFBRTtJQUNoQixPQUFPQyxXQUFXLENBQUNKLEtBQUssRUFBRUMsTUFBTSxFQUFFQSxNQUFNLENBQUNJLE9BQU8sQ0FBQztFQUNuRDtFQUNBLElBQUk7SUFBQSxJQUFBQyxxQkFBQTtJQUNGLElBQUlELE9BQVk7SUFDaEI7SUFDQSxJQUFJSixNQUFNLENBQUNNLElBQUksS0FBS1QsZUFBZSxFQUFFO01BQ25DO01BQ0EsSUFBSSxDQUFDRyxNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLEVBQUUsT0FBT1QsS0FBSztNQUN4RCxJQUFJO1FBQ0Y7UUFDQUssT0FBTyxHQUFHSixNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLENBQUNDLElBQUksQ0FDbERULE1BQU0sQ0FBQ08sUUFBUSxFQUNmTixVQUFVLENBQUNTLFFBQVEsQ0FBQ1gsS0FBSyxFQUFFQyxNQUFNLENBQUNXLElBQUksQ0FBQ0MsU0FBUyxDQUFDLEVBQ2pELEdBQUdaLE1BQU0sQ0FBQ1csSUFBSSxDQUFDRSxJQUNqQixDQUFDO01BQ0gsQ0FBQyxDQUFDLE9BQU9DLENBQU0sRUFBRTtRQUFBLElBQUFDLGNBQUE7UUFDZjtRQUNBLElBQUksRUFBQUEsY0FBQSxHQUFBRCxDQUFDLENBQUNFLFdBQVcscUJBQWJELGNBQUEsQ0FBZUUsSUFBSSxNQUFLLGlCQUFpQixFQUFFO1VBQzdDLE9BQU9sQixLQUFLO1FBQ2Q7UUFDQSxNQUFNZSxDQUFDO01BQ1Q7SUFDRixDQUFDLE1BQU07TUFDTFYsT0FBTyxHQUFHSixNQUFNLENB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-client/core",
3
- "version": "0.9.4",
3
+ "version": "0.10.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
- "./data_client_logo_and_text.png"
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": "^0.9.4",
123
+ "@data-client/normalizr": "^0.10.0",
124
124
  "flux-standard-action": "^2.1.1"
125
125
  },
126
126
  "devDependencies": {
@@ -103,9 +103,8 @@ export default class Controller<
103
103
  >(
104
104
  endpoint: E,
105
105
  ...args: readonly [...Parameters<E>]
106
- ): E['schema'] extends undefined | null
107
- ? ReturnType<E>
108
- : Promise<Denormalize<E['schema']>> => {
106
+ ): E['schema'] extends undefined | null ? ReturnType<E>
107
+ : Promise<Denormalize<E['schema']>> => {
109
108
  const action = createFetch(endpoint, {
110
109
  args,
111
110
  });
@@ -128,9 +127,8 @@ export default class Controller<
128
127
  >(
129
128
  endpoint: E,
130
129
  ...args: readonly [...Parameters<E>]
131
- ): E['schema'] extends undefined | null
132
- ? ReturnType<E> | ResolveType<E>
133
- : Promise<Denormalize<E['schema']>> | Denormalize<E['schema']> => {
130
+ ): E['schema'] extends undefined | null ? ReturnType<E> | ResolveType<E>
131
+ : Promise<Denormalize<E['schema']>> | Denormalize<E['schema']> => {
134
132
  const { data, expiresAt, expiryStatus } = this.getResponse(
135
133
  endpoint,
136
134
  ...args,
@@ -149,13 +147,13 @@ export default class Controller<
149
147
  endpoint: E,
150
148
  ...args: readonly [...Parameters<E>] | readonly [null]
151
149
  ): Promise<void> =>
152
- args[0] !== null
153
- ? this.dispatch(
154
- createInvalidate(endpoint, {
155
- args: args as readonly [...Parameters<E>],
156
- }),
157
- )
158
- : Promise.resolve();
150
+ args[0] !== null ?
151
+ this.dispatch(
152
+ createInvalidate(endpoint, {
153
+ args: args as readonly [...Parameters<E>],
154
+ }),
155
+ )
156
+ : Promise.resolve();
159
157
 
160
158
  /**
161
159
  * Forces refetching and suspense on useSuspense on all matching endpoint result keys.
@@ -261,13 +259,13 @@ export default class Controller<
261
259
  endpoint: E,
262
260
  ...args: readonly [...Parameters<E>] | readonly [null]
263
261
  ): Promise<void> =>
264
- args[0] !== null
265
- ? this.dispatch(
266
- createSubscription(endpoint, {
267
- args: args as readonly [...Parameters<E>],
268
- }),
269
- )
270
- : Promise.resolve();
262
+ args[0] !== null ?
263
+ this.dispatch(
264
+ createSubscription(endpoint, {
265
+ args: args as readonly [...Parameters<E>],
266
+ }),
267
+ )
268
+ : Promise.resolve();
271
269
 
272
270
  /**
273
271
  * Marks completion of subscription to a given Endpoint.
@@ -283,13 +281,13 @@ export default class Controller<
283
281
  endpoint: E,
284
282
  ...args: readonly [...Parameters<E>] | readonly [null]
285
283
  ): Promise<void> =>
286
- args[0] !== null
287
- ? this.dispatch(
288
- createUnsubscription(endpoint, {
289
- args: args as readonly [...Parameters<E>],
290
- }),
291
- )
292
- : Promise.resolve();
284
+ args[0] !== null ?
285
+ this.dispatch(
286
+ createUnsubscription(endpoint, {
287
+ args: args as readonly [...Parameters<E>],
288
+ }),
289
+ )
290
+ : Promise.resolve();
293
291
 
294
292
  /*************** More ***************/
295
293
 
@@ -386,10 +384,9 @@ export default class Controller<
386
384
  if (!endpoint.schema || !schemaHasEntity(endpoint.schema)) {
387
385
  return {
388
386
  data: results,
389
- expiryStatus: meta?.invalidated
390
- ? ExpiryStatus.Invalid
391
- : cacheResults && !endpoint.invalidIfStale
392
- ? ExpiryStatus.Valid
387
+ expiryStatus:
388
+ meta?.invalidated ? ExpiryStatus.Invalid
389
+ : cacheResults && !endpoint.invalidIfStale ? ExpiryStatus.Valid
393
390
  : ExpiryStatus.InvalidIfStale,
394
391
  expiresAt: expiresAt || 0,
395
392
  } as {
@@ -423,11 +420,11 @@ export default class Controller<
423
420
  // we don't track the difference between stale or fresh because that is tied to triggering
424
421
  // conditions
425
422
  const expiryStatus =
426
- meta?.invalidated || (invalidDenormalize && !meta?.error)
427
- ? ExpiryStatus.Invalid
428
- : invalidDenormalize || endpoint.invalidIfStale || invalidResults
429
- ? ExpiryStatus.InvalidIfStale
430
- : ExpiryStatus.Valid;
423
+ meta?.invalidated || (invalidDenormalize && !meta?.error) ?
424
+ ExpiryStatus.Invalid
425
+ : invalidDenormalize || endpoint.invalidIfStale || invalidResults ?
426
+ ExpiryStatus.InvalidIfStale
427
+ : ExpiryStatus.Valid;
431
428
 
432
429
  return { data, expiryStatus, expiresAt };
433
430
  };
@@ -51,8 +51,9 @@ export default function createSet<
51
51
  error?: boolean;
52
52
  },
53
53
  ): SetAction<E> {
54
- const expiryLength: number = error
55
- ? endpoint.errorExpiryLength ?? 1000
54
+ const expiryLength: number =
55
+ error ?
56
+ endpoint.errorExpiryLength ?? 1000
56
57
  : endpoint.dataExpiryLength ?? 60000;
57
58
  /* istanbul ignore next */
58
59
  if (process.env.NODE_ENV === 'development' && expiryLength < 0) {
@@ -1,11 +1,10 @@
1
1
  export const ensurePojo =
2
2
  // FormData doesn't exist in node
3
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;
4
+ typeof FormData !== 'undefined' ?
5
+ (body: any) =>
6
+ body instanceof FormData ?
7
+ Object.fromEntries((body as any).entries())
8
+ : body
9
+ : /* istanbul ignore next */ (body: any) => body;
11
10
  export default ensurePojo;
@@ -4,10 +4,8 @@ import type {
4
4
  ResolveType,
5
5
  } from '@data-client/normalizr';
6
6
 
7
- export type ResultEntry<E extends EndpointInterface> = E['schema'] extends
8
- | undefined
9
- | null
10
- ? ResolveType<E>
7
+ export type ResultEntry<E extends EndpointInterface> =
8
+ E['schema'] extends undefined | null ? ResolveType<E>
11
9
  : Normalize<E['schema']>;
12
10
 
13
11
  export type EndpointUpdateFunction<
@@ -47,8 +47,9 @@ if (process.env.NODE_ENV !== 'production') {
47
47
  serialize: {
48
48
  options: undefined,
49
49
  /* istanbul ignore next */
50
- replacer: HASINTL
51
- ? (key: string | number | symbol, value: unknown) => {
50
+ replacer:
51
+ HASINTL ?
52
+ (key: string | number | symbol, value: unknown) => {
52
53
  if (
53
54
  typeof value === 'number' &&
54
55
  typeof key === 'string' &&
@@ -81,6 +82,7 @@ export default class DevToolsManager implements Manager {
81
82
  protected started = false;
82
83
  protected actions: [ActionTypes, State<unknown>][] = [];
83
84
  protected declare controller: Controller;
85
+ maxBufferLength = 100;
84
86
 
85
87
  constructor(
86
88
  config?: DevToolsConfig,
@@ -150,6 +152,10 @@ export default class DevToolsManager implements Manager {
150
152
  if (this.started) {
151
153
  this.devTools.send(action, state, undefined, 'RDC');
152
154
  } else {
155
+ // avoid this getting too big in case this is long running
156
+ // we cut in half so we aren't constantly reallocating
157
+ if (this.actions.length > this.maxBufferLength)
158
+ this.actions = this.actions.slice(this.maxBufferLength / 2);
153
159
  // queue actions
154
160
  this.actions.push([action, state]);
155
161
  }
@@ -51,8 +51,9 @@ describe('SubscriptionManager', () => {
51
51
  payload: Record<string, any>,
52
52
  reject = false,
53
53
  ): SubscribeAction {
54
- const fetch = reject
55
- ? () => Promise.reject(new Error('Failed'))
54
+ const fetch =
55
+ reject ?
56
+ () => Promise.reject(new Error('Failed'))
56
57
  : () => Promise.resolve(payload);
57
58
  return {
58
59
  type: SUBSCRIBE_TYPE,
@@ -25,15 +25,7 @@ export type Dispatch<R extends Reducer<any, any>> = (
25
25
  ) => Promise<void>;
26
26
 
27
27
  export type Reducer<S, A> = (prevState: S, action: A) => S;
28
- export type ReducerState<R extends Reducer<any, any>> = R extends Reducer<
29
- infer S,
30
- any
31
- >
32
- ? S
33
- : never;
34
- export type ReducerAction<R extends Reducer<any, any>> = R extends Reducer<
35
- any,
36
- infer A
37
- >
38
- ? A
39
- : never;
28
+ export type ReducerState<R extends Reducer<any, any>> =
29
+ R extends Reducer<infer S, any> ? S : never;
30
+ export type ReducerAction<R extends Reducer<any, any>> =
31
+ R extends Reducer<any, infer A> ? A : never;
package/src/state/RIC.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  const RIC: (cb: (...args: any[]) => void, options: any) => void = (
2
- typeof requestIdleCallback === 'function'
3
- ? requestIdleCallback
4
- : (cb: any) => setTimeout(cb, 0)
5
- ) as any;
2
+ typeof requestIdleCallback === 'function' ? requestIdleCallback : (
3
+ (cb: any) => setTimeout(cb, 0)
4
+ )) as any;
6
5
  export default RIC;
@@ -159,17 +159,15 @@ describe('reducer', () => {
159
159
  existing: any,
160
160
  incoming: any,
161
161
  ) {
162
- return this.shouldReorder(
163
- existingMeta,
164
- incomingMeta,
165
- existing,
166
- incoming,
167
- )
168
- ? existingMeta
162
+ return (
163
+ this.shouldReorder(existingMeta, incomingMeta, existing, incoming)
164
+ ) ?
165
+ existingMeta
169
166
  : {
170
167
  ...incomingMeta,
171
- expiresAt: incoming.content
172
- ? incomingMeta.expiresAt
168
+ expiresAt:
169
+ incoming.content ?
170
+ incomingMeta.expiresAt
173
171
  : existingMeta.expiresAt,
174
172
  };
175
173
  }
@@ -138,8 +138,8 @@ function filterOptimistic(
138
138
  return state.optimistic.filter(
139
139
  optimisticAction =>
140
140
  optimisticAction.meta.key !== resolvingAction.meta.key ||
141
- (optimisticAction.type === OPTIMISTIC_TYPE
142
- ? optimisticAction.meta.fetchedAt !== resolvingAction.meta.fetchedAt
143
- : optimisticAction.meta.date > resolvingAction.meta.date),
141
+ (optimisticAction.type === OPTIMISTIC_TYPE ?
142
+ optimisticAction.meta.fetchedAt !== resolvingAction.meta.fetchedAt
143
+ : optimisticAction.meta.date > resolvingAction.meta.date),
144
144
  );
145
145
  }
@@ -18,6 +18,7 @@ export default class DevToolsManager implements Manager {
18
18
  State<unknown>
19
19
  ][];
20
20
  protected controller: Controller;
21
+ maxBufferLength: number;
21
22
  constructor(config?: DevToolsConfig, skipLogging?: (action: ActionTypes) => boolean);
22
23
  handleAction(action: any, state: any): void;
23
24
  /** Called when initial state is ready */
Binary file