Skip to content

Commit 6552e13

Browse files
committed
Merge remote-tracking branch 'origin/master' into improve-compilation-time
2 parents 2866e66 + dac7292 commit 6552e13

File tree

11 files changed

+179
-173
lines changed

11 files changed

+179
-173
lines changed

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"packages": [
33
"packages/*"
44
],
5-
"version": "10.0.6",
5+
"version": "10.0.8",
66
"npmClient": "yarn",
77
"useWorkspaces": true,
88
"changelog": {

package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@
2626
"graphql": "15.8.0"
2727
},
2828
"devDependencies": {
29-
"@commitlint/cli": "16.2.1",
30-
"@commitlint/config-angular": "16.2.1",
29+
"@commitlint/cli": "16.2.3",
30+
"@commitlint/config-angular": "16.2.3",
3131
"@types/graphql": "14.5.0",
3232
"@types/jest": "27.4.1",
3333
"@types/node": "17.0.0",
3434
"@types/node-fetch": "3.0.3",
3535
"@types/normalize-path": "3.0.0",
3636
"@types/ws": "8.5.3",
37-
"@typescript-eslint/eslint-plugin": "5.14.0",
38-
"@typescript-eslint/parser": "5.14.0",
37+
"@typescript-eslint/eslint-plugin": "5.16.0",
38+
"@typescript-eslint/parser": "5.16.0",
3939
"class-transformer": "0.5.1",
4040
"class-validator": "0.13.2",
4141
"eslint": "8.11.0",
@@ -48,10 +48,10 @@
4848
"jest": "27.5.1",
4949
"lerna": "4.0.0",
5050
"lerna-changelog": "2.2.0",
51-
"lint-staged": "12.3.5",
52-
"prettier": "2.5.1",
51+
"lint-staged": "12.3.7",
52+
"prettier": "2.6.0",
5353
"reflect-metadata": "0.1.13",
54-
"release-it": "14.12.5",
54+
"release-it": "14.13.1",
5555
"rimraf": "3.0.2",
5656
"rxjs": "7.5.5",
5757
"supertest": "6.2.2",

packages/apollo/package.json

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nestjs/apollo",
3-
"version": "10.0.6",
3+
"version": "10.0.8",
44
"description": "Nest - modern, fast, powerful node.js web framework (@apollo)",
55
"author": "Kamil Mysliwiec",
66
"license": "MIT",
@@ -23,11 +23,11 @@
2323
},
2424
"devDependencies": {
2525
"@apollo/gateway": "0.48.3",
26-
"@nestjs/common": "8.4.0",
27-
"@nestjs/core": "8.4.0",
28-
"@nestjs/platform-express": "8.4.0",
29-
"@nestjs/platform-fastify": "8.4.0",
30-
"@nestjs/testing": "8.4.0",
26+
"@nestjs/common": "8.4.2",
27+
"@nestjs/core": "8.4.2",
28+
"@nestjs/platform-express": "8.4.2",
29+
"@nestjs/platform-fastify": "8.4.2",
30+
"@nestjs/testing": "8.4.2",
3131
"apollo-cache-inmemory": "1.6.6",
3232
"apollo-client": "2.6.10",
3333
"apollo-link-ws": "1.0.20",
@@ -37,7 +37,8 @@
3737
},
3838
"dependencies": {
3939
"iterall": "1.3.0",
40-
"lodash.omit": "4.5.0"
40+
"lodash.omit": "4.5.0",
41+
"tslib": "2.3.1"
4142
},
4243
"peerDependencies": {
4344
"@apollo/gateway": "^0.44.1 || ^0.46.0 || ^0.48.0",

packages/apollo/tests/generated-definitions/array-property.fixture.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ export interface Foo {
1313
b?: Nullable<string[]>;
1414
c: Nullable<string>[];
1515
d?: Nullable<Nullable<string>[]>;
16+
e: string[][];
17+
f: string[][][];
18+
g?: Nullable<Nullable<Nullable<Nullable<string>[]>[]>[]>;
1619
}
1720

1821
type Nullable<T> = T | null;

packages/apollo/tests/generated-definitions/array-property.graphql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ type Foo {
33
b: [String!]
44
c: [String]!
55
d: [String]
6+
e: [[String!]!]!
7+
f: [[[String!]!]!]!
8+
g: [[[String]]]
69
}

packages/graphql/lib/graphql-ast.explorer.ts

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -354,42 +354,37 @@ export class GraphQLAstExplorer {
354354
name: string;
355355
required: boolean;
356356
} {
357-
const { required, type } = this.getNestedType(typeNode);
358-
359-
const isArray = type.kind === 'ListType';
360-
if (isArray) {
361-
const { type: arrayType, required: arrayTypeRequired } =
362-
this.getNestedType(get(type, 'type'));
363-
364-
const typeName = this.addSymbolIfRoot(get(arrayType, 'name.value'));
365-
const name = arrayTypeRequired
357+
const stringifyType = (typeNode: TypeNode) => {
358+
const { type, required } = this.unwrapTypeIfNonNull(typeNode);
359+
const isArray = type.kind === 'ListType';
360+
361+
if (isArray) {
362+
const arrayType = get(type, 'type');
363+
return required
364+
? `${stringifyType(arrayType)}[]`
365+
: `Nullable<${stringifyType(arrayType)}[]>`;
366+
}
367+
const typeName = this.addSymbolIfRoot(get(type, 'name.value'));
368+
return required
366369
? this.getType(typeName, options)
367370
: `Nullable<${this.getType(typeName, options)}>`;
371+
};
368372

369-
return {
370-
name: required ? name + '[]' : `Nullable<${name}[]>`,
371-
required,
372-
};
373-
}
374-
375-
const typeName = this.addSymbolIfRoot(get(type, 'name.value'));
376-
373+
const { required } = this.unwrapTypeIfNonNull(typeNode);
377374
return {
378-
name: required
379-
? this.getType(typeName, options)
380-
: `Nullable<${this.getType(typeName, options)}>`,
375+
name: stringifyType(typeNode),
381376
required,
382377
};
383378
}
384379

385-
getNestedType(type: TypeNode): {
380+
unwrapTypeIfNonNull(type: TypeNode): {
386381
type: TypeNode;
387382
required: boolean;
388383
} {
389384
const isNonNullType = type.kind === 'NonNullType';
390385
if (isNonNullType) {
391386
return {
392-
type: this.getNestedType(get(type, 'type')).type,
387+
type: this.unwrapTypeIfNonNull(get(type, 'type')).type,
393388
required: isNonNullType,
394389
};
395390
}

packages/graphql/lib/schema-builder/factories/resolve-type.factory.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,20 @@ export class ResolveTypeFactory {
1313
public getResolveTypeFunction<TSource = any, TContext = any>(
1414
resolveType: ResolveTypeFn<TSource, TContext>,
1515
): GraphQLTypeResolver<TSource, TContext> {
16-
return async (...args) => {
17-
const resolvedType = await resolveType(...args);
18-
if (isString(resolvedType)) {
19-
return resolvedType;
20-
}
21-
const typeDef =
22-
this.typeDefinitionsStorage.getObjectTypeByTarget(resolvedType);
23-
return typeDef?.type?.name;
16+
return (...args) => {
17+
const typeToString = (resolvedType: Function | string) => {
18+
if (isString(resolvedType)) {
19+
return resolvedType;
20+
}
21+
const typeDef =
22+
this.typeDefinitionsStorage.getObjectTypeByTarget(resolvedType);
23+
return typeDef?.type?.name;
24+
};
25+
26+
const resolvedTypeOrPromise = resolveType(...args);
27+
return resolvedTypeOrPromise && resolvedTypeOrPromise instanceof Promise
28+
? resolvedTypeOrPromise.then(typeToString)
29+
: typeToString(resolvedTypeOrPromise);
2430
};
2531
}
2632
}

packages/graphql/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nestjs/graphql",
3-
"version": "10.0.6",
3+
"version": "10.0.8",
44
"description": "Nest - modern, fast, powerful node.js web framework (@graphql)",
55
"author": "Kamil Mysliwiec",
66
"license": "MIT",
@@ -35,9 +35,9 @@
3535
},
3636
"devDependencies": {
3737
"@apollo/subgraph": "0.3.3",
38-
"@nestjs/common": "8.4.0",
39-
"@nestjs/core": "8.4.0",
40-
"@nestjs/testing": "8.4.0",
38+
"@nestjs/common": "8.4.2",
39+
"@nestjs/core": "8.4.2",
40+
"@nestjs/testing": "8.4.2",
4141
"graphql": "15.8.0",
4242
"reflect-metadata": "0.1.13",
4343
"ts-morph": "12.0.0"

packages/graphql/plugin.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
'use strict';
22
Object.defineProperty(exports, '__esModule', { value: true });
33
const tslib_1 = require('tslib');
4-
(0, tslib_1.__exportStar)(require('./dist/plugin'), exports);
4+
const plugin = require('./dist/plugin');
5+
(0, tslib_1.__exportStar)(plugin, exports);
6+
7+
/** Compatibility with ts-patch/ttypescript */
8+
exports.default = (program, options) => plugin.before(options, program);

packages/mercurius/package.json

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nestjs/mercurius",
3-
"version": "10.0.6",
3+
"version": "10.0.8",
44
"description": "Nest - modern, fast, powerful node.js web framework (@graphql)",
55
"author": "Kamil Mysliwiec",
66
"license": "MIT",
@@ -23,10 +23,13 @@
2323
"bugs": {
2424
"url": "https://github.com/nestjs/graphql/issues"
2525
},
26+
"dependencies": {
27+
"tslib": "2.3.1"
28+
},
2629
"devDependencies": {
27-
"@nestjs/common": "8.4.0",
28-
"@nestjs/platform-fastify": "8.4.0",
29-
"@nestjs/testing": "8.4.0",
30+
"@nestjs/common": "8.4.2",
31+
"@nestjs/platform-fastify": "8.4.2",
32+
"@nestjs/testing": "8.4.2",
3033
"fastify": "3.27.4",
3134
"mercurius": "8.12.1",
3235
"mercurius-integration-testing": "4.0.0"

0 commit comments

Comments
 (0)