@civet/core 1.3.0 → 1.4.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.
@@ -8,11 +8,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _react = require("react");
9
9
  var _DataProvider = require("./DataProvider");
10
10
  var _context = require("./context");
11
+ var _jsxRuntime = require("react/jsx-runtime");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
13
  /**
13
14
  * Provides general configuration to its descendants using React's context API.
14
- */
15
- function ConfigProvider(_ref) {
15
+ */function ConfigProvider(_ref) {
16
16
  var dataProvider = _ref.dataProvider,
17
17
  children = _ref.children;
18
18
  var context = (0, _react.useMemo)(function () {
@@ -20,9 +20,10 @@ function ConfigProvider(_ref) {
20
20
  dataProvider: dataProvider
21
21
  };
22
22
  }, [dataProvider]);
23
- return /*#__PURE__*/React.createElement(_context.ConfigContext.Provider, {
24
- value: context
25
- }, children);
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.ConfigContext.Provider, {
24
+ value: context,
25
+ children: children
26
+ });
26
27
  }
27
28
  ConfigProvider.propTypes = {
28
29
  dataProvider: _DataProvider.dataProviderPropType,
@@ -76,7 +76,7 @@ var DataProvider = /*#__PURE__*/function () {
76
76
  }
77
77
  }, {
78
78
  key: "get",
79
- value: function get(resource, query, options, meta) {
79
+ value: function get(resource, query, options, meta, abortSignal) {
80
80
  var _this = this;
81
81
  return new Promise(function (resolve, reject) {
82
82
  return _this.continuousGet(resource, query, options, meta, function (error, done, result) {
@@ -85,7 +85,7 @@ var DataProvider = /*#__PURE__*/function () {
85
85
  return;
86
86
  }
87
87
  if (done) resolve(result);
88
- });
88
+ }, abortSignal);
89
89
  });
90
90
  }
91
91
  }, {
package/lib/Resource.js CHANGED
@@ -9,9 +9,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _DataProvider = require("./DataProvider");
10
10
  var _context = require("./context");
11
11
  var _useResource = _interopRequireDefault(require("./useResource"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
12
13
  var _excluded = ["dataProvider", "name", "query", "empty", "options", "persistent", "children"];
13
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -20,25 +20,28 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
20
20
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
21
21
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
22
22
  var propTypes = {
23
- /** DataProvider to be used for requests */
23
+ /** DataProvider to be used for requests - must not be changed */
24
24
  dataProvider: _DataProvider.dataProviderPropType,
25
25
  /** Resource name */
26
26
  name: _propTypes["default"].string.isRequired,
27
- /** Query */
27
+ /** Query instructions */
28
28
  query: _propTypes["default"].any,
29
- /** Whether to prevent fetching data */
29
+ /** Disables fetching data, resulting in an empty data array */
30
30
  empty: _propTypes["default"].bool,
31
- /** DataProvider options for requests */
31
+ /** Query options for requests */
32
32
  options: _propTypes["default"].object,
33
- /** Whether stale data should be retained during the next request - this only applies if neither dataProvider nor name have changed, unless set to "very" */
33
+ /** Whether stale data should be retained during the next request - this only applies if name did not change, unless set to "very" */
34
34
  persistent: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].oneOf(['very'])]),
35
35
  children: _propTypes["default"].node
36
36
  };
37
37
 
38
38
  /**
39
- * Makes data from an DataProvider available to its descendants using React's context API.
40
- * If not explicitly specified, necessary configuration is taken from the nearest <ConfigProvider>.
41
- * The provided DataProvider must not be replaced.
39
+ * Provides data based on the given request details and DataProvider.
40
+ * Context provider for the ResourceContext.
41
+ *
42
+ * Necessary configuration that is not directly specified is taken from the ConfigContext.
43
+ *
44
+ * The provided DataProvider must not be changed.
42
45
  */
43
46
  function Resource(_ref) {
44
47
  var dataProvider = _ref.dataProvider,
@@ -61,15 +64,17 @@ function Resource(_ref) {
61
64
  return (
62
65
  // eslint-disable-next-line react/display-name
63
66
  function (result) {
64
- return /*#__PURE__*/React.createElement(Plugin, _extends({}, rest, {
65
- context: result
66
- }), next);
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Plugin, _objectSpread(_objectSpread({}, rest), {}, {
68
+ context: result,
69
+ children: next
70
+ }));
67
71
  }
68
72
  );
69
73
  }, function (result) {
70
- return /*#__PURE__*/React.createElement(_context.ResourceContext.Provider, {
71
- value: result
72
- }, children);
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.ResourceContext.Provider, {
75
+ value: result,
76
+ children: children
77
+ });
73
78
  })(context);
74
79
  }
75
80
  Resource.propTypes = propTypes;
