@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,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;
|
package/lib/resolver/index.js
CHANGED
|
@@ -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
|
|
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
|
|
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.
|
|
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": "
|
|
34
|
+
"gitHead": "91b207f9f7afa418177b5aeace2e5f9b0a0ef04d"
|
|
35
35
|
}
|