@feathersjs/schema 5.0.0-pre.20 → 5.0.0-pre.23

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,53 @@
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.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **schema:** Always resolve dispatch in resolveAll and add getDispatch method ([#2645](https://github.com/feathersjs/feathers/issues/2645)) ([145b366](https://github.com/feathersjs/feathers/commit/145b366435695438fbc8db9fdb161162ca9049ad))
12
+ * **schema:** remove `default` from queryProperty schemas ([#2646](https://github.com/feathersjs/feathers/issues/2646)) ([940a2b6](https://github.com/feathersjs/feathers/commit/940a2b6868d2f77f81edb1661f6417ec2ea6e372))
13
+
14
+
15
+ ### Features
16
+
17
+ * **core:** Rename async hooks to around hooks, allow usual registration format ([#2652](https://github.com/feathersjs/feathers/issues/2652)) ([2a485a0](https://github.com/feathersjs/feathers/commit/2a485a07929184261f27437fc0fdfe5a44694834))
18
+
19
+
20
+
21
+
22
+
23
+ # [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * **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))
29
+
30
+
31
+
32
+
33
+
34
+ # [5.0.0-pre.21](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.20...v5.0.0-pre.21) (2022-05-23)
35
+
36
+
37
+ ### Bug Fixes
38
+
39
+ * **schema:** Add Combine helper to allow merging schema types that use ([#2637](https://github.com/feathersjs/feathers/issues/2637)) ([06d03e9](https://github.com/feathersjs/feathers/commit/06d03e91abb1347576c2351c12322d01c58473e5))
40
+ * **typescript:** Make additional types generic to work with extended types ([#2625](https://github.com/feathersjs/feathers/issues/2625)) ([269fdec](https://github.com/feathersjs/feathers/commit/269fdecc5961092dc8608b3cbe16f433c80bfa96))
41
+
42
+
43
+ ### Features
44
+
45
+ * **schema:** Add resolveAll hook ([#2643](https://github.com/feathersjs/feathers/issues/2643)) ([85527d7](https://github.com/feathersjs/feathers/commit/85527d71cb78852880696e5d96abdcdf24593934))
46
+ * **schema:** Add resolver for safe external data dispatching ([#2641](https://github.com/feathersjs/feathers/issues/2641)) ([72b980e](https://github.com/feathersjs/feathers/commit/72b980e05631136d30c8f1468dee45ec6a8d2503))
47
+ * **schema:** Add schema resolver converter functionality ([#2640](https://github.com/feathersjs/feathers/issues/2640)) ([26d9e05](https://github.com/feathersjs/feathers/commit/26d9e05327d6e0144466cd57d6fcc11ac7ecb06a))
48
+
49
+
50
+
51
+
52
+
6
53
  # [5.0.0-pre.20](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.19...v5.0.0-pre.20) (2022-05-04)
7
54
 
8
55
 
@@ -0,0 +1,2 @@
1
+ export * from './resolve';
2
+ export * from './validate';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./resolve"), exports);
18
+ __exportStar(require("./validate"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,6CAA0B"}
@@ -0,0 +1,21 @@
1
+ import { HookContext, NextFunction } from '@feathersjs/feathers';
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
+ };
15
+ export declare const DISPATCH: unique symbol;
16
+ export declare const getDispatch: (value: any) => any;
17
+ 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>;
18
+ 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>;
19
+ 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>;
20
+ 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>;
21
+ 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>;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveAll = exports.resolveDispatch = exports.resolveResult = exports.resolveData = exports.resolveQuery = exports.getDispatch = exports.DISPATCH = void 0;
4
+ const hooks_1 = require("@feathersjs/hooks");
5
+ const resolver_1 = require("../resolver");
6
+ const getContext = (context) => {
7
+ return {
8
+ ...context,
9
+ params: {
10
+ ...context.params,
11
+ query: {}
12
+ }
13
+ };
14
+ };
15
+ const getData = (context) => {
16
+ const isPaginated = context.method === 'find' && context.result.data;
17
+ const data = isPaginated ? context.result.data : context.result;
18
+ return { isPaginated, data };
19
+ };
20
+ const runResolvers = async (resolvers, data, ctx, status) => {
21
+ let current = data;
22
+ for (const resolver of resolvers) {
23
+ if (resolver && typeof resolver.resolve === 'function') {
24
+ current = await resolver.resolve(current, ctx, status);
25
+ }
26
+ }
27
+ return current;
28
+ };
29
+ exports.DISPATCH = Symbol('@feathersjs/schema/dispatch');
30
+ const getDispatch = (value) => typeof value === 'object' && value !== null && value[exports.DISPATCH] !== undefined ? value[exports.DISPATCH] : value;
31
+ exports.getDispatch = getDispatch;
32
+ const resolveQuery = (...resolvers) => async (context, next) => {
33
+ var _a;
34
+ const ctx = getContext(context);
35
+ const data = ((_a = context === null || context === void 0 ? void 0 : context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
36
+ const query = await runResolvers(resolvers, data, ctx);
37
+ context.params = {
38
+ ...context.params,
39
+ query
40
+ };
41
+ if (typeof next === 'function') {
42
+ return next();
43
+ }
44
+ };
45
+ exports.resolveQuery = resolveQuery;
46
+ const resolveData = (settings) => async (context, next) => {
47
+ if (context.method === 'create' || context.method === 'patch' || context.method === 'update') {
48
+ const resolvers = settings instanceof resolver_1.Resolver ? [settings] : [settings[context.method]];
49
+ const ctx = getContext(context);
50
+ const data = context.data;
51
+ const status = {
52
+ originalContext: context
53
+ };
54
+ if (Array.isArray(data)) {
55
+ context.data = await Promise.all(data.map((current) => runResolvers(resolvers, current, ctx, status)));
56
+ }
57
+ else {
58
+ context.data = await runResolvers(resolvers, data, ctx, status);
59
+ }
60
+ }
61
+ if (typeof next === 'function') {
62
+ return next();
63
+ }
64
+ };
65
+ exports.resolveData = resolveData;
66
+ const resolveResult = (...resolvers) => async (context, next) => {
67
+ var _a;
68
+ if (typeof next === 'function') {
69
+ const { $resolve: properties, ...query } = ((_a = context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
70
+ const resolve = {
71
+ originalContext: context,
72
+ ...context.params.resolve,
73
+ properties
74
+ };
75
+ context.params = {
76
+ ...context.params,
77
+ resolve,
78
+ query
79
+ };
80
+ await next();
81
+ }
82
+ const ctx = getContext(context);
83
+ const status = context.params.resolve;
84
+ const { isPaginated, data } = getData(context);
85
+ const result = Array.isArray(data)
86
+ ? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status)))
87
+ : await runResolvers(resolvers, data, ctx, status);
88
+ if (isPaginated) {
89
+ context.result.data = result;
90
+ }
91
+ else {
92
+ context.result = result;
93
+ }
94
+ };
95
+ exports.resolveResult = resolveResult;
96
+ const resolveDispatch = (...resolvers) => async (context, next) => {
97
+ if (typeof next === 'function') {
98
+ await next();
99
+ }
100
+ const ctx = getContext(context);
101
+ const status = context.params.resolve;
102
+ const { isPaginated, data } = getData(context);
103
+ const resolveAndGetDispatch = async (current) => {
104
+ const resolved = await runResolvers(resolvers, current, ctx, status);
105
+ return Object.keys(resolved).reduce((res, key) => {
106
+ res[key] = (0, exports.getDispatch)(current[key]);
107
+ return res;
108
+ }, {});
109
+ };
110
+ const result = await (Array.isArray(data)
111
+ ? Promise.all(data.map(resolveAndGetDispatch))
112
+ : resolveAndGetDispatch(data));
113
+ const dispatch = isPaginated
114
+ ? {
115
+ ...context.result,
116
+ data: result
117
+ }
118
+ : result;
119
+ context.dispatch = dispatch;
120
+ Object.defineProperty(context.result, exports.DISPATCH, {
121
+ value: dispatch,
122
+ enumerable: false,
123
+ configurable: false
124
+ });
125
+ };
126
+ exports.resolveDispatch = resolveDispatch;
127
+ const resolveAll = (map) => {
128
+ const middleware = [];
129
+ middleware.push((0, exports.resolveDispatch)(map.dispatch));
130
+ if (map.result) {
131
+ middleware.push((0, exports.resolveResult)(map.result));
132
+ }
133
+ if (map.query) {
134
+ middleware.push((0, exports.resolveQuery)(map.query));
135
+ }
136
+ if (map.data) {
137
+ middleware.push((0, exports.resolveData)(map.data));
138
+ }
139
+ return (0, hooks_1.compose)(middleware);
140
+ };
141
+ exports.resolveAll = resolveAll;
142
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { HookContext, NextFunction } from '@feathersjs/feathers';
2
+ import { Schema } from '../schema';
3
+ export declare const validateQuery: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(schema: Schema<any>) => (context: H, next?: NextFunction) => Promise<any>;
4
+ export declare const validateData: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(schema: Schema<any>) => (context: H, next?: NextFunction) => Promise<any>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateData = exports.validateQuery = void 0;
4
+ const lib_1 = require("../../../errors/lib");
5
+ const validateQuery = (schema) => async (context, next) => {
6
+ var _a;
7
+ const data = ((_a = context === null || context === void 0 ? void 0 : context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
8
+ try {
9
+ const query = await schema.validate(data);
10
+ context.params = {
11
+ ...context.params,
12
+ query
13
+ };
14
+ if (typeof next === 'function') {
15
+ return next();
16
+ }
17
+ }
18
+ catch (error) {
19
+ throw error.ajv ? new lib_1.BadRequest(error.message, error.errors) : error;
20
+ }
21
+ };
22
+ exports.validateQuery = validateQuery;
23
+ const validateData = (schema) => async (context, next) => {
24
+ const data = context.data;
25
+ try {
26
+ if (Array.isArray(data)) {
27
+ context.data = await Promise.all(data.map((current) => schema.validate(current)));
28
+ }
29
+ else {
30
+ context.data = await schema.validate(data);
31
+ }
32
+ }
33
+ catch (error) {
34
+ throw error.ajv ? new lib_1.BadRequest(error.message, error.errors) : error;
35
+ }
36
+ if (typeof next === 'function') {
37
+ return next();
38
+ }
39
+ };
40
+ exports.validateData = validateData;
41
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/hooks/validate.ts"],"names":[],"mappings":";;;AACA,6CAAgD;AAGzC,MAAM,aAAa,GACxB,CAAwB,MAAmB,EAAE,EAAE,CAC/C,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;;IACxC,MAAM,IAAI,GAAG,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAA;IAEzC,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEzC,OAAO,CAAC,MAAM,GAAG;YACf,GAAG,OAAO,CAAC,MAAM;YACjB,KAAK;SACN,CAAA;QAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC9B,OAAO,IAAI,EAAE,CAAA;SACd;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,gBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;KACtE;AACH,CAAC,CAAA;AAnBU,QAAA,aAAa,iBAmBvB;AAEI,MAAM,YAAY,GACvB,CAAwB,MAAmB,EAAE,EAAE,CAC/C,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAEzB,IAAI;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,CAAC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;SAClF;aAAM;YACL,OAAO,CAAC,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;SAC3C;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,gBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;KACtE;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,IAAI,EAAE,CAAA;KACd;AACH,CAAC,CAAA;AAlBU,QAAA,YAAY,gBAkBtB"}
package/lib/index.d.ts CHANGED
@@ -6,6 +6,9 @@ export * from './query';
6
6
  export declare type Infer<S extends {
7
7
  _type: any;
8
8
  }> = S['_type'];
9
+ export declare type Combine<S extends {
10
+ _type: any;
11
+ }, U> = Pick<Infer<S>, Exclude<keyof Infer<S>, keyof U>> & U;
9
12
  declare module '@feathersjs/feathers/lib/declarations' {
10
13
  interface Params {
11
14
  resolve?: ResolverStatus<any, HookContext>;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,2CAAwB;AACxB,6CAA0B;AAC1B,0CAAuB;AACvB,0CAAuB"}
package/lib/query.d.ts CHANGED
@@ -23,23 +23,23 @@ export declare type PropertyQuery<D extends JSONSchema> = {
23
23
  }
24
24
  ];
25
25
  };
26
- export declare const queryProperty: <T extends import("json-schema-to-ts").JSONSchema7>(definition: T) => {
27
- readonly anyOf: readonly [T, {
26
+ export declare const queryProperty: <T extends import("json-schema-to-ts").JSONSchema7>(def: T) => {
27
+ readonly anyOf: readonly [any, {
28
28
  readonly type: "object";
29
29
  readonly additionalProperties: false;
30
30
  readonly properties: {
31
- readonly $gt: T;
32
- readonly $gte: T;
33
- readonly $lt: T;
34
- readonly $lte: T;
35
- readonly $ne: T;
31
+ readonly $gt: any;
32
+ readonly $gte: any;
33
+ readonly $lt: any;
34
+ readonly $lte: any;
35
+ readonly $ne: any;
36
36
  readonly $in: {
37
37
  readonly type: "array";
38
- readonly items: T;
38
+ readonly items: any;
39
39
  };
40
40
  readonly $nin: {
41
41
  readonly type: "array";
42
- readonly items: T;
42
+ readonly items: any;
43
43
  };
44
44
  };
45
45
  }];
package/lib/query.js CHANGED
@@ -1,34 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.querySyntax = exports.queryProperties = exports.queryProperty = void 0;
4
- const queryProperty = (definition) => ({
5
- anyOf: [
6
- definition,
7
- {
8
- type: 'object',
9
- additionalProperties: false,
10
- properties: {
11
- $gt: definition,
12
- $gte: definition,
13
- $lt: definition,
14
- $lte: definition,
15
- $ne: definition,
16
- $in: {
17
- type: 'array',
18
- items: definition
19
- },
20
- $nin: {
21
- type: 'array',
22
- items: definition
4
+ const commons_1 = require("@feathersjs/commons");
5
+ const queryProperty = (def) => {
6
+ const definition = commons_1._.omit(def, 'default');
7
+ return {
8
+ anyOf: [
9
+ definition,
10
+ {
11
+ type: 'object',
12
+ additionalProperties: false,
13
+ properties: {
14
+ $gt: definition,
15
+ $gte: definition,
16
+ $lt: definition,
17
+ $lte: definition,
18
+ $ne: definition,
19
+ $in: {
20
+ type: 'array',
21
+ items: definition
22
+ },
23
+ $nin: {
24
+ type: 'array',
25
+ items: definition
26
+ }
23
27
  }
24
28
  }
25
- }
26
- ]
27
- });
29
+ ]
30
+ };
31
+ };
28
32
  exports.queryProperty = queryProperty;
29
33
  const queryProperties = (definition) => Object.keys(definition).reduce((res, key) => {
30
- res[key] = (0, exports.queryProperty)(definition[key]);
31
- return res;
34
+ const result = res;
35
+ result[key] = (0, exports.queryProperty)(definition[key]);
36
+ return result;
32
37
  }, {});
33
38
  exports.queryProperties = queryProperties;
34
39
  const querySyntax = (definition) => ({
@@ -43,11 +48,12 @@ const querySyntax = (definition) => ({
43
48
  $sort: {
44
49
  type: 'object',
45
50
  properties: Object.keys(definition).reduce((res, key) => {
46
- res[key] = {
51
+ const result = res;
52
+ result[key] = {
47
53
  type: 'number',
48
54
  enum: [1, -1]
49
55
  };
50
- return res;
56
+ return result;
51
57
  }, {})
52
58
  },
53
59
  $select: {
package/lib/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";;;AA2BO,MAAM,aAAa,GAAG,CAAwB,UAAa,EAAE,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE;QACL,UAAU;QACV;YACE,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,GAAG,EAAE,UAAU;gBACf,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,UAAU;gBACf,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,UAAU;gBACf,GAAG,EAAE;oBACH,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,UAAU;iBAClB;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,UAAU;iBAClB;aACF;SACF;KACF;CACQ,CAAA,CAAC;AAvBC,QAAA,aAAa,iBAuBd;AAEL,MAAM,eAAe,GAAG,CAA2C,UAAa,EAAE,EAAE,CACzF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACzC,GAAW,CAAC,GAAG,CAAC,GAAG,IAAA,qBAAa,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAElD,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,EAA6C,CAAC,CAAA;AALtC,QAAA,eAAe,mBAKuB;AAE5C,MAAM,WAAW,GAAG,CAA2C,UAAa,EAAE,EAAE,CAAC,CAAC;IACvF,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC;KACX;IACD,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC;KACX;IACD,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACrD,GAAW,CAAC,GAAG,CAAC,GAAG;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACd,CAAA;YAED,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAA6E,CAAC;KAClF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAuB;SACpD;KACF;IACD,GAAG,IAAA,uBAAe,EAAC,UAAU,CAAC;CACrB,CAAA,CAAA;AA5BE,QAAA,WAAW,eA4Bb"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";;;AAAA,iDAAuC;AA4BhC,MAAM,aAAa,GAAG,CAAuB,GAAM,EAAE,EAAE;IAC5D,MAAM,UAAU,GAAG,WAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACzC,OAAO;QACL,KAAK,EAAE;YACL,UAAU;YACV;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,UAAU;oBACf,GAAG,EAAE;wBACH,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,UAAU;qBAClB;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,UAAU;qBAClB;iBACF;aACF;SACF;KACO,CAAA;AACZ,CAAC,CAAA;AA1BY,QAAA,aAAa,iBA0BzB;AAEM,MAAM,eAAe,GAAG,CAA0C,UAAa,EAAE,EAAE,CACxF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,GAAU,CAAA;IAEzB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,qBAAa,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAA;AACf,CAAC,EAAE,EAA6C,CAAC,CAAA;AAPtC,QAAA,eAAe,mBAOuB;AAE5C,MAAM,WAAW,GAAG,CAA0C,UAAa,EAAE,EAAE,CACpF,CAAC;IACC,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC;KACX;IACD,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC;KACX;IACD,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACtD,MAAM,MAAM,GAAG,GAAU,CAAA;YAEzB,MAAM,CAAC,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACd,CAAA;YAED,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,EAA6E,CAAC;KAClF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAuB;SACpD;KACF;IACD,GAAG,IAAA,uBAAe,EAAC,UAAU,CAAC;CACrB,CAAA,CAAA;AA/BA,QAAA,WAAW,eA+BX"}
package/lib/resolver.d.ts CHANGED
@@ -3,10 +3,12 @@ export declare type PropertyResolver<T, V, C> = (value: V | undefined, obj: T, c
3
3
  export declare type PropertyResolverMap<T, C> = {
4
4
  [key in keyof T]?: PropertyResolver<T, T[key], C>;
5
5
  };
6
+ export declare type ResolverConverter<T, C> = (obj: any, context: C, status: ResolverStatus<T, C>) => Promise<T | undefined>;
6
7
  export interface ResolverConfig<T, C> {
7
8
  schema?: Schema<T>;
8
9
  validate?: 'before' | 'after' | false;
9
10
  properties: PropertyResolverMap<T, C>;
11
+ converter?: ResolverConverter<T, C>;
10
12
  }
11
13
  export interface ResolverStatus<T, C> {
12
14
  path: string[];
@@ -19,6 +21,7 @@ export declare class Resolver<T, C> {
19
21
  readonly _type: T;
20
22
  constructor(options: ResolverConfig<T, C>);
21
23
  resolveProperty<D, K extends keyof T>(name: K, data: D, context: C, status?: Partial<ResolverStatus<T, C>>): Promise<T[K]>;
24
+ convert<D>(data: D, context: C, status?: Partial<ResolverStatus<T, C>>): Promise<T | D>;
22
25
  resolve<D>(_data: D, context: C, status?: Partial<ResolverStatus<T, C>>): Promise<T>;
23
26
  }
24
27
  export declare function resolve<T, C>(options: ResolverConfig<T, C>): Resolver<T, C>;
package/lib/resolver.js CHANGED
@@ -21,13 +21,21 @@ class Resolver {
21
21
  };
22
22
  return resolver(value, data, context, resolverStatus);
23
23
  }
24
+ async convert(data, context, status) {
25
+ if (this.options.converter) {
26
+ const { path = [], stack = [] } = status || {};
27
+ return this.options.converter(data, context, { ...status, path, stack });
28
+ }
29
+ return data;
30
+ }
24
31
  async resolve(_data, context, status) {
25
32
  const { properties: resolvers, schema, validate } = this.options;
26
- const data = schema && validate === 'before' ? await schema.validate(_data) : _data;
33
+ const payload = await this.convert(_data, context, status);
34
+ const data = schema && validate === 'before' ? await schema.validate(payload) : payload;
27
35
  const propertyList = (Array.isArray(status === null || status === void 0 ? void 0 : status.properties)
28
36
  ? status === null || status === void 0 ? void 0 : status.properties
29
- // By default get all data and resolver keys but remove duplicates
30
- : [...new Set(Object.keys(data).concat(Object.keys(resolvers)))]);
37
+ : // By default get all data and resolver keys but remove duplicates
38
+ [...new Set(Object.keys(data).concat(Object.keys(resolvers)))]);
31
39
  const result = {};
32
40
  const errors = {};
33
41
  let hasErrors = false;
@@ -43,9 +51,7 @@ class Resolver {
43
51
  }
44
52
  catch (error) {
45
53
  // TODO add error stacks
46
- const convertedError = typeof error.toJSON === 'function'
47
- ? error.toJSON()
48
- : { message: error.message || error };
54
+ const convertedError = typeof error.toJSON === 'function' ? error.toJSON() : { message: error.message || error };
49
55
  errors[name] = convertedError;
50
56
  hasErrors = true;
51
57
  }
@@ -56,11 +62,9 @@ class Resolver {
56
62
  }));
57
63
  if (hasErrors) {
58
64
  const propertyName = (status === null || status === void 0 ? void 0 : status.properties) ? ` ${status.properties.join('.')}` : '';
59
- throw new errors_1.BadRequest('Error resolving data' + propertyName, errors);
65
+ throw new errors_1.BadRequest('Error resolving data' + (propertyName ? ` ${propertyName}` : ''), errors);
60
66
  }
61
- return schema && validate === 'after'
62
- ? await schema.validate(result)
63
- : result;
67
+ return schema && validate === 'after' ? await schema.validate(result) : result;
64
68
  }
65
69
  }
66
70
  exports.Resolver = Resolver;
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
package/lib/schema.js CHANGED
@@ -27,7 +27,7 @@ class SchemaWrapper {
27
27
  }
28
28
  async validate(...args) {
29
29
  try {
30
- const validated = await this.validator(...args);
30
+ const validated = (await this.validator(...args));
31
31
  return validated;
32
32
  }
33
33
  catch (error) {
package/lib/schema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAmE;AAQ1D,cARF,aAAG,CAQE;AANZ,+CAAgD;AAEnC,QAAA,WAAW,GAAG,IAAI,aAAG,CAAC;IACjC,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAeH,MAAa,aAAa;IAKxB,YAAoB,UAAa,EAAE,MAAW,mBAAW;QAArC,eAAU,GAAV,UAAU,CAAG;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAChC,MAAM,EAAE,IAAI;YACZ,GAAI,IAAI,CAAC,UAAkB;SAC5B,CAA0B,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,UAA6B,CAAC;IACvD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,QAAyB,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAsB,GAAG,IAAqC;QAC1E,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAM,CAAC;YAErD,OAAO,SAAS,CAAC;SAClB;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,IAAI,mBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;SACnD;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAlCD,sCAkCC;AAED,SAAgB,MAAM,CAAmC,UAAa,EAAE,MAAW,mBAAW;IAC5F,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAFD,wBAEC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAkE;AAQzD,cARF,aAAG,CAQE;AANZ,+CAA+C;AAElC,QAAA,WAAW,GAAG,IAAI,aAAG,CAAC;IACjC,WAAW,EAAE,IAAI;CAClB,CAAC,CAAA;AAeF,MAAa,aAAa;IAKxB,YAAmB,UAAa,EAAE,MAAW,mBAAW;QAArC,eAAU,GAAV,UAAU,CAAG;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAChC,MAAM,EAAE,IAAI;YACZ,GAAI,IAAI,CAAC,UAAkB;SAC5B,CAA0B,CAAA;IAC7B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,UAA6B,CAAA;IACtD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,QAAyB,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAoB,GAAG,IAAqC;QACxE,IAAI;YACF,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAM,CAAA;YAEtD,OAAO,SAAS,CAAA;SACjB;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,IAAI,mBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;SAClD;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;CACF;AAlCD,sCAkCC;AAED,SAAgB,MAAM,CAAiC,UAAa,EAAE,MAAW,mBAAW;IAC1F,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC;AAFD,wBAEC"}
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.20",
4
+ "version": "5.0.0-pre.23",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -53,21 +53,23 @@
53
53
  "access": "public"
54
54
  },
55
55
  "dependencies": {
56
- "@feathersjs/errors": "^5.0.0-pre.20",
57
- "@feathersjs/feathers": "^5.0.0-pre.20",
56
+ "@feathersjs/commons": "^5.0.0-pre.23",
57
+ "@feathersjs/errors": "^5.0.0-pre.23",
58
+ "@feathersjs/feathers": "^5.0.0-pre.23",
59
+ "@feathersjs/hooks": "^0.7.5",
58
60
  "@types/json-schema": "^7.0.11",
59
61
  "ajv": "^8.11.0",
60
62
  "json-schema": "^0.4.0",
61
- "json-schema-to-ts": "^2.3.0"
63
+ "json-schema-to-ts": "^2.5.3"
62
64
  },
63
65
  "devDependencies": {
64
- "@feathersjs/memory": "^5.0.0-pre.20",
66
+ "@feathersjs/memory": "^5.0.0-pre.23",
65
67
  "@types/mocha": "^9.1.1",
66
- "@types/node": "^17.0.31",
68
+ "@types/node": "^17.0.40",
67
69
  "ajv-formats": "^2.1.1",
68
70
  "mocha": "^10.0.0",
69
71
  "shx": "^0.3.4",
70
- "typescript": "^4.6.4"
72
+ "typescript": "^4.7.3"
71
73
  },
72
- "gitHead": "54de749a0b392c7da726c668002b50cafaca530c"
74
+ "gitHead": "a60910bd730b88053ca6648337095f1ca1e3b39f"
73
75
  }
@@ -0,0 +1,2 @@
1
+ export * from './resolve'
2
+ export * from './validate'