@feathersjs/schema 5.0.0-pre.21 → 5.0.0-pre.22

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 CHANGED
@@ -3,6 +3,17 @@
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.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **schema:** Allows resolveData with different resolvers based on method ([#2644](https://github.com/feathersjs/feathers/issues/2644)) ([be71fa2](https://github.com/feathersjs/feathers/commit/be71fa2fe260e05b7dcc0d5f439e33f2e9ec2434))
12
+
13
+
14
+
15
+
16
+
6
17
  # [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
7
18
 
8
19
 
@@ -1,14 +1,20 @@
1
1
  import { HookContext, NextFunction } from '@feathersjs/feathers';
2
2
  import { Resolver } from '../resolver';
3
+ export declare type ResolverSetting<H extends HookContext> = Resolver<any, H> | Resolver<any, H>[];
4
+ export declare type DataResolvers<H extends HookContext> = {
5
+ create: Resolver<any, H>;
6
+ patch: Resolver<any, H>;
7
+ update: Resolver<any, H>;
8
+ };
9
+ export declare type ResolveAllSettings<H extends HookContext> = {
10
+ data?: DataResolvers<H>;
11
+ query?: Resolver<any, H>;
12
+ result?: Resolver<any, H>;
13
+ dispatch?: Resolver<any, H>;
14
+ };
3
15
  export declare const DISPATCH: unique symbol;
4
16
  export declare const resolveQuery: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
5
- export declare const resolveData: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
17
+ export declare const resolveData: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(settings: DataResolvers<H> | Resolver<any, H>) => (context: H, next?: NextFunction) => Promise<any>;
6
18
  export declare const resolveResult: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
7
19
  export declare const resolveDispatch: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
8
- export declare type ResolveAllSettings<H extends HookContext> = {
9
- data?: Resolver<any, H> | Resolver<any, H>[];
10
- query?: Resolver<any, H> | Resolver<any, H>[];
11
- result?: Resolver<any, H> | Resolver<any, H>[];
12
- dispatch?: Resolver<any, H> | Resolver<any, H>[];
13
- };
14
20
  export declare const resolveAll: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(map: ResolveAllSettings<H>) => (this: any, context: H, next?: import("@feathersjs/hooks").AsyncMiddleware<H>) => Promise<any>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveAll = exports.resolveDispatch = exports.resolveResult = exports.resolveData = exports.resolveQuery = exports.DISPATCH = void 0;
4
4
  const hooks_1 = require("@feathersjs/hooks");
5
+ const resolver_1 = require("../resolver");
5
6
  const getContext = (context) => {
6
7
  return {
7
8
  ...context,
@@ -38,8 +39,9 @@ const resolveQuery = (...resolvers) => async (context, next) => {
38
39
  }
39
40
  };
40
41
  exports.resolveQuery = resolveQuery;
41
- const resolveData = (...resolvers) => async (context, next) => {
42
+ const resolveData = (settings) => async (context, next) => {
42
43
  if (context.method === 'create' || context.method === 'patch' || context.method === 'update') {
44
+ const resolvers = settings instanceof resolver_1.Resolver ? [settings] : [settings[context.method]];
43
45
  const ctx = getContext(context);
44
46
  const data = context.data;
45
47
  const status = {
@@ -116,15 +118,21 @@ const resolveDispatch = (...resolvers) => async (context, next) => {
116
118
  });
117
119
  };
118
120
  exports.resolveDispatch = resolveDispatch;
119
- const getResolvers = (map, name) => {
120
- const value = map[name];
121
- return Array.isArray(value) ? value : (value !== undefined ? [value] : []);
121
+ const resolveAll = (map) => {
122
+ const middleware = [];
123
+ if (map.dispatch) {
124
+ middleware.push((0, exports.resolveDispatch)(map.dispatch));
125
+ }
126
+ if (map.result) {
127
+ middleware.push((0, exports.resolveResult)(map.result));
128
+ }
129
+ if (map.query) {
130
+ middleware.push((0, exports.resolveQuery)(map.query));
131
+ }
132
+ if (map.data) {
133
+ middleware.push((0, exports.resolveData)(map.data));
134
+ }
135
+ return (0, hooks_1.compose)(middleware);
122
136
  };
123
- const resolveAll = (map) => (0, hooks_1.compose)([
124
- (0, exports.resolveDispatch)(...getResolvers(map, 'dispatch')),
125
- (0, exports.resolveResult)(...getResolvers(map, 'result')),
126
- (0, exports.resolveQuery)(...getResolvers(map, 'query')),
127
- (0, exports.resolveData)(...getResolvers(map, 'data'))
128
- ]);
129
137
  exports.resolveAll = resolveAll;
130
138
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAG5C,MAAM,UAAU,GAAG,CAAyB,OAAU,EAAE,EAAE;IACxD,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE;YACN,GAAG,OAAO,CAAC,MAAM;YACjB,KAAK,EAAE,EAAE;SACV;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAyB,OAAU,EAAE,EAAE;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IACrE,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAEhE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,KAAK,EACxB,SAA2B,EAC3B,IAAS,EACT,GAAM,EACN,MAAsC,EACtC,EAAE;IACF,IAAI,OAAO,GAAQ,IAAI,CAAC;IAExB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;KACxD;IAED,OAAO,OAAY,CAAC;AACtB,CAAC,CAAA;AAEY,QAAA,QAAQ,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAEvD,MAAM,YAAY,GAAG,CAA4B,GAAG,SAA2B,EAAE,EAAE,CACxF,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;;IACxC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAEvD,OAAO,CAAC,MAAM,GAAG;QACf,GAAG,OAAO,CAAC,MAAM;QACjB,KAAK;KACN,CAAA;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,IAAI,EAAE,CAAC;KACf;AACH,CAAC,CAAC;AAdS,QAAA,YAAY,gBAcrB;AAEG,MAAM,WAAW,GAAG,CAA4B,GAAG,SAA2B,EAAE,EAAE,CACvF,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;QAC5F,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,MAAM,MAAM,GAAG;YACb,eAAe,EAAE,OAAO;SACzB,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,CAAC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAClD,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAC9C,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,CAAC,IAAI,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;SACjE;KACF;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,IAAI,EAAE,CAAC;KACf;AACH,CAAC,CAAC;AAtBS,QAAA,WAAW,eAsBpB;AAEG,MAAM,aAAa,GAAG,CAA4B,GAAG,SAA2B,EAAE,EAAE,CACzF,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;;IACxC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,CAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,OAAO;YACxB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO;YACzB,UAAU;SACX,CAAC;QAEF,OAAO,CAAC,MAAM,GAAG;YACf,GAAG,OAAO,CAAC,MAAM;YACjB,OAAO;YACP,KAAK;SACN,CAAA;QAED,MAAM,IAAI,EAAE,CAAC;KACd;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,WAAW,EAAE;QACf,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;KAC9B;SAAM;QACL,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;KACzB;AACH,CAAC,CAAC;AAhCS,QAAA,aAAa,iBAgCtB;AAEG,MAAM,eAAe,GAAG,CAA4B,GAAG,SAA2B,EAAE,EAAE,CAC3F,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;IACxC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,IAAI,EAAE,CAAC;KACd;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,KAAK,EAAE,OAAY,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAEpE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,gBAAQ,CAAC,KAAK,SAAS,CAAC;YAEjG,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEjD,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAS,CAAC,CAAA;IACf,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;QAC7B,GAAG,OAAO,CAAC,MAAM;QACjB,IAAI,EAAE,MAAM;KACb,CAAC,CAAC,CAAC,MAAM,CAAC;IAEX,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAQ,EAAE;QAC9C,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AAlCS,QAAA,eAAe,mBAkCxB;AASJ,MAAM,YAAY,GAAG,CACnB,GAA0B,EAC1B,IAAiC,EACjC,EAAE;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAExB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAA;AAEM,MAAM,UAAU,GAAG,CAAyB,GAA0B,EAAE,EAAE,CAAC,IAAA,eAAO,EAAC;IACxF,IAAA,uBAAe,EAAC,GAAG,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjD,IAAA,qBAAa,EAAC,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7C,IAAA,oBAAY,EAAC,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAA,mBAAW,EAAC,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;CAC1C,CAAC,CAAA;AALW,QAAA,UAAU,cAKrB"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":"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"}
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.21",
4
+ "version": "5.0.0-pre.22",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -53,8 +53,8 @@
53
53
  "access": "public"
54
54
  },
55
55
  "dependencies": {
56
- "@feathersjs/errors": "^5.0.0-pre.21",
57
- "@feathersjs/feathers": "^5.0.0-pre.21",
56
+ "@feathersjs/errors": "^5.0.0-pre.22",
57
+ "@feathersjs/feathers": "^5.0.0-pre.22",
58
58
  "@feathersjs/hooks": "^0.7.4",
59
59
  "@types/json-schema": "^7.0.11",
60
60
  "ajv": "^8.11.0",
@@ -62,7 +62,7 @@
62
62
  "json-schema-to-ts": "^2.3.0"
63
63
  },
64
64
  "devDependencies": {
65
- "@feathersjs/memory": "^5.0.0-pre.21",
65
+ "@feathersjs/memory": "^5.0.0-pre.22",
66
66
  "@types/mocha": "^9.1.1",
67
67
  "@types/node": "^17.0.31",
68
68
  "ajv-formats": "^2.1.1",
@@ -70,5 +70,5 @@
70
70
  "shx": "^0.3.4",
71
71
  "typescript": "^4.6.4"
72
72
  },
73
- "gitHead": "ac3baed231f72370a80a06c5944538915479b96e"
73
+ "gitHead": "e452e02063e6d8943a9cae2315ab585bc4f82fb6"
74
74
  }
@@ -34,6 +34,21 @@ const runResolvers = async <T, H extends HookContext> (
34
34
  return current as T;
35
35
  }
36
36
 
37
+ export type ResolverSetting<H extends HookContext> = Resolver<any, H>|Resolver<any, H>[];
38
+
39
+ export type DataResolvers<H extends HookContext> = {
40
+ create: Resolver<any, H>
41
+ patch: Resolver<any, H>
42
+ update: Resolver<any, H>
43
+ }
44
+
45
+ export type ResolveAllSettings<H extends HookContext> = {
46
+ data?: DataResolvers<H>
47
+ query?: Resolver<any, H>
48
+ result?: Resolver<any, H>
49
+ dispatch?: Resolver<any, H>
50
+ }
51
+
37
52
  export const DISPATCH = Symbol('@feathersjs/schema/dispatch');
38
53
 
39
54
  export const resolveQuery = <T, H extends HookContext> (...resolvers: Resolver<T, H>[]) =>
@@ -52,9 +67,10 @@ export const resolveQuery = <T, H extends HookContext> (...resolvers: Resolver<T
52
67
  }
53
68
  };
54
69
 
55
- export const resolveData = <T, H extends HookContext> (...resolvers: Resolver<T, H>[]) =>
70
+ export const resolveData = <H extends HookContext> (settings: DataResolvers<H>|Resolver<any, H>) =>
56
71
  async (context: H, next?: NextFunction) => {
57
72
  if (context.method === 'create' || context.method === 'patch' || context.method === 'update') {
73
+ const resolvers = settings instanceof Resolver ? [ settings ] : [ settings[context.method] ];
58
74
  const ctx = getContext(context);
59
75
  const data = context.data;
60
76
 
@@ -146,25 +162,24 @@ export const resolveDispatch = <T, H extends HookContext> (...resolvers: Resolve
146
162
  });
147
163
  };
148
164
 
149
- export type ResolveAllSettings<H extends HookContext> = {
150
- data?: Resolver<any, H>|Resolver<any, H>[]
151
- query?: Resolver<any, H>|Resolver<any, H>[]
152
- result?: Resolver<any, H>|Resolver<any, H>[]
153
- dispatch?: Resolver<any, H>|Resolver<any, H>[]
154
- }
165
+ export const resolveAll = <H extends HookContext> (map: ResolveAllSettings<H>) => {
166
+ const middleware = [];
155
167
 
156
- const getResolvers = <H extends HookContext> (
157
- map: ResolveAllSettings<H>,
158
- name: keyof ResolveAllSettings<H>
159
- ) => {
160
- const value = map[name];
168
+ if (map.dispatch) {
169
+ middleware.push(resolveDispatch(map.dispatch));
170
+ }
161
171
 
162
- return Array.isArray(value) ? value : (value !== undefined ? [ value ] : []);
163
- }
172
+ if (map.result) {
173
+ middleware.push(resolveResult(map.result));
174
+ }
175
+
176
+ if (map.query) {
177
+ middleware.push(resolveQuery(map.query));
178
+ }
179
+
180
+ if (map.data) {
181
+ middleware.push(resolveData(map.data));
182
+ }
164
183
 
165
- export const resolveAll = <H extends HookContext> (map: ResolveAllSettings<H>) => compose([
166
- resolveDispatch(...getResolvers(map, 'dispatch')),
167
- resolveResult(...getResolvers(map, 'result')),
168
- resolveQuery(...getResolvers(map, 'query')),
169
- resolveData(...getResolvers(map, 'data'))
170
- ])
184
+ return compose(middleware);
185
+ }