@coderich/autograph 0.13.24 → 0.13.25
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/package.json +1 -1
- package/src/data/Pipeline.js +3 -11
- package/src/data/Resolver.js +10 -1
package/package.json
CHANGED
package/src/data/Pipeline.js
CHANGED
|
@@ -19,16 +19,8 @@ module.exports = class Pipeline {
|
|
|
19
19
|
const wrapper = Object.defineProperty((args) => {
|
|
20
20
|
try {
|
|
21
21
|
if (ignoreNull && args.value == null) return args.value;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return Util.map(args.value, (value) => {
|
|
25
|
-
const v = factory({ ...args, value });
|
|
26
|
-
return v === undefined ? value : v;
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const value = factory(args);
|
|
31
|
-
return value === undefined ? args.value : value;
|
|
22
|
+
if (ignoreNull && itemize) return Util.map(args.value, value => Util.uvl(factory({ ...args, value }), value));
|
|
23
|
+
return Util.uvl(factory(args), args.value);
|
|
32
24
|
} catch (e) {
|
|
33
25
|
const { data = {} } = e;
|
|
34
26
|
throw Boom.boomify(e, { data: { ...args, ...data } });
|
|
@@ -168,7 +160,7 @@ module.exports = class Pipeline {
|
|
|
168
160
|
static resolve(params, pipeline) {
|
|
169
161
|
const transformers = params.field.pipelines[pipeline] || [];
|
|
170
162
|
|
|
171
|
-
return Util.pipeline(transformers.map(t =>
|
|
163
|
+
return Util.pipeline(transformers.map(t => (value) => {
|
|
172
164
|
return Pipeline[t]({ ...params, value });
|
|
173
165
|
}), params.value);
|
|
174
166
|
}
|
package/src/data/Resolver.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const { graphql } = require('graphql');
|
|
2
2
|
const Boom = require('@hapi/boom');
|
|
3
3
|
const Util = require('@coderich/util');
|
|
4
|
+
const Pipeline = require('./Pipeline');
|
|
4
5
|
const Emitter = require('./Emitter');
|
|
5
6
|
const Loader = require('./Loader');
|
|
6
7
|
const DataLoader = require('./DataLoader');
|
|
@@ -220,7 +221,15 @@ module.exports = class Resolver {
|
|
|
220
221
|
if (result == null) return result;
|
|
221
222
|
if (typeof result !== 'object') return result;
|
|
222
223
|
return Object.defineProperties(Util.map(result, (doc) => {
|
|
223
|
-
|
|
224
|
+
// Transform result to domain model
|
|
225
|
+
const $doc = this.#schema.models[model].walk(doc, (node) => {
|
|
226
|
+
if (node.value === undefined) return undefined;
|
|
227
|
+
node.key = node.field.name;
|
|
228
|
+
node.value = Pipeline.$cast(node);
|
|
229
|
+
return node;
|
|
230
|
+
}, { key: 'key' });
|
|
231
|
+
|
|
232
|
+
// Assign useful/needed meta data
|
|
224
233
|
return Object.defineProperties($doc, {
|
|
225
234
|
$: {
|
|
226
235
|
get: () => {
|