@orion-js/resolvers 3.0.0 → 3.0.6

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.
@@ -0,0 +1,9 @@
1
+ export declare const getArgs: (...args: any[]) => {
2
+ parent: any;
3
+ params: any;
4
+ viewer: any;
5
+ } | {
6
+ params: any;
7
+ viewer: any;
8
+ parent?: undefined;
9
+ };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getArgs = void 0;
4
+ const getArgs = function getArgs(...args) {
5
+ if (args.length === 3) {
6
+ return {
7
+ parent: args[0],
8
+ params: args[1] || {},
9
+ viewer: args[2] || {}
10
+ };
11
+ }
12
+ else if (args.length < 3) {
13
+ return {
14
+ params: args[0] || {},
15
+ viewer: args[1] || {}
16
+ };
17
+ }
18
+ else {
19
+ throw new Error('A resolver must be called with 2 parameters only');
20
+ }
21
+ };
22
+ exports.getArgs = getArgs;
@@ -9,6 +9,7 @@ const cleanParams_1 = __importDefault(require("./cleanParams"));
9
9
  const helpers_1 = require("@orion-js/helpers");
10
10
  const cache_1 = require("@orion-js/cache");
11
11
  const cleanReturns_1 = __importDefault(require("./cleanReturns"));
12
+ const getArgs_1 = require("./getArgs");
12
13
  const createResolver = function (options) {
13
14
  options.params = (0, cleanParams_1.default)(options.params);
14
15
  options.returns = (0, cleanReturns_1.default)(options.returns);
@@ -18,11 +19,16 @@ const createResolver = function (options) {
18
19
  if (!options.resolverId) {
19
20
  options.resolverId = (0, helpers_1.generateId)();
20
21
  }
21
- const resolve = options.resolve;
22
+ const execute = (0, getExecute_1.default)(options);
23
+ const resolve = async (...args) => {
24
+ let { parent, params, viewer } = (0, getArgs_1.getArgs)(...args);
25
+ const executeOptions = { parent, params, viewer };
26
+ return await execute(executeOptions);
27
+ };
22
28
  const resolver = {
23
29
  ...options,
24
30
  resolve,
25
- execute: (0, getExecute_1.default)(options)
31
+ execute
26
32
  };
27
33
  return resolver;
28
34
  };
@@ -8,6 +8,7 @@ it('should return a function with a resolver id', () => {
8
8
  async resolve(params, viewer) { }
9
9
  });
10
10
  expect(typeof resolver).toBe('object');
11
+ expect(typeof resolver.resolve).toBe('function');
11
12
  expect(typeof resolver.execute).toBe('function');
12
13
  expect(typeof resolver.resolverId).toBe('string');
13
14
  });
@@ -92,6 +93,9 @@ it('should accept a model as params', async () => {
92
93
  type: 'string'
93
94
  }
94
95
  };
96
+ },
97
+ initItem(item) {
98
+ return item;
95
99
  }
96
100
  };
97
101
  class TypedParams {
@@ -118,6 +122,9 @@ it('should accept a model as returns', async () => {
118
122
  type: 'string'
119
123
  }
120
124
  };
125
+ },
126
+ initItem(item) {
127
+ return item;
121
128
  }
122
129
  };
123
130
  class Returns {
@@ -142,3 +149,17 @@ it('should correctly clean params when no params are passed', async () => {
142
149
  });
143
150
  expect(await resolver.execute({ params: { title: 'test' } })).toBe('test');
144
151
  });
152
+ it('should allow calling resolver.resolve', async () => {
153
+ const resolver = (0, index_1.resolver)({
154
+ resolve: async ({ title }) => {
155
+ return `${title}`;
156
+ }
157
+ });
158
+ const modelResolver = (0, index_1.modelResolver)({
159
+ resolve: async ({ title }) => {
160
+ return `${title}`;
161
+ }
162
+ });
163
+ expect(await resolver.resolve({ title: 'test' })).toBe('test');
164
+ expect(await modelResolver.resolve({ title: 'test' })).toBe('test');
165
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/resolvers",
3
- "version": "3.0.0",
3
+ "version": "3.0.6",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "files": [
@@ -31,5 +31,5 @@
31
31
  "publishConfig": {
32
32
  "access": "public"
33
33
  },
34
- "gitHead": "27bda585ffc16d92c70c958227605f3b61171c64"
34
+ "gitHead": "91b207f9f7afa418177b5aeace2e5f9b0a0ef04d"
35
35
  }