integreat 0.8.0-rc.6 → 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/README.md +17 -13
- package/dist/adapters/index.d.ts +1 -4
- package/dist/adapters/index.js +1 -4
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/uri.d.ts +3 -0
- package/dist/adapters/uri.js +23 -0
- package/dist/adapters/uri.js.map +1 -0
- package/dist/authenticators/index.d.ts +2 -5
- package/dist/authenticators/index.js +2 -6
- package/dist/authenticators/index.js.map +1 -1
- package/dist/create.d.ts +3 -1
- package/dist/create.js +2 -1
- package/dist/create.js.map +1 -1
- package/dist/dispatch.js +17 -14
- package/dist/dispatch.js.map +1 -1
- package/dist/handlers/delete.d.ts +2 -2
- package/dist/handlers/delete.js +6 -7
- package/dist/handlers/delete.js.map +1 -1
- package/dist/handlers/expire.d.ts +2 -2
- package/dist/handlers/expire.js +10 -11
- package/dist/handlers/expire.js.map +1 -1
- package/dist/handlers/get.d.ts +2 -2
- package/dist/handlers/get.js +18 -18
- package/dist/handlers/get.js.map +1 -1
- package/dist/handlers/getAll.d.ts +2 -2
- package/dist/handlers/getAll.js +6 -7
- package/dist/handlers/getAll.js.map +1 -1
- package/dist/handlers/getIdent.d.ts +2 -2
- package/dist/handlers/getIdent.js +11 -10
- package/dist/handlers/getIdent.js.map +1 -1
- package/dist/handlers/getMeta.d.ts +2 -2
- package/dist/handlers/getMeta.js +7 -7
- package/dist/handlers/getMeta.js.map +1 -1
- package/dist/handlers/queue.d.ts +2 -2
- package/dist/handlers/queue.js +3 -4
- package/dist/handlers/queue.js.map +1 -1
- package/dist/handlers/run.d.ts +2 -2
- package/dist/handlers/run.js +73 -73
- package/dist/handlers/run.js.map +1 -1
- package/dist/handlers/service.d.ts +2 -2
- package/dist/handlers/service.js +5 -5
- package/dist/handlers/service.js.map +1 -1
- package/dist/handlers/set.d.ts +2 -2
- package/dist/handlers/set.js +5 -6
- package/dist/handlers/set.js.map +1 -1
- package/dist/handlers/setMeta.d.ts +2 -2
- package/dist/handlers/setMeta.js +4 -5
- package/dist/handlers/setMeta.js.map +1 -1
- package/dist/handlers/sync.d.ts +2 -2
- package/dist/handlers/sync.js +16 -15
- package/dist/handlers/sync.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/middleware/completeIdent.js +2 -4
- package/dist/middleware/completeIdent.js.map +1 -1
- package/dist/middleware/index.d.ts +1 -4
- package/dist/middleware/index.js +1 -4
- package/dist/middleware/index.js.map +1 -1
- package/dist/service/authorize/data.js +7 -7
- package/dist/service/authorize/data.js.map +1 -1
- package/dist/service/index.js +21 -19
- package/dist/service/index.js.map +1 -1
- package/dist/service/types.d.ts +3 -6
- package/dist/transformers/generateUri.d.ts +2 -0
- package/dist/transformers/generateUri.js +4 -7
- package/dist/transformers/generateUri.js.map +1 -1
- package/dist/types.d.ts +6 -6
- package/dist/utils/createUnknownServiceError.d.ts +2 -2
- package/dist/utils/createUnknownServiceError.js +3 -3
- package/dist/utils/createUnknownServiceError.js.map +1 -1
- package/dist/utils/mutateAndSend.d.ts +4 -0
- package/dist/utils/mutateAndSend.js +8 -0
- package/dist/utils/mutateAndSend.js.map +1 -0
- package/dist/utils/mutationHelpers.js +5 -8
- package/dist/utils/mutationHelpers.js.map +1 -1
- package/package.json +2 -2
- package/dist/adapters/json.d.ts +0 -6
- package/dist/adapters/json.js +0 -69
- package/dist/adapters/json.js.map +0 -1
- package/dist/transformers/not.d.ts +0 -3
- package/dist/transformers/not.js +0 -3
- package/dist/transformers/not.js.map +0 -1
- package/dist/utils/createAction.d.ts +0 -2
- package/dist/utils/createAction.js +0 -7
- package/dist/utils/createAction.js.map +0 -1
- package/dist/utils/createError.d.ts +0 -3
- package/dist/utils/createError.js +0 -20
- package/dist/utils/createError.js.map +0 -1
- package/dist/utils/mappingHelpers.d.ts +0 -3
- package/dist/utils/mappingHelpers.js +0 -36
- package/dist/utils/mappingHelpers.js.map +0 -1
package/README.md
CHANGED
|
@@ -299,7 +299,7 @@ specify a few things:
|
|
|
299
299
|
More one this in the [Match properties](#match-properties) section.
|
|
300
300
|
- `mutation`: A mutation pipeline for the endpoint. The pipeline is run for both
|
|
301
301
|
actions going to a service and the response coming back, so keep this in mind
|
|
302
|
-
when you set up this pipeline. See [Mutation pipelines](#
|
|
302
|
+
when you set up this pipeline. See [Mutation pipelines](#mutations)
|
|
303
303
|
for more on how to define the mutation.
|
|
304
304
|
- `options`: This object will be passed on to the transporter and may contain
|
|
305
305
|
any properties that are meaningful to the transporter. You may also add other
|
|
@@ -522,7 +522,7 @@ Both on the service and on endpoints, you define mutation pipelines. The service
|
|
|
522
522
|
mutation is run before the endpoint mutation for data coming from a service, and
|
|
523
523
|
in the oposite order when going to a service.
|
|
524
524
|
|
|
525
|
-
A nice
|
|
525
|
+
A nice - but sometimes complicated - thing about mutations, is that they are run
|
|
526
526
|
in both directions. They are by default defined for mutating data coming _from_
|
|
527
527
|
a service, and will be run in reverse for data going _to_ a service. In some
|
|
528
528
|
cases this reversing of the pipeline will work as expected without modifications
|
|
@@ -549,7 +549,12 @@ Each step may be one of the following:
|
|
|
549
549
|
want as a result, where the keys are dot notation paths and the values are
|
|
550
550
|
mutation pipelines. Each pipeline on the mutation object will be run on the
|
|
551
551
|
data, and then set on the path, resulting in an object that will be passed on
|
|
552
|
-
to the next step.
|
|
552
|
+
to the next step. Setting `$iterate: true` on the object will cause it to
|
|
553
|
+
iterate over items in an array, otherwise it will be applied to the array.
|
|
554
|
+
Setting `$modify: true` will cause any properties on an object in the pipeline
|
|
555
|
+
not set in the mutation, to be included, much like the spread in JavaScript.
|
|
556
|
+
Setting `$modify` to a path works the same, but you will spread from the
|
|
557
|
+
object at the path (`$modify: true` is equal to `$modify: '.'`).
|
|
553
558
|
- **A transform object** letting you run a transformer function on the data,
|
|
554
559
|
e.g. `{ $transform: 'number' }` to transform the value into a number, or
|
|
555
560
|
`undefined` if not possible.
|
|
@@ -1535,11 +1540,10 @@ async function (action, { dispatch, getService, setProgress, options }) { ... }
|
|
|
1535
1540
|
object used for mapping ident schemas to ids, roles, and tokens (see
|
|
1536
1541
|
[the `completeIdent` middleware](#completeIdent-middleware)).
|
|
1537
1542
|
|
|
1538
|
-
Your action handler must return
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
dispatch returns.
|
|
1543
|
+
Your action handler must return a [response object](#action-response). If your
|
|
1544
|
+
handler just relays to another action handler, it may pass on the response
|
|
1545
|
+
returned from that handler, but in many cases it will be more correct to
|
|
1546
|
+
generate your own response.
|
|
1543
1547
|
|
|
1544
1548
|
You provide your custom actions to Integreat on setup, by providing an object
|
|
1545
1549
|
with the key set to the action type your handler will be responsible for, and
|
|
@@ -1734,17 +1738,17 @@ A middleware is a function that accepts a `next()` function as only argument,
|
|
|
1734
1738
|
and returns an async function that will be called with the action on dispatch.
|
|
1735
1739
|
The returned function is expected to call `next()` with the action, and return
|
|
1736
1740
|
the result from the `next()` function, but is not required to do so. The only
|
|
1737
|
-
requirement is that the functions returns a valid
|
|
1738
|
-
|
|
1741
|
+
requirement is that the functions returns a valid
|
|
1742
|
+
[response object](#action-response).
|
|
1739
1743
|
|
|
1740
1744
|
Example implementation of a very simple logger middleware:
|
|
1741
1745
|
|
|
1742
1746
|
```javascript
|
|
1743
1747
|
const logger = (next) => async (action) => {
|
|
1744
1748
|
console.log('Dispatch was called with action', action)
|
|
1745
|
-
const
|
|
1746
|
-
console.log('Dispatch completed with response',
|
|
1747
|
-
return
|
|
1749
|
+
const response = await next(action)
|
|
1750
|
+
console.log('Dispatch completed with response', response)
|
|
1751
|
+
return respons
|
|
1748
1752
|
}
|
|
1749
1753
|
```
|
|
1750
1754
|
|
package/dist/adapters/index.d.ts
CHANGED
package/dist/adapters/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { prepareTemplate, replaceTemplate, } from '../transformers/generateUri.js';
|
|
2
|
+
const adapter = {
|
|
3
|
+
prepareOptions(_options, _serviceId) {
|
|
4
|
+
return {};
|
|
5
|
+
},
|
|
6
|
+
async normalize(action, _options) {
|
|
7
|
+
return action;
|
|
8
|
+
},
|
|
9
|
+
async serialize(action, _options) {
|
|
10
|
+
const template = action.meta?.options?.uri;
|
|
11
|
+
if (typeof template === 'string') {
|
|
12
|
+
const parts = prepareTemplate(template);
|
|
13
|
+
const uri = replaceTemplate(parts, action);
|
|
14
|
+
return {
|
|
15
|
+
...action,
|
|
16
|
+
meta: { ...action.meta, options: { ...action.meta?.options, uri } },
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return action;
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export default adapter;
|
|
23
|
+
//# sourceMappingURL=uri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/adapters/uri.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,OAAO,GAAY;IACvB,cAAc,CAAC,QAAQ,EAAE,UAAU;QACjC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ;QAC9B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAA;QAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;YACvC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC1C,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;aACpE,CAAA;SACF;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
token: import("../index.js").Authenticator<import("../index.js").Authentication>;
|
|
4
|
-
};
|
|
5
|
-
export default _default;
|
|
1
|
+
export * as options from './options.js';
|
|
2
|
+
export * as token from './token.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/authenticators/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/authenticators/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
|
package/dist/create.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { SchemaDef } from './schema/types.js';
|
|
|
7
7
|
import Auth from './service/Auth.js';
|
|
8
8
|
import { Schema } from './schema/index.js';
|
|
9
9
|
export interface Definitions {
|
|
10
|
+
id?: string;
|
|
10
11
|
schemas: SchemaDef[];
|
|
11
12
|
services: ServiceDef[];
|
|
12
13
|
mutations?: Record<string, TransformDefinition>;
|
|
@@ -24,6 +25,7 @@ export interface Resources {
|
|
|
24
25
|
transformers?: Record<string, Transformer>;
|
|
25
26
|
}
|
|
26
27
|
export interface Instance<ResponseData = unknown> {
|
|
28
|
+
id?: string;
|
|
27
29
|
services: Record<string, Service>;
|
|
28
30
|
schemas: Record<string, Schema>;
|
|
29
31
|
identType?: string;
|
|
@@ -35,4 +37,4 @@ export interface Instance<ResponseData = unknown> {
|
|
|
35
37
|
on: (eventName: string, listener: (...args: unknown[]) => void) => EventEmitter;
|
|
36
38
|
}
|
|
37
39
|
export declare const setUpAuth: (authenticators?: Record<string, Authenticator>) => (def: AuthDef) => Auth;
|
|
38
|
-
export default function create({ services: serviceDefs, schemas: schemaDefs, mutations, auths: authDefs, identConfig, queueService, dictionaries, jobs: jobsDefs, }: Definitions, { transporters, adapters, transformers, handlers, authenticators }: Resources, middlewareForDispatch?: Middleware[], middlewareForService?: Middleware[]): Instance;
|
|
40
|
+
export default function create({ id, services: serviceDefs, schemas: schemaDefs, mutations, auths: authDefs, identConfig, queueService, dictionaries, jobs: jobsDefs, }: Definitions, { transporters, adapters, transformers, handlers, authenticators }: Resources, middlewareForDispatch?: Middleware[], middlewareForService?: Middleware[]): Instance;
|
package/dist/create.js
CHANGED
|
@@ -22,7 +22,7 @@ export const setUpAuth = (authenticators) => function setUpAuth(def) {
|
|
|
22
22
|
}
|
|
23
23
|
return new Auth(def.id, authenticator, def.options);
|
|
24
24
|
};
|
|
25
|
-
export default function create({ services: serviceDefs, schemas: schemaDefs, mutations, auths: authDefs, identConfig, queueService, dictionaries, jobs: jobsDefs = [], }, { transporters, adapters, transformers, handlers, authenticators }, middlewareForDispatch = [], middlewareForService = []) {
|
|
25
|
+
export default function create({ id, services: serviceDefs, schemas: schemaDefs, mutations, auths: authDefs, identConfig, queueService, dictionaries, jobs: jobsDefs = [], }, { transporters, adapters, transformers, handlers, authenticators }, middlewareForDispatch = [], middlewareForService = []) {
|
|
26
26
|
if (!Array.isArray(serviceDefs) || !Array.isArray(schemaDefs)) {
|
|
27
27
|
throw new TypeError('Please provide Integreat with at least services and schemas');
|
|
28
28
|
}
|
|
@@ -64,6 +64,7 @@ export default function create({ services: serviceDefs, schemas: schemaDefs, mut
|
|
|
64
64
|
const scheduled = jobsDefs.filter(isObject).map(createSchedule);
|
|
65
65
|
const dispatchScheduled = createDispatchScheduled(dispatch, scheduled);
|
|
66
66
|
return {
|
|
67
|
+
id,
|
|
67
68
|
services,
|
|
68
69
|
schemas,
|
|
69
70
|
identType: identConfig?.type,
|
package/dist/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAA;AACtC,OAAO,YAAY,MAAM,eAAe,CAAA;AAwBxC,OAAO,IAAI,MAAM,mBAAmB,CAAA;AACpC,OAAO,eAAe,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,MAAM,mBAAmB,CAAA;AACrC,OAAO,mBAAmB,MAAM,kCAAkC,CAAA;AAClE,OAAO,YAAwB,MAAM,mBAAmB,CAAA;AACxD,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,gBAAgB,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,cAAc,MAAM,eAAe,CAAA;AAC1C,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,uBAAuB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/dist/dispatch.js
CHANGED
|
@@ -3,7 +3,7 @@ import pProgress from 'p-progress';
|
|
|
3
3
|
import debugLib from 'debug';
|
|
4
4
|
import { QUEUE_SYMBOL } from './handlers/index.js';
|
|
5
5
|
import setupGetService from './utils/getService.js';
|
|
6
|
-
import { setErrorOnAction, setResponseOnAction } from './utils/action.js';
|
|
6
|
+
import { setErrorOnAction, createErrorResponse, setResponseOnAction, } from './utils/action.js';
|
|
7
7
|
const debug = debugLib('great');
|
|
8
8
|
export const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
|
|
9
9
|
const shouldQueue = (action, options) => action.meta?.queue === true && !!options.queueService;
|
|
@@ -39,10 +39,15 @@ async function mapIncomingAction(action, getService) {
|
|
|
39
39
|
}
|
|
40
40
|
return { action };
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
async function mapIncomingResponse(action, service, endpoint) {
|
|
43
|
+
const response = service && endpoint
|
|
44
|
+
? await service.mutateResponse(action, endpoint, true)
|
|
45
|
+
: action.response || {};
|
|
46
|
+
return {
|
|
47
|
+
...response,
|
|
48
|
+
access: { ident: action.meta?.ident, ...response.access },
|
|
49
|
+
};
|
|
50
|
+
}
|
|
46
51
|
function setIds(action) {
|
|
47
52
|
const id = action.meta?.id || nanoid();
|
|
48
53
|
const cid = action.meta?.cid || id;
|
|
@@ -55,12 +60,12 @@ const wrapDispatch = (internalDispatch, getService) => (action) => pProgress(asy
|
|
|
55
60
|
const actionWithIds = setIds(action);
|
|
56
61
|
const { action: mappedAction, service, endpoint, } = await mapIncomingAction(actionWithIds, getService);
|
|
57
62
|
if (mappedAction.response?.status) {
|
|
58
|
-
return
|
|
63
|
+
return await mapIncomingResponse(mappedAction, service, endpoint);
|
|
59
64
|
}
|
|
60
65
|
const p = internalDispatch(mappedAction);
|
|
61
66
|
p.onProgress(setProgress);
|
|
62
|
-
const
|
|
63
|
-
return
|
|
67
|
+
const response = await p;
|
|
68
|
+
return await mapIncomingResponse(setResponseOnAction(action, response), service, endpoint);
|
|
64
69
|
});
|
|
65
70
|
const prepareAction = ({ payload: { service, ...payload }, meta: { queue, authorized, ...meta } = {}, ...action }) => ({
|
|
66
71
|
...action,
|
|
@@ -70,7 +75,7 @@ const prepareAction = ({ payload: { service, ...payload }, meta: { queue, author
|
|
|
70
75
|
async function handleAction(handlerType, action, resources, handlers) {
|
|
71
76
|
const handler = getActionHandlerFromType(handlerType, handlers);
|
|
72
77
|
if (!handler) {
|
|
73
|
-
return
|
|
78
|
+
return createErrorResponse(`No handler for ${String(handlerType)} action`, 'badrequest');
|
|
74
79
|
}
|
|
75
80
|
return await handler(action, resources);
|
|
76
81
|
}
|
|
@@ -90,17 +95,15 @@ export default function createDispatch({ handlers = {}, schemas = {}, services =
|
|
|
90
95
|
};
|
|
91
96
|
try {
|
|
92
97
|
if (shouldQueue(action, options)) {
|
|
93
|
-
|
|
94
|
-
return response;
|
|
98
|
+
return await handleAction(QUEUE_SYMBOL, nextAction, resources, handlers);
|
|
95
99
|
}
|
|
96
100
|
else {
|
|
97
101
|
const next = async (action) => handleAction(action.type, action, resources, handlers);
|
|
98
|
-
|
|
99
|
-
return setResponseOnAction(nextAction, response);
|
|
102
|
+
return await middlewareFn(next)(nextAction);
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
catch (err) {
|
|
103
|
-
return
|
|
106
|
+
return createErrorResponse(`Error thrown in dispatch: ${err}`);
|
|
104
107
|
}
|
|
105
108
|
});
|
|
106
109
|
return wrapDispatch(internalDispatch, getService);
|
package/dist/dispatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,eAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Action, ActionHandlerResources } from '../types.js';
|
|
2
|
-
export default function deleteFn(action: Action, { getService }: ActionHandlerResources): Promise<
|
|
1
|
+
import type { Action, Response, ActionHandlerResources } from '../types.js';
|
|
2
|
+
export default function deleteFn(action: Action, { getService }: ActionHandlerResources): Promise<Response>;
|
package/dist/handlers/delete.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import debugLib from 'debug';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import mutateAndSend from '../utils/mutateAndSend.js';
|
|
3
|
+
import { setDataOnActionPayload, createErrorResponse } from '../utils/action.js';
|
|
4
4
|
import createUnknownServiceError from '../utils/createUnknownServiceError.js';
|
|
5
5
|
const debug = debugLib('great');
|
|
6
6
|
const prepareData = ({ type, id, data }) => type && id
|
|
@@ -12,11 +12,11 @@ export default async function deleteFn(action, { getService }) {
|
|
|
12
12
|
const { type, id, targetService: serviceId, endpoint: endpointId, } = action.payload;
|
|
13
13
|
const service = getService(type, serviceId);
|
|
14
14
|
if (!service) {
|
|
15
|
-
return createUnknownServiceError(
|
|
15
|
+
return createUnknownServiceError(type, serviceId, 'DELETE');
|
|
16
16
|
}
|
|
17
17
|
const data = prepareData(action.payload);
|
|
18
18
|
if (data.length === 0) {
|
|
19
|
-
return
|
|
19
|
+
return createErrorResponse(`No items to delete from service '${service.id}'`, 'noaction');
|
|
20
20
|
}
|
|
21
21
|
const endpointDebug = endpointId
|
|
22
22
|
? `endpoint '${endpointId}'`
|
|
@@ -25,9 +25,8 @@ export default async function deleteFn(action, { getService }) {
|
|
|
25
25
|
const nextAction = setDataOnActionPayload(action, data);
|
|
26
26
|
const endpoint = service.endpointFromAction(nextAction);
|
|
27
27
|
if (!endpoint) {
|
|
28
|
-
return
|
|
28
|
+
return createErrorResponse(`No endpoint matching ${nextAction.type} request to service '${serviceId}'.`, 'badrequest');
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
return setResponseOnAction(action, response);
|
|
30
|
+
return await mutateAndSend(service, endpoint, nextAction);
|
|
32
31
|
}
|
|
33
32
|
//# sourceMappingURL=delete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/handlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/handlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,aAAa,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,yBAAyB,MAAM,uCAAuC,CAAA;AAQ7E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;AAE/B,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAW,EAAE,EAAE,CAClD,IAAI,IAAI,EAAE;IACR,CAAC;QACC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;QACE,EAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAKpD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,QAAQ,CACpC,MAAc,EACd,EAAE,UAAU,EAA0B;IAEtC,MAAM,EACJ,IAAI,EACJ,EAAE,EACF,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,UAAU,GACrB,GAAG,MAAM,CAAC,OAAO,CAAA;IAElB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;KAC5D;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,mBAAmB,CACxB,oCAAoC,OAAO,CAAC,EAAE,GAAG,EACjD,UAAU,CACX,CAAA;KACF;IAED,MAAM,aAAa,GAAG,UAAU;QAC9B,CAAC,CAAC,aAAa,UAAU,GAAG;QAC5B,CAAC,CAAC,qBAAqB,IAAI,QAAQ,EAAE,EAAE,CAAA;IACzC,KAAK,CAAC,yCAAyC,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IAE3E,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACvD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,mBAAmB,CACxB,wBAAwB,UAAU,CAAC,IAAI,wBAAwB,SAAS,IAAI,EAC5E,YAAY,CACb,CAAA;KACF;IAED,OAAO,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC3D,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Action, ActionHandlerResources } from '../types.js';
|
|
2
|
-
export default function expire(action: Action, { dispatch }: ActionHandlerResources): Promise<
|
|
1
|
+
import type { Action, Response, ActionHandlerResources } from '../types.js';
|
|
2
|
+
export default function expire(action: Action, { dispatch }: ActionHandlerResources): Promise<Response>;
|
package/dist/handlers/expire.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createErrorResponse } from '../utils/action.js';
|
|
2
2
|
import { isTypedData } from '../utils/is.js';
|
|
3
3
|
const isTypedDataArray = (value) => Array.isArray(value) && isTypedData(value[0]);
|
|
4
4
|
const getExpired = async (targetService, type, endpointId, msFromNow, dispatch, cid, ident) => {
|
|
@@ -29,23 +29,22 @@ export default async function expire(action, { dispatch }) {
|
|
|
29
29
|
const { payload: { type, endpoint: endpointId, targetService: serviceId }, meta: { ident, cid } = {}, } = action;
|
|
30
30
|
const msFromNow = action.payload.msFromNow || 0;
|
|
31
31
|
if (!serviceId) {
|
|
32
|
-
return
|
|
32
|
+
return createErrorResponse(`Can't delete expired without a specified service`);
|
|
33
33
|
}
|
|
34
34
|
if (!endpointId) {
|
|
35
|
-
return
|
|
35
|
+
return createErrorResponse(`Can't delete expired from service '${serviceId}' without an endpoint`);
|
|
36
36
|
}
|
|
37
37
|
if (!type) {
|
|
38
|
-
return
|
|
38
|
+
return createErrorResponse(`Can't delete expired from service '${serviceId}' without one or more specified types`);
|
|
39
39
|
}
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
return
|
|
40
|
+
const expiredResponse = await getExpired(serviceId, type, endpointId, msFromNow, dispatch, cid, ident);
|
|
41
|
+
if (expiredResponse.status !== 'ok') {
|
|
42
|
+
return createErrorResponse(`Could not get items from service '${serviceId}'. Reason: ${expiredResponse.status} ${expiredResponse.error}`, 'error');
|
|
43
43
|
}
|
|
44
|
-
const data =
|
|
44
|
+
const data = expiredResponse.data;
|
|
45
45
|
if (!isTypedDataArray(data)) {
|
|
46
|
-
return
|
|
46
|
+
return createErrorResponse(`No items to expire from service '${serviceId}'`, 'noaction');
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
return setResponseOnAction(action, response);
|
|
48
|
+
return await deleteExpired(data, serviceId, dispatch, cid, ident);
|
|
50
49
|
}
|
|
51
50
|
//# sourceMappingURL=expire.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expire.js","sourceRoot":"","sources":["../../src/handlers/expire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"expire.js","sourceRoot":"","sources":["../../src/handlers/expire.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/get.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Action, ActionHandlerResources } from '../types.js';
|
|
2
|
-
export default function get(action: Action, { getService }: ActionHandlerResources): Promise<
|
|
1
|
+
import type { Action, Response, ActionHandlerResources } from '../types.js';
|
|
2
|
+
export default function get(action: Action, { getService }: ActionHandlerResources): Promise<Response>;
|
package/dist/handlers/get.js
CHANGED
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
import debugLib from 'debug';
|
|
2
|
-
import pPipe from 'p-pipe';
|
|
3
2
|
import pLimit from 'p-limit';
|
|
4
|
-
import {
|
|
3
|
+
import { createErrorResponse, setResponseOnAction } from '../utils/action.js';
|
|
5
4
|
import createUnknownServiceError from '../utils/createUnknownServiceError.js';
|
|
6
5
|
const debug = debugLib('great');
|
|
7
|
-
const
|
|
6
|
+
const isErrorResponse = (response) => response.status !== 'ok' && response.status !== 'notfound';
|
|
8
7
|
const getIdFromAction = ({ payload: { id } }) => Array.isArray(id) && id.length === 1 ? id[0] : id;
|
|
9
|
-
const
|
|
10
|
-
?
|
|
11
|
-
:
|
|
8
|
+
const combineResponses = (action, responses) => responses.some(isErrorResponse)
|
|
9
|
+
? createErrorResponse(`One or more of the requests for ids ${getIdFromAction(action)} failed.`)
|
|
10
|
+
: {
|
|
12
11
|
...action.response,
|
|
13
12
|
status: 'ok',
|
|
14
|
-
data:
|
|
15
|
-
|
|
16
|
-
: action.response?.data),
|
|
17
|
-
});
|
|
13
|
+
data: responses.map((response) => Array.isArray(response.data) ? response.data[0] : response.data),
|
|
14
|
+
};
|
|
18
15
|
const isMembersScope = (endpoint) => endpoint?.match?.scope === 'members';
|
|
19
16
|
const setIdOnActionPayload = (action, id) => ({
|
|
20
17
|
...action,
|
|
21
18
|
payload: { ...action.payload, id },
|
|
22
19
|
});
|
|
23
|
-
const createNoEndpointError = (action, serviceId) =>
|
|
20
|
+
const createNoEndpointError = (action, serviceId) => createErrorResponse(`No endpoint matching ${action.type} request to service '${serviceId}'.`, 'badrequest');
|
|
24
21
|
async function runAsIndividualActions(action, service, mapPerId) {
|
|
25
22
|
const actions = action.payload.id.map((oneId) => setIdOnActionPayload(action, oneId));
|
|
26
23
|
const endpoint = service.endpointFromAction(actions[0]);
|
|
27
24
|
if (!endpoint) {
|
|
28
25
|
return createNoEndpointError(action, service.id);
|
|
29
26
|
}
|
|
30
|
-
return
|
|
27
|
+
return combineResponses(action, await Promise.all(actions.map((action) => pLimit(1)(() => mapPerId(endpoint)(action)))));
|
|
31
28
|
}
|
|
32
29
|
const doRunIndividualIds = (action, endpoint) => Array.isArray(action.payload.id) &&
|
|
33
30
|
action.meta?.authorized &&
|
|
34
31
|
!isMembersScope(endpoint);
|
|
35
|
-
async function
|
|
32
|
+
async function runOneOrMany(action, service, mapPerId) {
|
|
36
33
|
const endpoint = service.endpointFromAction(action);
|
|
37
34
|
if (doRunIndividualIds(action, endpoint)) {
|
|
38
35
|
return runAsIndividualActions(action, service, mapPerId);
|
|
@@ -42,23 +39,26 @@ async function mapOneOrMany(action, service, mapPerId) {
|
|
|
42
39
|
}
|
|
43
40
|
return mapPerId(endpoint)(action);
|
|
44
41
|
}
|
|
42
|
+
const runOne = (service) => (endpoint) => async function (action) {
|
|
43
|
+
const requestAction = await service.mutateRequest(action, endpoint);
|
|
44
|
+
const response = await service.send(requestAction);
|
|
45
|
+
return await service.mutateResponse(setResponseOnAction(action, response), endpoint);
|
|
46
|
+
};
|
|
45
47
|
export default async function get(action, { getService }) {
|
|
46
48
|
const { type, targetService: serviceId, endpoint: endpointId, } = action.payload;
|
|
47
49
|
const id = getIdFromAction(action);
|
|
48
50
|
if (Array.isArray(id) && id.length === 0) {
|
|
49
|
-
return
|
|
51
|
+
return createErrorResponse('GET action was dispatched with empty array of ids', 'noaction');
|
|
50
52
|
}
|
|
51
53
|
const service = getService(type, serviceId);
|
|
52
54
|
if (!service) {
|
|
53
|
-
return createUnknownServiceError(
|
|
55
|
+
return createUnknownServiceError(type, serviceId, 'GET');
|
|
54
56
|
}
|
|
55
57
|
const endpointDebug = endpointId
|
|
56
58
|
? `endpoint '${endpointId}'`
|
|
57
59
|
: `endpoint matching type '${type}' and id '${id}'`;
|
|
58
60
|
debug('GET: Fetch from service %s at %s', service.id, endpointDebug);
|
|
59
61
|
const nextAction = setIdOnActionPayload(action, id);
|
|
60
|
-
|
|
61
|
-
const { response } = await mapOneOrMany(service.authorizeAction(nextAction), service, mapPerId);
|
|
62
|
-
return setResponseOnAction(action, response);
|
|
62
|
+
return await runOneOrMany(service.authorizeAction(nextAction), service, runOne(service));
|
|
63
63
|
}
|
|
64
64
|
//# sourceMappingURL=get.js.map
|
package/dist/handlers/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/handlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/handlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,yBAAyB,MAAM,uCAAuC,CAAA;AAK7E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;AAE/B,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,EAAE,CAC7C,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAA;AAE5D,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAU,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAEnD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,SAAqB,EAAY,EAAE,CAC3E,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC,CAAC,mBAAmB,CACjB,uCAAuC,eAAe,CAAC,MAAM,CAAC,UAAU,CACzE;IACH,CAAC,CAAC;QACE,GAAG,MAAM,CAAC,QAAQ;QAClB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAChE;KACF,CAAA;AAEP,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAE,EAAE,CAC7C,QAAQ,EAAE,KAAK,EAAE,KAAK,KAAK,SAAS,CAAA;AAEtC,MAAM,oBAAoB,GAAG,CAC3B,MAAc,EACd,EAAsB,EACd,EAAE,CAAC,CAAC;IACZ,GAAG,MAAM;IACT,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE;CACnC,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,EAAE,CAClE,mBAAmB,CACjB,wBAAwB,MAAM,CAAC,IAAI,wBAAwB,SAAS,IAAI,EACxE,YAAY,CACb,CAAA;AAEH,KAAK,UAAU,sBAAsB,CACnC,MAAc,EACd,OAAgB,EAChB,QAAuE;IAEvE,MAAM,OAAO,GAAI,MAAM,CAAC,OAAO,CAAC,EAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5D,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CACpC,CAAA;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KACjD;IACD,OAAO,gBAAgB,CACrB,MAAM,EACN,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CACrE,CACF,CAAA;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,QAAmB,EAAE,EAAE,CACjE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,CAAC,IAAI,EAAE,UAAU;IACvB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;AAE3B,KAAK,UAAU,YAAY,CACzB,MAAc,EACd,OAAgB,EAChB,QAAuE;IAEvE,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACnD,IAAI,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;QACxC,OAAO,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;KACzD;IACD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KACjD;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,QAAkB,EAAE,EAAE,CAC1D,KAAK,WAAW,MAAc;IAC5B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClD,OAAO,MAAM,OAAO,CAAC,cAAc,CACjC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACrC,QAAQ,CACT,CAAA;AACH,CAAC,CAAA;AAKH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,GAAG,CAC/B,MAAc,EACd,EAAE,UAAU,EAA0B;IAEtC,MAAM,EACJ,IAAI,EACJ,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,UAAU,GACrB,GAAG,MAAM,CAAC,OAAO,CAAA;IAElB,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC,OAAO,mBAAmB,CACxB,mDAAmD,EACnD,UAAU,CACX,CAAA;KACF;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;KACzD;IAED,MAAM,aAAa,GAAG,UAAU;QAC9B,CAAC,CAAC,aAAa,UAAU,GAAG;QAC5B,CAAC,CAAC,2BAA2B,IAAI,aAAa,EAAE,GAAG,CAAA;IACrD,KAAK,CAAC,kCAAkC,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IAEpE,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEnD,OAAO,MAAM,YAAY,CACvB,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,EACnC,OAAO,EACP,MAAM,CAAC,OAAO,CAAC,CAChB,CAAA;AACH,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Action, ActionHandlerResources } from '../types.js';
|
|
2
|
-
export default function getAll(action: Action, { dispatch }: ActionHandlerResources): Promise<
|
|
1
|
+
import type { Action, Response, ActionHandlerResources } from '../types.js';
|
|
2
|
+
export default function getAll(action: Action, { dispatch }: ActionHandlerResources): Promise<Response>;
|
package/dist/handlers/getAll.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createErrorResponse } from '../utils/action.js';
|
|
2
2
|
import { isObject, isTypedData } from '../utils/is.js';
|
|
3
3
|
const extractLastId = (data, field = 'id') => Array.isArray(data) && isObject(data[data.length - 1])
|
|
4
4
|
?
|
|
@@ -39,12 +39,11 @@ const createNextPaging = (payload, paging) => hasProps(paging) ? { ...payload, .
|
|
|
39
39
|
export default async function getAll(action, { dispatch }) {
|
|
40
40
|
const { pageSize, noLoopCheck = false } = action.payload;
|
|
41
41
|
if (typeof pageSize !== 'number') {
|
|
42
|
-
|
|
42
|
+
return await dispatch({
|
|
43
43
|
type: 'GET',
|
|
44
44
|
payload: action.payload,
|
|
45
45
|
meta: action.meta,
|
|
46
46
|
});
|
|
47
|
-
return setResponseOnAction(action, response);
|
|
48
47
|
}
|
|
49
48
|
const data = [];
|
|
50
49
|
let page = getCurrentPage(action.payload);
|
|
@@ -52,9 +51,9 @@ export default async function getAll(action, { dispatch }) {
|
|
|
52
51
|
let lastSize = -1;
|
|
53
52
|
let prevFirstId = null;
|
|
54
53
|
do {
|
|
55
|
-
const
|
|
54
|
+
const response = await dispatch(createAction(page++, action.payload, paging, data, cleanMeta(action.meta)));
|
|
56
55
|
if (response?.status !== 'ok') {
|
|
57
|
-
return
|
|
56
|
+
return response;
|
|
58
57
|
}
|
|
59
58
|
const usePageId = !!paging || response?.paging?.next !== undefined;
|
|
60
59
|
paging = createNextPaging(action.payload, response?.paging?.next);
|
|
@@ -63,7 +62,7 @@ export default async function getAll(action, { dispatch }) {
|
|
|
63
62
|
if (!noLoopCheck) {
|
|
64
63
|
const firstId = getFirstId(responseData);
|
|
65
64
|
if (typeof firstId === 'string' && firstId === prevFirstId) {
|
|
66
|
-
return
|
|
65
|
+
return createErrorResponse('GET_ALL detected a possible infinite loop');
|
|
67
66
|
}
|
|
68
67
|
prevFirstId = firstId;
|
|
69
68
|
}
|
|
@@ -74,6 +73,6 @@ export default async function getAll(action, { dispatch }) {
|
|
|
74
73
|
lastSize = 0;
|
|
75
74
|
}
|
|
76
75
|
} while (lastSize === pageSize);
|
|
77
|
-
return
|
|
76
|
+
return { status: 'ok', data };
|
|
78
77
|
}
|
|
79
78
|
//# sourceMappingURL=getAll.js.map
|