@dhis2/app-service-data 3.11.3 → 3.12.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/__tests__/integration.test.js +6 -15
- package/build/cjs/__tests__/mutations.test.js +4 -11
- package/build/cjs/engine/DataEngine.js +4 -14
- package/build/cjs/engine/DataEngine.test.js +0 -2
- package/build/cjs/engine/helpers/getMutationFetchType.js +0 -2
- package/build/cjs/engine/helpers/getMutationFetchType.test.js +0 -1
- package/build/cjs/engine/helpers/resolveDynamicQuery.js +0 -2
- package/build/cjs/engine/helpers/resolveDynamicQuery.test.js +3 -4
- package/build/cjs/engine/helpers/validate.js +0 -21
- package/build/cjs/engine/helpers/validate.test.js +0 -1
- package/build/cjs/engine/index.js +0 -18
- package/build/cjs/engine/types/FetchError.js +3 -8
- package/build/cjs/engine/types/FetchError.test.js +0 -1
- package/build/cjs/engine/types/InvalidQueryError.js +3 -8
- package/build/cjs/index.js +0 -2
- package/build/cjs/links/CustomDataLink.js +3 -17
- package/build/cjs/links/CustomDataLink.test.js +0 -1
- package/build/cjs/links/ErrorLink.js +3 -7
- package/build/cjs/links/RestAPILink/fetchData.js +12 -22
- package/build/cjs/links/RestAPILink/fetchData.test.js +0 -2
- package/build/cjs/links/RestAPILink/metadataResources.js +9 -7
- package/build/cjs/links/RestAPILink/path.js +0 -3
- package/build/cjs/links/RestAPILink/path.test.js +0 -1
- package/build/cjs/links/RestAPILink/queryToRequestOptions/multipartFormDataMatchers.js +9 -14
- package/build/cjs/links/RestAPILink/queryToRequestOptions/multipartFormDataMatchers.test.js +0 -1
- package/build/cjs/links/RestAPILink/queryToRequestOptions/requestContentType.js +4 -31
- package/build/cjs/links/RestAPILink/queryToRequestOptions/requestContentType.test.js +0 -1
- package/build/cjs/links/RestAPILink/queryToRequestOptions/textPlainMatchers.js +22 -39
- package/build/cjs/links/RestAPILink/queryToRequestOptions/textPlainMatchers.test.js +0 -1
- package/build/cjs/links/RestAPILink/queryToRequestOptions/xWwwFormUrlencodedMatchers.js +0 -2
- package/build/cjs/links/RestAPILink/queryToRequestOptions/xWwwFormUrlencodedMatchers.test.js +0 -1
- package/build/cjs/links/RestAPILink/queryToRequestOptions.js +0 -9
- package/build/cjs/links/RestAPILink/queryToRequestOptions.test.js +0 -1
- package/build/cjs/links/RestAPILink/queryToResourcePath.js +3 -24
- package/build/cjs/links/RestAPILink/queryToResourcePath.test.js +2 -4
- package/build/cjs/links/RestAPILink/validateQuery.js +4 -18
- package/build/cjs/links/RestAPILink/validateQuery.test.js +0 -1
- package/build/cjs/links/RestAPILink.js +3 -14
- package/build/cjs/links/RestAPILink.test.js +0 -2
- package/build/cjs/links/index.js +0 -6
- package/build/cjs/react/components/CustomDataProvider.js +2 -11
- package/build/cjs/react/components/DataMutation.js +1 -4
- package/build/cjs/react/components/DataProvider.js +5 -14
- package/build/cjs/react/components/DataProvider.test.js +2 -9
- package/build/cjs/react/components/DataQuery.js +1 -4
- package/build/cjs/react/context/DataContext.js +2 -8
- package/build/cjs/react/context/defaultContext.js +2 -6
- package/build/cjs/react/context/defaultContext.test.js +0 -1
- package/build/cjs/react/hooks/mergeAndCompareVariables.js +4 -6
- package/build/cjs/react/hooks/mergeAndCompareVariables.test.js +2 -3
- package/build/cjs/react/hooks/stableVariablesHash.js +11 -16
- package/build/cjs/react/hooks/stableVariablesHash.test.js +0 -1
- package/build/cjs/react/hooks/useDataEngine.js +0 -4
- package/build/cjs/react/hooks/useDataMutation.js +0 -7
- package/build/cjs/react/hooks/useDataMutation.test.js +42 -71
- package/build/cjs/react/hooks/useDataQuery.js +11 -22
- package/build/cjs/react/hooks/useDataQuery.test.js +318 -374
- package/build/cjs/react/hooks/useQueryExecutor.js +6 -14
- package/build/cjs/react/hooks/useQueryExecutor.test.js +42 -45
- package/build/cjs/react/hooks/useStaticInput.js +0 -3
- package/build/cjs/react/hooks/useStaticInput.test.js +8 -10
- package/build/cjs/react/index.js +0 -11
- package/build/cjs/setupRTL.js +1 -2
- package/build/es/__tests__/integration.test.js +4 -8
- package/build/es/__tests__/mutations.test.js +2 -4
- package/build/es/engine/DataEngine.js +3 -8
- package/build/es/engine/DataEngine.test.js +0 -1
- package/build/es/engine/helpers/resolveDynamicQuery.test.js +3 -3
- package/build/es/engine/helpers/validate.js +0 -13
- package/build/es/engine/types/FetchError.js +3 -6
- package/build/es/engine/types/InvalidQueryError.js +3 -6
- package/build/es/links/CustomDataLink.js +3 -15
- package/build/es/links/ErrorLink.js +3 -5
- package/build/es/links/RestAPILink/fetchData.js +12 -16
- package/build/es/links/RestAPILink/metadataResources.js +8 -3
- package/build/es/links/RestAPILink/path.js +0 -1
- package/build/es/links/RestAPILink/queryToRequestOptions/multipartFormDataMatchers.js +9 -4
- package/build/es/links/RestAPILink/queryToRequestOptions/requestContentType.js +2 -19
- package/build/es/links/RestAPILink/queryToRequestOptions/textPlainMatchers.js +22 -19
- package/build/es/links/RestAPILink/queryToRequestOptions.js +0 -7
- package/build/es/links/RestAPILink/queryToResourcePath.js +3 -21
- package/build/es/links/RestAPILink/queryToResourcePath.test.js +2 -3
- package/build/es/links/RestAPILink/validateQuery.js +4 -16
- package/build/es/links/RestAPILink.js +3 -8
- package/build/es/react/components/CustomDataProvider.js +1 -1
- package/build/es/react/components/DataMutation.js +1 -1
- package/build/es/react/components/DataProvider.js +3 -1
- package/build/es/react/components/DataProvider.test.js +1 -1
- package/build/es/react/components/DataQuery.js +1 -1
- package/build/es/react/hooks/mergeAndCompareVariables.js +4 -3
- package/build/es/react/hooks/mergeAndCompareVariables.test.js +2 -1
- package/build/es/react/hooks/stableVariablesHash.js +11 -14
- package/build/es/react/hooks/useDataMutation.test.js +17 -39
- package/build/es/react/hooks/useDataQuery.js +11 -15
- package/build/es/react/hooks/useDataQuery.test.js +268 -318
- package/build/es/react/hooks/useQueryExecutor.js +6 -9
- package/build/es/react/hooks/useQueryExecutor.test.js +33 -34
- package/build/es/react/hooks/useStaticInput.test.js +6 -6
- package/build/es/setupRTL.js +1 -1
- package/build/types/engine/types/ExecuteOptions.d.ts +1 -1
- package/build/types/engine/types/FetchError.d.ts +2 -2
- package/build/types/engine/types/JsonValue.d.ts +1 -1
- package/build/types/engine/types/Mutation.d.ts +2 -2
- package/build/types/engine/types/PossiblyDynamic.d.ts +1 -1
- package/build/types/engine/types/Query.d.ts +3 -3
- package/build/types/engine/types/QueryParameters.d.ts +4 -4
- package/build/types/links/CustomDataLink.d.ts +2 -2
- package/build/types/links/RestAPILink/queryToRequestOptions/requestContentType.d.ts +1 -1
- package/build/types/links/RestAPILink/queryToRequestOptions.d.ts +1 -1
- package/build/types/react/hooks/mergeAndCompareVariables.d.ts +1 -1
- package/build/types/types.d.ts +6 -6
- package/package.json +4 -4
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _react = require("@testing-library/react");
|
|
4
|
-
|
|
5
4
|
var React = _interopRequireWildcard(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react3 = require("../react");
|
|
8
|
-
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
-
|
|
6
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
7
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
8
|
describe('<DataQuery />', () => {
|
|
14
9
|
it('should render without failing', async () => {
|
|
15
10
|
const data = {
|
|
16
11
|
answer: 42
|
|
17
12
|
};
|
|
18
|
-
|
|
19
|
-
const wrapper = (_ref) => {
|
|
13
|
+
const wrapper = _ref => {
|
|
20
14
|
let {
|
|
21
15
|
children
|
|
22
16
|
} = _ref;
|
|
@@ -24,9 +18,8 @@ describe('<DataQuery />', () => {
|
|
|
24
18
|
data: data
|
|
25
19
|
}, children);
|
|
26
20
|
};
|
|
27
|
-
|
|
28
21
|
const renderFunction = jest.fn(() => null);
|
|
29
|
-
(0, _react.render)(
|
|
22
|
+
(0, _react.render)(/*#__PURE__*/React.createElement(_react3.DataQuery, {
|
|
30
23
|
query: {
|
|
31
24
|
answer: {
|
|
32
25
|
resource: 'answer'
|
|
@@ -56,8 +49,7 @@ describe('<DataQuery />', () => {
|
|
|
56
49
|
throw expectedError;
|
|
57
50
|
}
|
|
58
51
|
};
|
|
59
|
-
|
|
60
|
-
const wrapper = (_ref2) => {
|
|
52
|
+
const wrapper = _ref2 => {
|
|
61
53
|
let {
|
|
62
54
|
children
|
|
63
55
|
} = _ref2;
|
|
@@ -65,9 +57,8 @@ describe('<DataQuery />', () => {
|
|
|
65
57
|
data: data
|
|
66
58
|
}, children);
|
|
67
59
|
};
|
|
68
|
-
|
|
69
60
|
const renderFunction = jest.fn(() => null);
|
|
70
|
-
(0, _react.render)(
|
|
61
|
+
(0, _react.render)(/*#__PURE__*/React.createElement(_react3.DataQuery, {
|
|
71
62
|
query: {
|
|
72
63
|
test: {
|
|
73
64
|
resource: 'test'
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _react = require("@testing-library/react");
|
|
4
|
-
|
|
5
4
|
var React = _interopRequireWildcard(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react3 = require("../react");
|
|
8
|
-
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
-
|
|
6
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
7
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
8
|
describe('<DataMutation />', () => {
|
|
14
9
|
it('should render without failing', async () => {
|
|
15
10
|
const endpointSpy = jest.fn(() => Promise.resolve(42));
|
|
@@ -23,8 +18,7 @@ describe('<DataMutation />', () => {
|
|
|
23
18
|
const data = {
|
|
24
19
|
answer: endpointSpy
|
|
25
20
|
};
|
|
26
|
-
|
|
27
|
-
const wrapper = (_ref) => {
|
|
21
|
+
const wrapper = _ref => {
|
|
28
22
|
let {
|
|
29
23
|
children
|
|
30
24
|
} = _ref;
|
|
@@ -32,9 +26,8 @@ describe('<DataMutation />', () => {
|
|
|
32
26
|
data: data
|
|
33
27
|
}, children);
|
|
34
28
|
};
|
|
35
|
-
|
|
36
29
|
const renderSpy = jest.fn(() => null);
|
|
37
|
-
(0, _react.render)(
|
|
30
|
+
(0, _react.render)(/*#__PURE__*/React.createElement(_react3.DataMutation, {
|
|
38
31
|
mutation: mutation
|
|
39
32
|
}, renderSpy), {
|
|
40
33
|
wrapper
|
|
@@ -4,27 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.DataEngine = void 0;
|
|
7
|
-
|
|
8
7
|
var _getMutationFetchType = require("./helpers/getMutationFetchType");
|
|
9
|
-
|
|
10
8
|
var _resolveDynamicQuery = require("./helpers/resolveDynamicQuery");
|
|
11
|
-
|
|
12
9
|
var _validate = require("./helpers/validate");
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
10
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
12
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
13
|
const reduceResponses = (responses, names) => responses.reduce((out, response, idx) => {
|
|
17
14
|
out[names[idx]] = response;
|
|
18
15
|
return out;
|
|
19
16
|
}, {});
|
|
20
|
-
|
|
21
17
|
class DataEngine {
|
|
22
18
|
constructor(link) {
|
|
23
19
|
_defineProperty(this, "link", void 0);
|
|
24
|
-
|
|
25
20
|
this.link = link;
|
|
26
21
|
}
|
|
27
|
-
|
|
28
22
|
query(query) {
|
|
29
23
|
let {
|
|
30
24
|
variables = {},
|
|
@@ -48,7 +42,6 @@ class DataEngine {
|
|
|
48
42
|
throw error;
|
|
49
43
|
});
|
|
50
44
|
}
|
|
51
|
-
|
|
52
45
|
mutate(mutation) {
|
|
53
46
|
let {
|
|
54
47
|
variables = {},
|
|
@@ -70,9 +63,6 @@ class DataEngine {
|
|
|
70
63
|
throw error;
|
|
71
64
|
});
|
|
72
65
|
}
|
|
73
|
-
|
|
74
66
|
}
|
|
75
|
-
|
|
76
67
|
exports.DataEngine = DataEngine;
|
|
77
|
-
var _default = DataEngine;
|
|
78
|
-
exports.default = _default;
|
|
68
|
+
var _default = exports.default = DataEngine;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _DataEngine = require("./DataEngine");
|
|
4
|
-
|
|
5
4
|
const mockQuery = {
|
|
6
5
|
test: {
|
|
7
6
|
resource: 'test'
|
|
@@ -17,7 +16,6 @@ const mockLink = {
|
|
|
17
16
|
if (query.resource === 'ERROR') {
|
|
18
17
|
throw new Error('MOCK ERROR');
|
|
19
18
|
}
|
|
20
|
-
|
|
21
19
|
return {
|
|
22
20
|
type,
|
|
23
21
|
resource: query.resource,
|
|
@@ -4,7 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getMutationFetchType = void 0;
|
|
7
|
-
|
|
8
7
|
const getMutationFetchType = mutation => mutation.type === 'update' ? mutation.partial ? 'update' : 'replace' : mutation.type;
|
|
9
|
-
|
|
10
8
|
exports.getMutationFetchType = getMutationFetchType;
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.resolveDynamicQuery = void 0;
|
|
7
|
-
|
|
8
7
|
const resolveDynamicQuery = (_ref, variables) => {
|
|
9
8
|
let {
|
|
10
9
|
resource,
|
|
@@ -19,5 +18,4 @@ const resolveDynamicQuery = (_ref, variables) => {
|
|
|
19
18
|
params: typeof params === 'function' ? params(variables) : params
|
|
20
19
|
};
|
|
21
20
|
};
|
|
22
|
-
|
|
23
21
|
exports.resolveDynamicQuery = resolveDynamicQuery;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _resolveDynamicQuery = require("./resolveDynamicQuery");
|
|
4
|
-
|
|
5
4
|
describe('resolveDynamicQuery', () => {
|
|
6
5
|
it('Should return an unmodified query if no dynamic properties exist', () => {
|
|
7
6
|
const query = {
|
|
@@ -20,13 +19,13 @@ describe('resolveDynamicQuery', () => {
|
|
|
20
19
|
it('Should replace variables in all dynamic properties', () => {
|
|
21
20
|
const query = {
|
|
22
21
|
resource: 'test',
|
|
23
|
-
id:
|
|
22
|
+
id: _ref => {
|
|
24
23
|
let {
|
|
25
24
|
id
|
|
26
25
|
} = _ref;
|
|
27
26
|
return id;
|
|
28
27
|
},
|
|
29
|
-
params:
|
|
28
|
+
params: _ref2 => {
|
|
30
29
|
let {
|
|
31
30
|
page
|
|
32
31
|
} = _ref2;
|
|
@@ -35,7 +34,7 @@ describe('resolveDynamicQuery', () => {
|
|
|
35
34
|
foo: 'bar'
|
|
36
35
|
};
|
|
37
36
|
},
|
|
38
|
-
data:
|
|
37
|
+
data: _ref3 => {
|
|
39
38
|
let {
|
|
40
39
|
bar
|
|
41
40
|
} = _ref3;
|
|
@@ -4,80 +4,59 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.validateResourceQuery = exports.validateResourceQueries = exports.getResourceQueryErrors = void 0;
|
|
7
|
-
|
|
8
7
|
var _InvalidQueryError = require("../types/InvalidQueryError");
|
|
9
|
-
|
|
10
8
|
const validQueryKeys = ['resource', 'id', 'params', 'data'];
|
|
11
9
|
const validTypes = ['read', 'create', 'update', 'replace', 'delete', 'json-patch'];
|
|
12
|
-
|
|
13
10
|
const getResourceQueryErrors = (type, query) => {
|
|
14
11
|
if (!validTypes.includes(type)) {
|
|
15
12
|
return [`Unknown query or mutation type ${type}`];
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
if (typeof query !== 'object') {
|
|
19
15
|
return ['A query or mutation must be a javascript object'];
|
|
20
16
|
}
|
|
21
|
-
|
|
22
17
|
const errors = [];
|
|
23
|
-
|
|
24
18
|
if (!query.resource || typeof query.resource !== 'string') {
|
|
25
19
|
errors.push('Property resource must be a string');
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
if (type === 'create' && query.id) {
|
|
29
22
|
errors.push("Mutation type 'create' does not support property 'id'");
|
|
30
23
|
}
|
|
31
|
-
|
|
32
24
|
if (query.id && typeof query.id !== 'string') {
|
|
33
25
|
errors.push('Property id must be a string');
|
|
34
26
|
}
|
|
35
|
-
|
|
36
27
|
if (query.params && typeof query.params !== 'object') {
|
|
37
28
|
errors.push('Property params must be an object');
|
|
38
29
|
}
|
|
39
|
-
|
|
40
30
|
if (type === 'delete' && query.data) {
|
|
41
31
|
errors.push("Mutation type 'delete' does not support property 'data'");
|
|
42
32
|
}
|
|
43
|
-
|
|
44
33
|
if (type === 'json-patch' && !Array.isArray(query.data)) {
|
|
45
34
|
errors.push("Mutation type 'json-patch' requires property 'data' to be of type Array");
|
|
46
35
|
}
|
|
47
|
-
|
|
48
36
|
const invalidKeys = Object.keys(query).filter(k => !validQueryKeys.includes(k));
|
|
49
37
|
invalidKeys.forEach(k => {
|
|
50
38
|
errors.push(`Property ${k} is not supported`);
|
|
51
39
|
});
|
|
52
40
|
return errors;
|
|
53
41
|
};
|
|
54
|
-
|
|
55
42
|
exports.getResourceQueryErrors = getResourceQueryErrors;
|
|
56
|
-
|
|
57
43
|
const validateResourceQueries = function (queries) {
|
|
58
44
|
let names = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
59
|
-
|
|
60
45
|
if (names.length !== queries.length) {
|
|
61
46
|
for (let i = names.length; i < queries.length; ++i) {
|
|
62
47
|
names.push('query#' + i);
|
|
63
48
|
}
|
|
64
49
|
}
|
|
65
|
-
|
|
66
50
|
const errors = queries.reduce((errors, query, i) => errors.concat(getResourceQueryErrors('read', query).map(e => `[${names[i]}] ${e}`)), []);
|
|
67
|
-
|
|
68
51
|
if (errors.length) {
|
|
69
52
|
throw new _InvalidQueryError.InvalidQueryError(errors);
|
|
70
53
|
}
|
|
71
54
|
};
|
|
72
|
-
|
|
73
55
|
exports.validateResourceQueries = validateResourceQueries;
|
|
74
|
-
|
|
75
56
|
const validateResourceQuery = (type, query) => {
|
|
76
57
|
const errors = getResourceQueryErrors(type, query);
|
|
77
|
-
|
|
78
58
|
if (errors.length) {
|
|
79
59
|
throw new _InvalidQueryError.InvalidQueryError(errors);
|
|
80
60
|
}
|
|
81
61
|
};
|
|
82
|
-
|
|
83
62
|
exports.validateResourceQuery = validateResourceQuery;
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _DataEngine = require("./DataEngine");
|
|
8
|
-
|
|
9
7
|
Object.keys(_DataEngine).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _DataEngine[key]) return;
|
|
@@ -16,9 +14,7 @@ Object.keys(_DataEngine).forEach(function (key) {
|
|
|
16
14
|
}
|
|
17
15
|
});
|
|
18
16
|
});
|
|
19
|
-
|
|
20
17
|
var _DataEngineLink = require("./types/DataEngineLink");
|
|
21
|
-
|
|
22
18
|
Object.keys(_DataEngineLink).forEach(function (key) {
|
|
23
19
|
if (key === "default" || key === "__esModule") return;
|
|
24
20
|
if (key in exports && exports[key] === _DataEngineLink[key]) return;
|
|
@@ -29,9 +25,7 @@ Object.keys(_DataEngineLink).forEach(function (key) {
|
|
|
29
25
|
}
|
|
30
26
|
});
|
|
31
27
|
});
|
|
32
|
-
|
|
33
28
|
var _ExecuteOptions = require("./types/ExecuteOptions");
|
|
34
|
-
|
|
35
29
|
Object.keys(_ExecuteOptions).forEach(function (key) {
|
|
36
30
|
if (key === "default" || key === "__esModule") return;
|
|
37
31
|
if (key in exports && exports[key] === _ExecuteOptions[key]) return;
|
|
@@ -42,9 +36,7 @@ Object.keys(_ExecuteOptions).forEach(function (key) {
|
|
|
42
36
|
}
|
|
43
37
|
});
|
|
44
38
|
});
|
|
45
|
-
|
|
46
39
|
var _FetchError = require("./types/FetchError");
|
|
47
|
-
|
|
48
40
|
Object.keys(_FetchError).forEach(function (key) {
|
|
49
41
|
if (key === "default" || key === "__esModule") return;
|
|
50
42
|
if (key in exports && exports[key] === _FetchError[key]) return;
|
|
@@ -55,9 +47,7 @@ Object.keys(_FetchError).forEach(function (key) {
|
|
|
55
47
|
}
|
|
56
48
|
});
|
|
57
49
|
});
|
|
58
|
-
|
|
59
50
|
var _JsonValue = require("./types/JsonValue");
|
|
60
|
-
|
|
61
51
|
Object.keys(_JsonValue).forEach(function (key) {
|
|
62
52
|
if (key === "default" || key === "__esModule") return;
|
|
63
53
|
if (key in exports && exports[key] === _JsonValue[key]) return;
|
|
@@ -68,9 +58,7 @@ Object.keys(_JsonValue).forEach(function (key) {
|
|
|
68
58
|
}
|
|
69
59
|
});
|
|
70
60
|
});
|
|
71
|
-
|
|
72
61
|
var _Mutation = require("./types/Mutation");
|
|
73
|
-
|
|
74
62
|
Object.keys(_Mutation).forEach(function (key) {
|
|
75
63
|
if (key === "default" || key === "__esModule") return;
|
|
76
64
|
if (key in exports && exports[key] === _Mutation[key]) return;
|
|
@@ -81,9 +69,7 @@ Object.keys(_Mutation).forEach(function (key) {
|
|
|
81
69
|
}
|
|
82
70
|
});
|
|
83
71
|
});
|
|
84
|
-
|
|
85
72
|
var _PossiblyDynamic = require("./types/PossiblyDynamic");
|
|
86
|
-
|
|
87
73
|
Object.keys(_PossiblyDynamic).forEach(function (key) {
|
|
88
74
|
if (key === "default" || key === "__esModule") return;
|
|
89
75
|
if (key in exports && exports[key] === _PossiblyDynamic[key]) return;
|
|
@@ -94,9 +80,7 @@ Object.keys(_PossiblyDynamic).forEach(function (key) {
|
|
|
94
80
|
}
|
|
95
81
|
});
|
|
96
82
|
});
|
|
97
|
-
|
|
98
83
|
var _Query = require("./types/Query");
|
|
99
|
-
|
|
100
84
|
Object.keys(_Query).forEach(function (key) {
|
|
101
85
|
if (key === "default" || key === "__esModule") return;
|
|
102
86
|
if (key in exports && exports[key] === _Query[key]) return;
|
|
@@ -107,9 +91,7 @@ Object.keys(_Query).forEach(function (key) {
|
|
|
107
91
|
}
|
|
108
92
|
});
|
|
109
93
|
});
|
|
110
|
-
|
|
111
94
|
var _QueryParameters = require("./types/QueryParameters");
|
|
112
|
-
|
|
113
95
|
Object.keys(_QueryParameters).forEach(function (key) {
|
|
114
96
|
if (key === "default" || key === "__esModule") return;
|
|
115
97
|
if (key in exports && exports[key] === _QueryParameters[key]) return;
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.FetchError = void 0;
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
10
|
class FetchError extends Error {
|
|
11
11
|
constructor(_ref) {
|
|
12
12
|
let {
|
|
@@ -15,15 +15,10 @@ class FetchError extends Error {
|
|
|
15
15
|
details = {}
|
|
16
16
|
} = _ref;
|
|
17
17
|
super(message);
|
|
18
|
-
|
|
19
18
|
_defineProperty(this, "type", void 0);
|
|
20
|
-
|
|
21
19
|
_defineProperty(this, "details", void 0);
|
|
22
|
-
|
|
23
20
|
this.type = type;
|
|
24
21
|
this.details = details;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
exports.FetchError = FetchError;
|
|
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.InvalidQueryError = void 0;
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
10
|
class InvalidQueryError extends Error {
|
|
11
11
|
constructor(errors) {
|
|
12
12
|
super(`Invalid query\n${errors.map(e => ' - ' + e).join('\n')}`);
|
|
13
|
-
|
|
14
13
|
_defineProperty(this, "type", 'invalid-query');
|
|
15
|
-
|
|
16
14
|
_defineProperty(this, "details", void 0);
|
|
17
|
-
|
|
18
15
|
this.details = errors;
|
|
19
16
|
}
|
|
20
|
-
|
|
21
17
|
}
|
|
22
|
-
|
|
23
18
|
exports.InvalidQueryError = InvalidQueryError;
|
package/build/cjs/index.js
CHANGED
|
@@ -4,62 +4,48 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CustomDataLink = void 0;
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
10
|
class CustomDataLink {
|
|
11
11
|
constructor(customData) {
|
|
12
12
|
let {
|
|
13
13
|
failOnMiss = true,
|
|
14
14
|
loadForever = false
|
|
15
15
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
16
|
-
|
|
17
16
|
_defineProperty(this, "failOnMiss", void 0);
|
|
18
|
-
|
|
19
17
|
_defineProperty(this, "loadForever", void 0);
|
|
20
|
-
|
|
21
18
|
_defineProperty(this, "data", void 0);
|
|
22
|
-
|
|
23
19
|
this.data = customData;
|
|
24
20
|
this.failOnMiss = failOnMiss;
|
|
25
21
|
this.loadForever = loadForever;
|
|
26
22
|
}
|
|
27
|
-
|
|
28
23
|
async executeResourceQuery(type, query, options) {
|
|
29
24
|
if (this.loadForever) {
|
|
30
25
|
return new Promise(() => undefined);
|
|
31
26
|
}
|
|
32
|
-
|
|
33
27
|
const customResource = this.data[query.resource];
|
|
34
|
-
|
|
35
28
|
if (customResource === undefined) {
|
|
36
29
|
if (this.failOnMiss) {
|
|
37
30
|
throw new Error(`No data provided for resource type ${query.resource}!`);
|
|
38
31
|
}
|
|
39
|
-
|
|
40
32
|
return Promise.resolve(null);
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
switch (typeof customResource) {
|
|
44
35
|
case 'string':
|
|
45
36
|
case 'number':
|
|
46
37
|
case 'boolean':
|
|
47
38
|
case 'object':
|
|
48
39
|
return customResource;
|
|
49
|
-
|
|
50
40
|
case 'function':
|
|
51
41
|
{
|
|
52
42
|
const result = await customResource(type, query, options);
|
|
53
|
-
|
|
54
43
|
if (typeof result === 'undefined' && this.failOnMiss) {
|
|
55
44
|
throw new Error(`The custom function for resource ${query.resource} must always return a value but returned ${result}`);
|
|
56
45
|
}
|
|
57
|
-
|
|
58
46
|
return result || null;
|
|
59
47
|
}
|
|
60
48
|
}
|
|
61
49
|
}
|
|
62
|
-
|
|
63
50
|
}
|
|
64
|
-
|
|
65
51
|
exports.CustomDataLink = CustomDataLink;
|
|
@@ -4,21 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ErrorLink = void 0;
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
10
|
class ErrorLink {
|
|
11
11
|
constructor(errorMessage) {
|
|
12
12
|
_defineProperty(this, "errorMessage", void 0);
|
|
13
|
-
|
|
14
13
|
this.errorMessage = errorMessage;
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
executeResourceQuery() {
|
|
18
16
|
console.error(this.errorMessage);
|
|
19
17
|
return Promise.reject(this.errorMessage);
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
}
|
|
23
|
-
|
|
24
20
|
exports.ErrorLink = ErrorLink;
|