@feathersjs/schema 5.0.0-pre.18 → 5.0.0-pre.19
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/CHANGELOG.md +13 -0
- package/lib/hooks.d.ts +3 -3
- package/lib/hooks.js +15 -10
- package/lib/hooks.js.map +1 -1
- package/lib/query.d.ts +1 -2
- package/package.json +10 -10
- package/src/hooks.ts +24 -11
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.0.0-pre.19](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.18...v5.0.0-pre.19) (2022-05-01)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **schema:** Allow hooks to run resolvers in sequence ([#2609](https://github.com/feathersjs/feathers/issues/2609)) ([d85c507](https://github.com/feathersjs/feathers/commit/d85c507c76d07e48fc8e7e28ff7de0ef435e0ef8))
|
|
12
|
+
* **typescript:** Improve adapter typings ([#2605](https://github.com/feathersjs/feathers/issues/2605)) ([3b2ca0a](https://github.com/feathersjs/feathers/commit/3b2ca0a6a8e03e8390272c4d7e930b4bffdaacf5))
|
|
13
|
+
* **typescript:** Improve params and query typeability ([#2600](https://github.com/feathersjs/feathers/issues/2600)) ([df28b76](https://github.com/feathersjs/feathers/commit/df28b7619161f1df5e700326f52cca1a92dc5d28))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
6
19
|
# [5.0.0-pre.18](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.17...v5.0.0-pre.18) (2022-04-11)
|
|
7
20
|
|
|
8
21
|
|
package/lib/hooks.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HookContext, NextFunction } from '@feathersjs/feathers';
|
|
2
2
|
import { Resolver } from './resolver';
|
|
3
3
|
import { Schema } from './schema';
|
|
4
|
-
export declare const resolveQuery: <T>(
|
|
5
|
-
export declare const resolveData: <T>(
|
|
6
|
-
export declare const resolveResult: <T>(
|
|
4
|
+
export declare const resolveQuery: <T>(...resolvers: Resolver<T, HookContext<import("@feathersjs/feathers").Application<any, any>, any>>[]) => (context: HookContext, next?: NextFunction) => Promise<any>;
|
|
5
|
+
export declare const resolveData: <T>(...resolvers: Resolver<T, HookContext<import("@feathersjs/feathers").Application<any, any>, any>>[]) => (context: HookContext, next?: NextFunction) => Promise<any>;
|
|
6
|
+
export declare const resolveResult: <T>(...resolvers: Resolver<T, HookContext<import("@feathersjs/feathers").Application<any, any>, any>>[]) => (context: HookContext, next?: NextFunction) => Promise<void>;
|
|
7
7
|
export declare const validateQuery: (schema: Schema<any>) => (context: HookContext, next?: NextFunction) => Promise<any>;
|
|
8
8
|
export declare const validateData: (schema: Schema<any>) => (context: HookContext, next?: NextFunction) => Promise<any>;
|
package/lib/hooks.js
CHANGED
|
@@ -11,13 +11,18 @@ const getContext = (context) => {
|
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
-
const
|
|
14
|
+
const runResolvers = async (resolvers, data, ctx, status) => {
|
|
15
|
+
let current = data;
|
|
16
|
+
for (const resolver of resolvers) {
|
|
17
|
+
current = await resolver.resolve(current, ctx, status);
|
|
18
|
+
}
|
|
19
|
+
return current;
|
|
20
|
+
};
|
|
21
|
+
const resolveQuery = (...resolvers) => async (context, next) => {
|
|
15
22
|
var _a;
|
|
16
23
|
const ctx = getContext(context);
|
|
17
24
|
const data = ((_a = context === null || context === void 0 ? void 0 : context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
|
|
18
|
-
const query = await
|
|
19
|
-
originalContext: context
|
|
20
|
-
});
|
|
25
|
+
const query = await runResolvers(resolvers, data, ctx);
|
|
21
26
|
context.params = {
|
|
22
27
|
...context.params,
|
|
23
28
|
query
|
|
@@ -27,24 +32,24 @@ const resolveQuery = (resolver) => async (context, next) => {
|
|
|
27
32
|
}
|
|
28
33
|
};
|
|
29
34
|
exports.resolveQuery = resolveQuery;
|
|
30
|
-
const resolveData = (
|
|
35
|
+
const resolveData = (...resolvers) => async (context, next) => {
|
|
31
36
|
const ctx = getContext(context);
|
|
32
37
|
const data = context.data;
|
|
33
38
|
const status = {
|
|
34
39
|
originalContext: context
|
|
35
40
|
};
|
|
36
41
|
if (Array.isArray(data)) {
|
|
37
|
-
context.data = await Promise.all(data.map(current =>
|
|
42
|
+
context.data = await Promise.all(data.map(current => runResolvers(resolvers, current, ctx, status)));
|
|
38
43
|
}
|
|
39
44
|
else {
|
|
40
|
-
context.data = await
|
|
45
|
+
context.data = await runResolvers(resolvers, data, ctx, status);
|
|
41
46
|
}
|
|
42
47
|
if (typeof next === 'function') {
|
|
43
48
|
return next();
|
|
44
49
|
}
|
|
45
50
|
};
|
|
46
51
|
exports.resolveData = resolveData;
|
|
47
|
-
const resolveResult = (
|
|
52
|
+
const resolveResult = (...resolvers) => async (context, next) => {
|
|
48
53
|
var _a;
|
|
49
54
|
if (typeof next === 'function') {
|
|
50
55
|
const { $resolve: properties, ...query } = ((_a = context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
|
|
@@ -65,8 +70,8 @@ const resolveResult = (resolver) => async (context, next) => {
|
|
|
65
70
|
const isPaginated = context.method === 'find' && context.result.data;
|
|
66
71
|
const data = isPaginated ? context.result.data : context.result;
|
|
67
72
|
const result = Array.isArray(data) ?
|
|
68
|
-
await Promise.all(data.map(async (current) =>
|
|
69
|
-
await
|
|
73
|
+
await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status))) :
|
|
74
|
+
await runResolvers(resolvers, data, ctx, status);
|
|
70
75
|
if (isPaginated) {
|
|
71
76
|
context.result.data = result;
|
|
72
77
|
}
|
package/lib/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AACA,0CAA8C;AAI9C,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC1C,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE;YACN,GAAG,OAAO,CAAC,MAAM;YACjB,KAAK,EAAE,EAAE;SACV;KACF,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,YAAY,GAAG,CAAK,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/lib/query.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const queryProperty: <T extends JSONSchema>(definition: T) => {
|
|
1
|
+
export declare const queryProperty: <T extends import("json-schema-to-ts").JSONSchema7>(definition: T) => {
|
|
3
2
|
readonly anyOf: readonly [T, {
|
|
4
3
|
readonly type: "object";
|
|
5
4
|
readonly additionalProperties: false;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feathersjs/schema",
|
|
3
3
|
"description": "A common data schema definition format",
|
|
4
|
-
"version": "5.0.0-pre.
|
|
4
|
+
"version": "5.0.0-pre.19",
|
|
5
5
|
"homepage": "https://feathersjs.com",
|
|
6
6
|
"main": "lib/",
|
|
7
7
|
"types": "lib/",
|
|
@@ -53,21 +53,21 @@
|
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@feathersjs/errors": "^5.0.0-pre.
|
|
57
|
-
"@feathersjs/feathers": "^5.0.0-pre.
|
|
56
|
+
"@feathersjs/errors": "^5.0.0-pre.19",
|
|
57
|
+
"@feathersjs/feathers": "^5.0.0-pre.19",
|
|
58
58
|
"@types/json-schema": "^7.0.11",
|
|
59
59
|
"ajv": "^8.11.0",
|
|
60
60
|
"json-schema": "^0.4.0",
|
|
61
|
-
"json-schema-to-ts": "^
|
|
61
|
+
"json-schema-to-ts": "^2.3.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@feathersjs/memory": "^5.0.0-pre.
|
|
65
|
-
"@types/mocha": "^9.1.
|
|
66
|
-
"@types/node": "^17.0.
|
|
64
|
+
"@feathersjs/memory": "^5.0.0-pre.19",
|
|
65
|
+
"@types/mocha": "^9.1.1",
|
|
66
|
+
"@types/node": "^17.0.31",
|
|
67
67
|
"ajv-formats": "^2.1.1",
|
|
68
|
-
"mocha": "^
|
|
68
|
+
"mocha": "^10.0.0",
|
|
69
69
|
"shx": "^0.3.4",
|
|
70
|
-
"typescript": "^4.6.
|
|
70
|
+
"typescript": "^4.6.4"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "57f3e18bb62735e1869ffafee90286498738fdfa"
|
|
73
73
|
}
|
package/src/hooks.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HookContext, NextFunction } from '@feathersjs/feathers';
|
|
2
2
|
import { BadRequest } from '../../errors/lib';
|
|
3
|
-
import { Resolver } from './resolver';
|
|
3
|
+
import { Resolver, ResolverStatus } from './resolver';
|
|
4
4
|
import { Schema } from './schema';
|
|
5
5
|
|
|
6
6
|
const getContext = (context: HookContext) => {
|
|
@@ -13,13 +13,26 @@ const getContext = (context: HookContext) => {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
const runResolvers = async <T> (
|
|
17
|
+
resolvers: Resolver<T, HookContext>[],
|
|
18
|
+
data: any,
|
|
19
|
+
ctx: HookContext,
|
|
20
|
+
status?: Partial<ResolverStatus<T, HookContext>>
|
|
21
|
+
) => {
|
|
22
|
+
let current: any = data;
|
|
23
|
+
|
|
24
|
+
for (const resolver of resolvers) {
|
|
25
|
+
current = await resolver.resolve(current, ctx, status);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return current as T;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const resolveQuery = <T> (...resolvers: Resolver<T, HookContext>[]) =>
|
|
17
32
|
async (context: HookContext, next?: NextFunction) => {
|
|
18
33
|
const ctx = getContext(context);
|
|
19
34
|
const data = context?.params?.query || {};
|
|
20
|
-
const query = await
|
|
21
|
-
originalContext: context
|
|
22
|
-
});
|
|
35
|
+
const query = await runResolvers(resolvers, data, ctx);
|
|
23
36
|
|
|
24
37
|
context.params = {
|
|
25
38
|
...context.params,
|
|
@@ -31,7 +44,7 @@ export const resolveQuery = <T> (resolver: Resolver<T, HookContext>) =>
|
|
|
31
44
|
}
|
|
32
45
|
};
|
|
33
46
|
|
|
34
|
-
export const resolveData = <T> (
|
|
47
|
+
export const resolveData = <T> (...resolvers: Resolver<T, HookContext>[]) =>
|
|
35
48
|
async (context: HookContext, next?: NextFunction) => {
|
|
36
49
|
const ctx = getContext(context);
|
|
37
50
|
const data = context.data;
|
|
@@ -41,10 +54,10 @@ export const resolveData = <T> (resolver: Resolver<T, HookContext>) =>
|
|
|
41
54
|
|
|
42
55
|
if (Array.isArray(data)) {
|
|
43
56
|
context.data = await Promise.all(data.map(current =>
|
|
44
|
-
|
|
57
|
+
runResolvers(resolvers, current, ctx, status)
|
|
45
58
|
));
|
|
46
59
|
} else {
|
|
47
|
-
context.data = await
|
|
60
|
+
context.data = await runResolvers(resolvers, data, ctx, status);
|
|
48
61
|
}
|
|
49
62
|
|
|
50
63
|
if (typeof next === 'function') {
|
|
@@ -52,7 +65,7 @@ export const resolveData = <T> (resolver: Resolver<T, HookContext>) =>
|
|
|
52
65
|
}
|
|
53
66
|
};
|
|
54
67
|
|
|
55
|
-
export const resolveResult = <T> (
|
|
68
|
+
export const resolveResult = <T> (...resolvers: Resolver<T, HookContext>[]) =>
|
|
56
69
|
async (context: HookContext, next?: NextFunction) => {
|
|
57
70
|
if (typeof next === 'function') {
|
|
58
71
|
const { $resolve: properties, ...query } = context.params?.query || {};
|
|
@@ -78,8 +91,8 @@ export const resolveResult = <T> (resolver: Resolver<T, HookContext>) =>
|
|
|
78
91
|
const data = isPaginated ? context.result.data : context.result;
|
|
79
92
|
|
|
80
93
|
const result = Array.isArray(data) ?
|
|
81
|
-
await Promise.all(data.map(async current =>
|
|
82
|
-
await
|
|
94
|
+
await Promise.all(data.map(async current => runResolvers(resolvers, current, ctx, status))) :
|
|
95
|
+
await runResolvers(resolvers, data, ctx, status);
|
|
83
96
|
|
|
84
97
|
if (isPaginated) {
|
|
85
98
|
context.result.data = result;
|