@@ -179,9 +179,11 @@ function fetchData(requestInstruction, instance, abortSignal, dispatch) {
179
179
  }
180
180
 
181
181
  /**
182
- * Makes data from a DataProvider available.
183
- * If not explicitly specified, necessary configuration is taken from the nearest <ConfigProvider>.
184
- * The provided DataProvider must not be replaced.
182
+ * Provides data based on the given request details and DataProvider.
183
+ *
184
+ * Necessary configuration that is not directly specified is taken from the ConfigContext.
185
+ *
186
+ * The provided DataProvider must not be changed.
185
187
  */
186
188
  function useResource(_ref) {
187
189
  var dataProviderProp = _ref.dataProvider,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@civet/core",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Civet",
5
5
  "main": "./lib/index.js",
6
6
  "exports": {
@@ -56,15 +56,22 @@ class DataProvider {
56
56
  this.notifier.trigger(resource);
57
57
  }
58
58
 
59
- get(resource, query, options, meta) {
59
+ get(resource, query, options, meta, abortSignal) {
60
60
  return new Promise((resolve, reject) =>
61
- this.continuousGet(resource, query, options, meta, (error, done, result) => {
62
- if (error != null) {
63
- reject(error);
64
- return;
65
- }
66
- if (done) resolve(result);
67
- }),
61
+ this.continuousGet(
62
+ resource,
63
+ query,
64
+ options,
65
+ meta,
66
+ (error, done, result) => {
67
+ if (error != null) {
68
+ reject(error);
69
+ return;
70
+ }
71
+ if (done) resolve(result);
72
+ },
73
+ abortSignal,
74
+ ),
68
75
  );
69
76
  }
70
77
 
package/src/Resource.jsx CHANGED
@@ -4,25 +4,28 @@ import { ResourceContext } from './context';
4
4
  import useResource from './useResource';
5
5
 
6
6
  const propTypes = {
7
- /** DataProvider to be used for requests */
7
+ /** DataProvider to be used for requests - must not be changed */
8
8
  dataProvider: dataProviderPropType,
9
9
  /** Resource name */
10
10
  name: PropTypes.string.isRequired,
11
- /** Query */
11
+ /** Query instructions */
12
12
  query: PropTypes.any,
13
- /** Whether to prevent fetching data */
13
+ /** Disables fetching data, resulting in an empty data array */
14
14
  empty: PropTypes.bool,
15
- /** DataProvider options for requests */
15
+ /** Query options for requests */
16
16
  options: PropTypes.object,
17
- /** Whether stale data should be retained during the next request - this only applies if neither dataProvider nor name have changed, unless set to "very" */
17
+ /** Whether stale data should be retained during the next request - this only applies if name did not change, unless set to "very" */
18
18
  persistent: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['very'])]),
19
19
  children: PropTypes.node,
20
20
  };
21
21
 
22
22
  /**
23
- * Makes data from an DataProvider available to its descendants using React's context API.
24
- * If not explicitly specified, necessary configuration is taken from the nearest <ConfigProvider>.
25
- * The provided DataProvider must not be replaced.
23
+ * Provides data based on the given request details and DataProvider.
24
+ * Context provider for the ResourceContext.
25
+ *
26
+ * Necessary configuration that is not directly specified is taken from the ConfigContext.
27
+ *
28
+ * The provided DataProvider must not be changed.
26
29
  */
27
30
  function Resource({ dataProvider, name, query, empty, options, persistent, children, ...rest }) {
28
31
  const context = useResource({ dataProvider, name, query, empty, options, persistent, ...rest });
@@ -160,16 +160,24 @@ function fetchData(requestInstruction, instance, abortSignal, dispatch) {
160
160
  }
161
161
 
162
162
  /**
163
- * Makes data from a DataProvider available.
164
- * If not explicitly specified, necessary configuration is taken from the nearest <ConfigProvider>.
165
- * The provided DataProvider must not be replaced.
163
+ * Provides data based on the given request details and DataProvider.
164
+ *
165
+ * Necessary configuration that is not directly specified is taken from the ConfigContext.
166
+ *
167
+ * The provided DataProvider must not be changed.
166
168
  */
167
169
  function useResource({
170
+ /** DataProvider to be used for requests - must not be changed */
168
171
  dataProvider: dataProviderProp,
172
+ /** Resource name */
169
173
  name: nextName,
174
+ /** Query instructions */
170
175
  query: nextQuery,
176
+ /** Disables fetching data, resulting in an empty data array */
171
177
  empty: nextEmpty,
178
+ /** Query options for requests */
172
179
  options: nextOptions,
180
+ /** Whether stale data should be retained during the next request - this only applies if name did not change, unless set to "very" */
173
181
  persistent: nextPersistent,
174
182
  ...rest
175
183
  }) {