type-graphql 2.0.0-rc.2 → 2.0.0-rc.4
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/LICENSE +1 -1
- package/README.md +19 -13
- package/build/cjs/decorators/Arg.js +1 -2
- package/build/cjs/decorators/Args.js +1 -2
- package/build/cjs/decorators/ArgsType.js +1 -2
- package/build/cjs/decorators/Authorized.js +1 -2
- package/build/cjs/decorators/Ctx.js +1 -2
- package/build/cjs/decorators/Directive.js +1 -2
- package/build/cjs/decorators/Extensions.js +1 -2
- package/build/cjs/decorators/Field.js +1 -2
- package/build/cjs/decorators/FieldResolver.js +1 -2
- package/build/cjs/decorators/Info.js +1 -2
- package/build/cjs/decorators/InputType.js +1 -2
- package/build/cjs/decorators/InterfaceType.js +1 -2
- package/build/cjs/decorators/Mutation.js +1 -2
- package/build/cjs/decorators/ObjectType.js +1 -2
- package/build/cjs/decorators/Query.js +1 -2
- package/build/cjs/decorators/Resolver.js +1 -2
- package/build/cjs/decorators/Root.js +1 -2
- package/build/cjs/decorators/Subscription.js +1 -2
- package/build/cjs/decorators/UseMiddleware.js +1 -2
- package/build/cjs/decorators/createMethodMiddlewareDecorator.js +1 -2
- package/build/cjs/decorators/createParameterDecorator.js +1 -2
- package/build/cjs/decorators/createResolverClassMiddlewareDecorator.js +1 -2
- package/build/cjs/decorators/enums.js +1 -2
- package/build/cjs/decorators/unions.js +1 -2
- package/build/cjs/helpers/auth-middleware.js +1 -2
- package/build/cjs/helpers/decorators.js +3 -4
- package/build/cjs/helpers/filesystem.js +2 -3
- package/build/cjs/helpers/findType.js +1 -2
- package/build/cjs/helpers/isThrowing.js +1 -2
- package/build/cjs/helpers/params.js +1 -2
- package/build/cjs/helpers/resolver-metadata.js +1 -2
- package/build/cjs/helpers/types.js +11 -6
- package/build/cjs/metadata/getMetadataStorage.js +1 -2
- package/build/cjs/metadata/metadata-storage.js +192 -28
- package/build/cjs/metadata/utils.js +4 -5
- package/build/cjs/resolvers/convert-args.js +2 -3
- package/build/cjs/resolvers/create.js +4 -5
- package/build/cjs/resolvers/helpers.js +3 -4
- package/build/cjs/resolvers/validate-arg.js +1 -2
- package/build/cjs/schema/definition-node.js +6 -7
- package/build/cjs/schema/schema-generator.js +51 -41
- package/build/cjs/schema/utils.js +2 -3
- package/build/cjs/shim.js +3 -3
- package/build/cjs/utils/buildSchema.js +2 -3
- package/build/cjs/utils/buildTypeDefsAndResolvers.js +2 -3
- package/build/cjs/utils/createResolversMap.js +1 -2
- package/build/cjs/utils/emitSchemaDefinitionFile.js +3 -3
- package/build/cjs/utils/graphql-version.js +3 -3
- package/build/cjs/utils/isPromiseLike.js +1 -2
- package/build/esm/helpers/types.js +7 -1
- package/build/esm/metadata/metadata-storage.js +192 -28
- package/build/esm/schema/schema-generator.js +51 -41
- package/build/esm/utils/graphql-version.js +1 -1
- package/build/typings/metadata/metadata-storage.d.ts +14 -0
- package/build/typings/schema/schema-generator.d.ts +5 -5
- package/build/typings/utils/graphql-version.d.ts +1 -1
- package/package.json +65 -65
|
@@ -10,23 +10,34 @@ class MetadataStorage {
|
|
|
10
10
|
this.subscriptions = [];
|
|
11
11
|
this.fieldResolvers = [];
|
|
12
12
|
this.objectTypes = [];
|
|
13
|
+
this.objectTypesCache = new Map();
|
|
13
14
|
this.inputTypes = [];
|
|
14
15
|
this.argumentTypes = [];
|
|
15
16
|
this.interfaceTypes = [];
|
|
17
|
+
this.interfaceTypesCache = new Map();
|
|
16
18
|
this.authorizedFields = [];
|
|
19
|
+
this.authorizedFieldsByTargetAndFieldCache = new Map();
|
|
17
20
|
this.authorizedResolver = [];
|
|
21
|
+
this.authorizedResolverByTargetCache = new Map();
|
|
18
22
|
this.enums = [];
|
|
19
23
|
this.unions = [];
|
|
20
24
|
this.middlewares = [];
|
|
25
|
+
this.middlewaresByTargetAndFieldCache = new Map();
|
|
21
26
|
this.resolverMiddlewares = [];
|
|
27
|
+
this.resolverMiddlewaresByTargetCache = new Map();
|
|
22
28
|
this.classDirectives = [];
|
|
29
|
+
this.classDirectivesByTargetCache = new Map();
|
|
23
30
|
this.fieldDirectives = [];
|
|
31
|
+
this.fieldDirectivesByTargetAndFieldCache = new Map();
|
|
24
32
|
this.argumentDirectives = [];
|
|
25
33
|
this.classExtensions = [];
|
|
26
34
|
this.fieldExtensions = [];
|
|
27
35
|
this.resolverClasses = [];
|
|
36
|
+
this.resolverClassesCache = new Map();
|
|
28
37
|
this.fields = [];
|
|
38
|
+
this.fieldsCache = new Map();
|
|
29
39
|
this.params = [];
|
|
40
|
+
this.paramsCache = new Map();
|
|
30
41
|
}
|
|
31
42
|
collectQueryHandlerMetadata(definition) {
|
|
32
43
|
this.queries.push(definition);
|
|
@@ -99,12 +110,127 @@ class MetadataStorage {
|
|
|
99
110
|
collectExtensionsFieldMetadata(definition) {
|
|
100
111
|
this.fieldExtensions.push(definition);
|
|
101
112
|
}
|
|
113
|
+
initCache() {
|
|
114
|
+
this.clearMapCaches();
|
|
115
|
+
if (this.resolverClasses?.length) {
|
|
116
|
+
this.resolverClasses.forEach(resolverClass => {
|
|
117
|
+
if (!this.resolverClassesCache.has(resolverClass.target)) {
|
|
118
|
+
this.resolverClassesCache.set(resolverClass.target, resolverClass);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (this.params?.length) {
|
|
123
|
+
this.params.forEach(param => {
|
|
124
|
+
if (!this.paramsCache.has(param.target)) {
|
|
125
|
+
this.paramsCache.set(param.target, new Map());
|
|
126
|
+
}
|
|
127
|
+
if (!this.paramsCache.get(param.target).has(param.methodName)) {
|
|
128
|
+
this.paramsCache.get(param.target).set(param.methodName, []);
|
|
129
|
+
}
|
|
130
|
+
this.paramsCache.get(param.target).get(param.methodName).push(param);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if (this.middlewares?.length) {
|
|
134
|
+
this.middlewares.forEach(middleware => {
|
|
135
|
+
if (!this.middlewaresByTargetAndFieldCache.has(middleware.target)) {
|
|
136
|
+
this.middlewaresByTargetAndFieldCache.set(middleware.target, new Map());
|
|
137
|
+
}
|
|
138
|
+
if (!this.middlewaresByTargetAndFieldCache.get(middleware.target).has(middleware.fieldName)) {
|
|
139
|
+
this.middlewaresByTargetAndFieldCache
|
|
140
|
+
.get(middleware.target)
|
|
141
|
+
.set(middleware.fieldName, new Set());
|
|
142
|
+
}
|
|
143
|
+
if (!this.middlewaresByTargetAndFieldCache
|
|
144
|
+
.get(middleware.target)
|
|
145
|
+
.get(middleware.fieldName)
|
|
146
|
+
.has(middleware)) {
|
|
147
|
+
this.middlewaresByTargetAndFieldCache
|
|
148
|
+
.get(middleware.target)
|
|
149
|
+
.get(middleware.fieldName)
|
|
150
|
+
.add(middleware);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (this.resolverMiddlewares?.length) {
|
|
155
|
+
this.resolverMiddlewares.forEach(middleware => {
|
|
156
|
+
const key = middleware.target;
|
|
157
|
+
if (!this.resolverMiddlewaresByTargetCache.has(key)) {
|
|
158
|
+
this.resolverMiddlewaresByTargetCache.set(key, new Set());
|
|
159
|
+
}
|
|
160
|
+
if (!this.resolverMiddlewaresByTargetCache.get(key).has(middleware)) {
|
|
161
|
+
this.resolverMiddlewaresByTargetCache.get(key).add(middleware);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
if (this.fieldDirectives?.length) {
|
|
166
|
+
this.fieldDirectives.forEach(directive => {
|
|
167
|
+
if (!this.fieldDirectivesByTargetAndFieldCache.has(directive.target)) {
|
|
168
|
+
this.fieldDirectivesByTargetAndFieldCache.set(directive.target, new Map());
|
|
169
|
+
}
|
|
170
|
+
if (!this.fieldDirectivesByTargetAndFieldCache.get(directive.target).has(directive.fieldName)) {
|
|
171
|
+
this.fieldDirectivesByTargetAndFieldCache
|
|
172
|
+
.get(directive.target)
|
|
173
|
+
.set(directive.fieldName, []);
|
|
174
|
+
}
|
|
175
|
+
this.fieldDirectivesByTargetAndFieldCache
|
|
176
|
+
.get(directive.target)
|
|
177
|
+
.get(directive.fieldName)
|
|
178
|
+
.push(directive);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
if (this.classDirectives?.length) {
|
|
182
|
+
this.classDirectives.forEach(directive => {
|
|
183
|
+
const key = directive.target;
|
|
184
|
+
if (!this.classDirectivesByTargetCache.has(key)) {
|
|
185
|
+
this.classDirectivesByTargetCache.set(key, []);
|
|
186
|
+
}
|
|
187
|
+
this.classDirectivesByTargetCache.get(key).push(directive);
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
if (this.authorizedFields?.length) {
|
|
191
|
+
this.authorizedFields.forEach(field => {
|
|
192
|
+
if (!this.authorizedFieldsByTargetAndFieldCache.has(field.target)) {
|
|
193
|
+
this.authorizedFieldsByTargetAndFieldCache.set(field.target, new Map());
|
|
194
|
+
}
|
|
195
|
+
if (!this.authorizedFieldsByTargetAndFieldCache.get(field.target).has(field.fieldName)) {
|
|
196
|
+
this.authorizedFieldsByTargetAndFieldCache.get(field.target).set(field.fieldName, field);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
if (this.authorizedResolver?.length) {
|
|
201
|
+
this.authorizedResolver.forEach(resolver => {
|
|
202
|
+
const key = resolver.target;
|
|
203
|
+
if (!this.authorizedResolverByTargetCache.has(key)) {
|
|
204
|
+
this.authorizedResolverByTargetCache.set(key, resolver);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
if (this.fields?.length) {
|
|
209
|
+
this.fields.forEach(field => {
|
|
210
|
+
if (!this.fieldsCache.has(field.target)) {
|
|
211
|
+
this.fieldsCache.set(field.target, []);
|
|
212
|
+
}
|
|
213
|
+
this.fieldsCache.get(field.target).push(field);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
if (this.objectTypes?.length) {
|
|
217
|
+
this.objectTypes.forEach(objType => {
|
|
218
|
+
this.objectTypesCache.set(objType.target, objType);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
if (this.interfaceTypes?.length) {
|
|
222
|
+
this.interfaceTypes.forEach(interfaceType => {
|
|
223
|
+
this.interfaceTypesCache.set(interfaceType.target, interfaceType);
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
102
227
|
build(options) {
|
|
103
228
|
this.classDirectives.reverse();
|
|
104
229
|
this.fieldDirectives.reverse();
|
|
105
230
|
this.argumentDirectives.reverse();
|
|
106
231
|
this.classExtensions.reverse();
|
|
107
232
|
this.fieldExtensions.reverse();
|
|
233
|
+
this.initCache();
|
|
108
234
|
this.buildClassMetadata(this.objectTypes);
|
|
109
235
|
this.buildClassMetadata(this.inputTypes);
|
|
110
236
|
this.buildClassMetadata(this.argumentTypes);
|
|
@@ -138,29 +264,69 @@ class MetadataStorage {
|
|
|
138
264
|
this.resolverClasses = [];
|
|
139
265
|
this.fields = [];
|
|
140
266
|
this.params = [];
|
|
267
|
+
this.clearMapCaches();
|
|
268
|
+
}
|
|
269
|
+
clone() {
|
|
270
|
+
const cloned = new MetadataStorage();
|
|
271
|
+
cloned.queries = [...this.queries];
|
|
272
|
+
cloned.mutations = [...this.mutations];
|
|
273
|
+
cloned.subscriptions = [...this.subscriptions];
|
|
274
|
+
cloned.fieldResolvers = [...this.fieldResolvers];
|
|
275
|
+
cloned.objectTypes = [...this.objectTypes];
|
|
276
|
+
cloned.inputTypes = [...this.inputTypes];
|
|
277
|
+
cloned.argumentTypes = [...this.argumentTypes];
|
|
278
|
+
cloned.interfaceTypes = [...this.interfaceTypes];
|
|
279
|
+
cloned.authorizedFields = [...this.authorizedFields];
|
|
280
|
+
cloned.authorizedResolver = [...this.authorizedResolver];
|
|
281
|
+
cloned.enums = [...this.enums];
|
|
282
|
+
cloned.unions = [...this.unions];
|
|
283
|
+
cloned.middlewares = [...this.middlewares];
|
|
284
|
+
cloned.resolverMiddlewares = [...this.resolverMiddlewares];
|
|
285
|
+
cloned.classDirectives = [...this.classDirectives];
|
|
286
|
+
cloned.fieldDirectives = [...this.fieldDirectives];
|
|
287
|
+
cloned.argumentDirectives = [...this.argumentDirectives];
|
|
288
|
+
cloned.classExtensions = [...this.classExtensions];
|
|
289
|
+
cloned.fieldExtensions = [...this.fieldExtensions];
|
|
290
|
+
cloned.resolverClasses = [...this.resolverClasses];
|
|
291
|
+
cloned.fields = [...this.fields];
|
|
292
|
+
cloned.params = [...this.params];
|
|
293
|
+
return cloned;
|
|
294
|
+
}
|
|
295
|
+
clearMapCaches() {
|
|
296
|
+
this.fieldsCache = new Map();
|
|
297
|
+
this.objectTypesCache = new Map();
|
|
298
|
+
this.interfaceTypesCache = new Map();
|
|
299
|
+
this.middlewaresByTargetAndFieldCache = new Map();
|
|
300
|
+
this.resolverMiddlewaresByTargetCache = new Map();
|
|
301
|
+
this.paramsCache = new Map();
|
|
302
|
+
this.fieldDirectivesByTargetAndFieldCache = new Map();
|
|
303
|
+
this.classDirectivesByTargetCache = new Map();
|
|
304
|
+
this.authorizedFieldsByTargetAndFieldCache = new Map();
|
|
305
|
+
this.authorizedResolverByTargetCache = new Map();
|
|
306
|
+
this.resolverClassesCache = new Map();
|
|
141
307
|
}
|
|
142
308
|
buildClassMetadata(definitions) {
|
|
143
309
|
definitions.forEach(def => {
|
|
144
310
|
if (!def.fields) {
|
|
145
|
-
const fields = this.
|
|
311
|
+
const fields = this.fieldsCache.get(def.target) || [];
|
|
146
312
|
fields.forEach(field => {
|
|
147
313
|
field.roles = this.findFieldRoles(field.target, field.name);
|
|
148
|
-
field.params = this.
|
|
314
|
+
field.params = this.paramsCache.get(field.target)?.get(field.name) || [];
|
|
149
315
|
field.middlewares = [
|
|
150
|
-
...(0, utils_1.mapMiddlewareMetadataToArray)(
|
|
151
|
-
|
|
316
|
+
...(0, utils_1.mapMiddlewareMetadataToArray)([
|
|
317
|
+
...(this.resolverMiddlewaresByTargetCache.get(field.target) || []),
|
|
318
|
+
]),
|
|
319
|
+
...(0, utils_1.mapMiddlewareMetadataToArray)([
|
|
320
|
+
...(this.middlewaresByTargetAndFieldCache.get(field.target)?.get(field.name) || []),
|
|
321
|
+
]),
|
|
152
322
|
];
|
|
153
|
-
field.directives = this.
|
|
154
|
-
.filter(it => it.target === field.target && it.fieldName === field.name)
|
|
155
|
-
.map(it => it.directive);
|
|
323
|
+
field.directives = (this.fieldDirectivesByTargetAndFieldCache.get(field.target)?.get(field.name) || []).map(it => it.directive);
|
|
156
324
|
field.extensions = this.findExtensions(field.target, field.name);
|
|
157
325
|
});
|
|
158
326
|
def.fields = fields;
|
|
159
327
|
}
|
|
160
328
|
if (!def.directives) {
|
|
161
|
-
def.directives = this.
|
|
162
|
-
.filter(it => it.target === def.target)
|
|
163
|
-
.map(it => it.directive);
|
|
329
|
+
def.directives = (this.classDirectivesByTargetCache.get(def.target) || []).map(it => it.directive);
|
|
164
330
|
}
|
|
165
331
|
if (!def.extensions) {
|
|
166
332
|
def.extensions = this.findExtensions(def.target);
|
|
@@ -169,17 +335,18 @@ class MetadataStorage {
|
|
|
169
335
|
}
|
|
170
336
|
buildResolversMetadata(definitions) {
|
|
171
337
|
definitions.forEach(def => {
|
|
172
|
-
|
|
173
|
-
def.
|
|
174
|
-
def.params = this.params.filter(param => param.target === def.target && def.methodName === param.methodName);
|
|
338
|
+
def.resolverClassMetadata = this.resolverClassesCache.get(def.target);
|
|
339
|
+
def.params = this.paramsCache.get(def.target)?.get(def.methodName) || [];
|
|
175
340
|
def.roles = this.findFieldRoles(def.target, def.methodName);
|
|
176
341
|
def.middlewares = [
|
|
177
|
-
...(0, utils_1.mapMiddlewareMetadataToArray)(
|
|
178
|
-
|
|
342
|
+
...(0, utils_1.mapMiddlewareMetadataToArray)([
|
|
343
|
+
...(this.resolverMiddlewaresByTargetCache.get(def.target) || []),
|
|
344
|
+
]),
|
|
345
|
+
...(0, utils_1.mapMiddlewareMetadataToArray)([
|
|
346
|
+
...(this.middlewaresByTargetAndFieldCache.get(def.target)?.get(def.methodName) || []),
|
|
347
|
+
]),
|
|
179
348
|
];
|
|
180
|
-
def.directives = this.
|
|
181
|
-
.filter(it => it.target === def.target && it.fieldName === def.methodName)
|
|
182
|
-
.map(it => it.directive);
|
|
349
|
+
def.directives = (this.fieldDirectivesByTargetAndFieldCache.get(def.target)?.get(def.methodName) || []).map(it => it.directive);
|
|
183
350
|
def.extensions = this.findExtensions(def.target, def.methodName);
|
|
184
351
|
});
|
|
185
352
|
}
|
|
@@ -187,19 +354,15 @@ class MetadataStorage {
|
|
|
187
354
|
this.buildResolversMetadata(definitions);
|
|
188
355
|
definitions.forEach(def => {
|
|
189
356
|
def.roles = this.findFieldRoles(def.target, def.methodName);
|
|
190
|
-
def.directives = this.
|
|
191
|
-
.filter(it => it.target === def.target && it.fieldName === def.methodName)
|
|
192
|
-
.map(it => it.directive);
|
|
357
|
+
def.directives = (this.fieldDirectivesByTargetAndFieldCache.get(def.target)?.get(def.methodName) || []).map(it => it.directive);
|
|
193
358
|
def.extensions = this.findExtensions(def.target, def.methodName);
|
|
194
359
|
def.getObjectType =
|
|
195
360
|
def.kind === "external"
|
|
196
|
-
? this.
|
|
361
|
+
? this.resolverClassesCache.get(def.target).getObjectType
|
|
197
362
|
: () => def.target;
|
|
198
363
|
if (def.kind === "external") {
|
|
199
|
-
const typeClass = this.
|
|
200
|
-
|
|
201
|
-
const typeMetadata = this.objectTypes.find(objTypeDef => objTypeDef.target === typeClass) ||
|
|
202
|
-
this.interfaceTypes.find(interfaceTypeDef => interfaceTypeDef.target === typeClass);
|
|
364
|
+
const typeClass = this.resolverClassesCache.get(def.target).getObjectType();
|
|
365
|
+
const typeMetadata = this.objectTypesCache.get(typeClass) || this.interfaceTypesCache.get(typeClass);
|
|
203
366
|
if (!typeMetadata) {
|
|
204
367
|
throw new Error(`Unable to find type metadata for input type or object type named '${typeClass.name}'`);
|
|
205
368
|
}
|
|
@@ -250,7 +413,7 @@ class MetadataStorage {
|
|
|
250
413
|
this.resolverClasses.forEach(def => {
|
|
251
414
|
let superResolver = Object.getPrototypeOf(def.target);
|
|
252
415
|
while (superResolver.prototype) {
|
|
253
|
-
const superResolverMetadata = this.
|
|
416
|
+
const superResolverMetadata = this.resolverClassesCache.get(superResolver);
|
|
254
417
|
if (superResolverMetadata) {
|
|
255
418
|
this.queries = (0, utils_1.mapSuperResolverHandlers)(this.queries, superResolver, def);
|
|
256
419
|
this.mutations = (0, utils_1.mapSuperResolverHandlers)(this.mutations, superResolver, def);
|
|
@@ -262,7 +425,8 @@ class MetadataStorage {
|
|
|
262
425
|
});
|
|
263
426
|
}
|
|
264
427
|
findFieldRoles(target, fieldName) {
|
|
265
|
-
const authorizedField = this.
|
|
428
|
+
const authorizedField = this.authorizedFieldsByTargetAndFieldCache.get(target)?.get(fieldName) ||
|
|
429
|
+
this.authorizedResolverByTargetCache.get(target);
|
|
266
430
|
if (!authorizedField) {
|
|
267
431
|
return undefined;
|
|
268
432
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.mapSuperResolverHandlers = mapSuperResolverHandlers;
|
|
4
|
+
exports.mapSuperFieldResolverHandlers = mapSuperFieldResolverHandlers;
|
|
5
|
+
exports.mapMiddlewareMetadataToArray = mapMiddlewareMetadataToArray;
|
|
6
|
+
exports.ensureReflectMetadataExists = ensureReflectMetadataExists;
|
|
4
7
|
const errors_1 = require("../errors");
|
|
5
8
|
const isThrowing_1 = require("../helpers/isThrowing");
|
|
6
9
|
function mapSuperResolverHandlers(definitions, superResolver, resolverMetadata) {
|
|
@@ -12,7 +15,6 @@ function mapSuperResolverHandlers(definitions, superResolver, resolverMetadata)
|
|
|
12
15
|
}
|
|
13
16
|
: metadata);
|
|
14
17
|
}
|
|
15
|
-
exports.mapSuperResolverHandlers = mapSuperResolverHandlers;
|
|
16
18
|
function mapSuperFieldResolverHandlers(definitions, superResolver, resolverMetadata) {
|
|
17
19
|
const superMetadata = mapSuperResolverHandlers(definitions, superResolver, resolverMetadata);
|
|
18
20
|
return superMetadata.map(metadata => metadata.target === superResolver
|
|
@@ -24,16 +26,13 @@ function mapSuperFieldResolverHandlers(definitions, superResolver, resolverMetad
|
|
|
24
26
|
}
|
|
25
27
|
: metadata);
|
|
26
28
|
}
|
|
27
|
-
exports.mapSuperFieldResolverHandlers = mapSuperFieldResolverHandlers;
|
|
28
29
|
function mapMiddlewareMetadataToArray(metadata) {
|
|
29
30
|
return metadata
|
|
30
31
|
.map(m => m.middlewares)
|
|
31
32
|
.reduce((middlewares, resultArray) => resultArray.concat(middlewares), []);
|
|
32
33
|
}
|
|
33
|
-
exports.mapMiddlewareMetadataToArray = mapMiddlewareMetadataToArray;
|
|
34
34
|
function ensureReflectMetadataExists() {
|
|
35
35
|
if (typeof Reflect !== "object" || typeof Reflect.getMetadata !== "function") {
|
|
36
36
|
throw new errors_1.ReflectMetadataMissingError();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
exports.ensureReflectMetadataExists = ensureReflectMetadataExists;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.convertArgsToInstance = convertArgsToInstance;
|
|
4
|
+
exports.convertArgToInstance = convertArgToInstance;
|
|
4
5
|
const types_1 = require("../helpers/types");
|
|
5
6
|
const getMetadataStorage_1 = require("../metadata/getMetadataStorage");
|
|
6
7
|
const generatedTrees = new Map();
|
|
@@ -113,10 +114,8 @@ function convertArgsToInstance(argsMetadata, args) {
|
|
|
113
114
|
}, {});
|
|
114
115
|
return (0, types_1.convertToType)(ArgsClass, transformedFields);
|
|
115
116
|
}
|
|
116
|
-
exports.convertArgsToInstance = convertArgsToInstance;
|
|
117
117
|
function convertArgToInstance(argMetadata, args) {
|
|
118
118
|
const argValue = args[argMetadata.name];
|
|
119
119
|
const argTarget = argMetadata.getType();
|
|
120
120
|
return convertValuesToInstances(argTarget, argValue);
|
|
121
121
|
}
|
|
122
|
-
exports.convertArgToInstance = convertArgToInstance;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createHandlerResolver = createHandlerResolver;
|
|
4
|
+
exports.createAdvancedFieldResolver = createAdvancedFieldResolver;
|
|
5
|
+
exports.createBasicFieldResolver = createBasicFieldResolver;
|
|
6
|
+
exports.wrapResolverWithAuthChecker = wrapResolverWithAuthChecker;
|
|
4
7
|
const auth_middleware_1 = require("../helpers/auth-middleware");
|
|
5
8
|
const types_1 = require("../helpers/types");
|
|
6
9
|
const build_context_1 = require("../schema/build-context");
|
|
@@ -32,7 +35,6 @@ function createHandlerResolver(resolverMetadata) {
|
|
|
32
35
|
});
|
|
33
36
|
};
|
|
34
37
|
}
|
|
35
|
-
exports.createHandlerResolver = createHandlerResolver;
|
|
36
38
|
function createAdvancedFieldResolver(fieldResolverMetadata) {
|
|
37
39
|
if (fieldResolverMetadata.kind === "external") {
|
|
38
40
|
return createHandlerResolver(fieldResolverMetadata);
|
|
@@ -57,7 +59,6 @@ function createAdvancedFieldResolver(fieldResolverMetadata) {
|
|
|
57
59
|
});
|
|
58
60
|
};
|
|
59
61
|
}
|
|
60
|
-
exports.createAdvancedFieldResolver = createAdvancedFieldResolver;
|
|
61
62
|
function createBasicFieldResolver(fieldMetadata) {
|
|
62
63
|
const { authChecker, authMode, globalMiddlewares, container } = build_context_1.BuildContext;
|
|
63
64
|
const middlewares = globalMiddlewares.concat(fieldMetadata.middlewares);
|
|
@@ -67,7 +68,6 @@ function createBasicFieldResolver(fieldMetadata) {
|
|
|
67
68
|
return (0, helpers_1.applyMiddlewares)(container, resolverData, middlewares, () => root[fieldMetadata.name]);
|
|
68
69
|
};
|
|
69
70
|
}
|
|
70
|
-
exports.createBasicFieldResolver = createBasicFieldResolver;
|
|
71
71
|
function wrapResolverWithAuthChecker(resolver, container, roles) {
|
|
72
72
|
const { authChecker, authMode } = build_context_1.BuildContext;
|
|
73
73
|
if (!authChecker || !roles) {
|
|
@@ -78,4 +78,3 @@ function wrapResolverWithAuthChecker(resolver, container, roles) {
|
|
|
78
78
|
return (0, auth_middleware_1.AuthMiddleware)(authChecker, container, authMode, roles)(resolverData, async () => resolver(root, args, context, info));
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
-
exports.wrapResolverWithAuthChecker = wrapResolverWithAuthChecker;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getParams = getParams;
|
|
4
|
+
exports.applyAuthChecker = applyAuthChecker;
|
|
5
|
+
exports.applyMiddlewares = applyMiddlewares;
|
|
4
6
|
const auth_middleware_1 = require("../helpers/auth-middleware");
|
|
5
7
|
const types_1 = require("../helpers/types");
|
|
6
8
|
const isPromiseLike_1 = require("../utils/isPromiseLike");
|
|
@@ -44,13 +46,11 @@ function getParams(params, resolverData, globalValidate, globalValidateFn) {
|
|
|
44
46
|
}
|
|
45
47
|
return paramValues;
|
|
46
48
|
}
|
|
47
|
-
exports.getParams = getParams;
|
|
48
49
|
function applyAuthChecker(middlewares, authChecker, container, authMode, roles) {
|
|
49
50
|
if (authChecker && roles) {
|
|
50
51
|
middlewares.unshift((0, auth_middleware_1.AuthMiddleware)(authChecker, container, authMode, roles));
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
exports.applyAuthChecker = applyAuthChecker;
|
|
54
54
|
function applyMiddlewares(container, resolverData, middlewares, resolverHandlerFunction) {
|
|
55
55
|
if (middlewares.length === 0) {
|
|
56
56
|
return resolverHandlerFunction();
|
|
@@ -84,4 +84,3 @@ function applyMiddlewares(container, resolverData, middlewares, resolverHandlerF
|
|
|
84
84
|
}
|
|
85
85
|
return dispatchHandler(0);
|
|
86
86
|
}
|
|
87
|
-
exports.applyMiddlewares = applyMiddlewares;
|
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.validateArg =
|
|
26
|
+
exports.validateArg = validateArg;
|
|
27
27
|
const errors_1 = require("../errors");
|
|
28
28
|
const shouldArgBeValidated = (argValue) => argValue !== null && typeof argValue === "object";
|
|
29
29
|
async function validateArg(argValue, argType, resolverData, globalValidateSettings, argValidateSettings, globalValidateFn, argValidateFn) {
|
|
@@ -62,4 +62,3 @@ async function validateArg(argValue, argType, resolverData, globalValidateSettin
|
|
|
62
62
|
throw new errors_1.ArgumentValidationError(err);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
exports.validateArg = validateArg;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getDirectiveNode = getDirectiveNode;
|
|
4
|
+
exports.getObjectTypeDefinitionNode = getObjectTypeDefinitionNode;
|
|
5
|
+
exports.getInputObjectTypeDefinitionNode = getInputObjectTypeDefinitionNode;
|
|
6
|
+
exports.getFieldDefinitionNode = getFieldDefinitionNode;
|
|
7
|
+
exports.getInputValueDefinitionNode = getInputValueDefinitionNode;
|
|
8
|
+
exports.getInterfaceTypeDefinitionNode = getInterfaceTypeDefinitionNode;
|
|
4
9
|
const graphql_1 = require("graphql");
|
|
5
10
|
const errors_1 = require("../errors");
|
|
6
11
|
function getDirectiveNode(directive) {
|
|
@@ -43,7 +48,6 @@ function getDirectiveNode(directive) {
|
|
|
43
48
|
}
|
|
44
49
|
return directives[0];
|
|
45
50
|
}
|
|
46
|
-
exports.getDirectiveNode = getDirectiveNode;
|
|
47
51
|
function getObjectTypeDefinitionNode(name, directiveMetadata) {
|
|
48
52
|
if (!directiveMetadata || !directiveMetadata.length) {
|
|
49
53
|
return undefined;
|
|
@@ -57,7 +61,6 @@ function getObjectTypeDefinitionNode(name, directiveMetadata) {
|
|
|
57
61
|
directives: directiveMetadata.map(getDirectiveNode),
|
|
58
62
|
};
|
|
59
63
|
}
|
|
60
|
-
exports.getObjectTypeDefinitionNode = getObjectTypeDefinitionNode;
|
|
61
64
|
function getInputObjectTypeDefinitionNode(name, directiveMetadata) {
|
|
62
65
|
if (!directiveMetadata || !directiveMetadata.length) {
|
|
63
66
|
return undefined;
|
|
@@ -71,7 +74,6 @@ function getInputObjectTypeDefinitionNode(name, directiveMetadata) {
|
|
|
71
74
|
directives: directiveMetadata.map(getDirectiveNode),
|
|
72
75
|
};
|
|
73
76
|
}
|
|
74
|
-
exports.getInputObjectTypeDefinitionNode = getInputObjectTypeDefinitionNode;
|
|
75
77
|
function getFieldDefinitionNode(name, type, directiveMetadata) {
|
|
76
78
|
if (!directiveMetadata || !directiveMetadata.length) {
|
|
77
79
|
return undefined;
|
|
@@ -92,7 +94,6 @@ function getFieldDefinitionNode(name, type, directiveMetadata) {
|
|
|
92
94
|
directives: directiveMetadata.map(getDirectiveNode),
|
|
93
95
|
};
|
|
94
96
|
}
|
|
95
|
-
exports.getFieldDefinitionNode = getFieldDefinitionNode;
|
|
96
97
|
function getInputValueDefinitionNode(name, type, directiveMetadata) {
|
|
97
98
|
if (!directiveMetadata || !directiveMetadata.length) {
|
|
98
99
|
return undefined;
|
|
@@ -113,7 +114,6 @@ function getInputValueDefinitionNode(name, type, directiveMetadata) {
|
|
|
113
114
|
directives: directiveMetadata.map(getDirectiveNode),
|
|
114
115
|
};
|
|
115
116
|
}
|
|
116
|
-
exports.getInputValueDefinitionNode = getInputValueDefinitionNode;
|
|
117
117
|
function getInterfaceTypeDefinitionNode(name, directiveMetadata) {
|
|
118
118
|
if (!directiveMetadata || !directiveMetadata.length) {
|
|
119
119
|
return undefined;
|
|
@@ -127,4 +127,3 @@ function getInterfaceTypeDefinitionNode(name, directiveMetadata) {
|
|
|
127
127
|
directives: directiveMetadata.map(getDirectiveNode),
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
|
-
exports.getInterfaceTypeDefinitionNode = getInterfaceTypeDefinitionNode;
|