Skip to content

Commit 0d57c8b

Browse files
authored
Fix generated type name prefix (#37)
* fix generated type name prefix fix nodejs version, broken in 16.17.0 * upgrade to 1.4.1
1 parent 75413b6 commit 0d57c8b

File tree

10 files changed

+36
-10
lines changed

10 files changed

+36
-10
lines changed

.devcontainer/Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.231.3/containers/typescript-node/.devcontainer/base.Dockerfile
22

33
# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 12, 16-bullseye, 14-bullseye, 12-bullseye, 16-buster, 14-buster, 12-buster
4-
ARG VARIANT="16-bullseye"
5-
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT}
4+
# Every allowed variants: https://mcr.microsoft.com/v2/vscode/devcontainers/javascript-node/tags/list
5+
# Doc of each tags: https://github.com/microsoft/vscode-dev-containers/tree/main/containers/typescript-node/history
6+
# Node v16.15.1
7+
ARG VARIANT="0.204.1-16-bullseye"
8+
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:${VARIANT}
69

710
# [Optional] Uncomment this section to install additional OS packages.
811
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \

.github/workflows/ci.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ jobs:
1818
- uses: actions/setup-node@v3
1919
with:
2020
node-version-file: '.nvmrc'
21-
cache: 'yarn'
2221

2322
- name: Check - Yarn dedupe
2423
run: yarn dedupe -c

.github/workflows/release.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ jobs:
2020
- uses: actions/setup-node@v3
2121
with:
2222
node-version-file: '.nvmrc'
23-
cache: 'yarn'
2423

2524
- name: Build
2625
run: yarn build

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v16
1+
v16.15.1

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ts-gql-plugin",
3-
"version": "1.4.0",
3+
"version": "1.4.1",
44
"packageManager": "[email protected]",
55
"license": "MIT",
66
"main": "./dist/index.js",

src/cached/cached-literal-parser.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ import { ErrorCatcher } from '../create-error-catcher';
33
import { generateTypeFromLiteral } from '../generators/generate-type-from-literal';
44
import { DocumentInfos } from '../generators/generate-bottom-content';
55
import { createCacheSystem } from '../utils/cache-system';
6-
import { CachedSchemaLoader, defaultProjectName } from './cached-schema-loader';
6+
import {
7+
CachedSchemaLoader,
8+
defaultProjectName,
9+
getProjectNameIfNotDefault,
10+
} from './cached-schema-loader';
711

812
type CreateCachedLiteralParserOptions = {
913
cachedSchemaLoader: CachedSchemaLoader;
@@ -44,7 +48,7 @@ export const createCachedLiteralParser = ({
4448
throw new Error(`Project not defined for name "${projectName}"`);
4549
}
4650

47-
return project;
51+
return { ...project, projectName };
4852
};
4953

5054
const parser = createCacheSystem<
@@ -60,6 +64,7 @@ export const createCachedLiteralParser = ({
6064
documentInfos: await generateTypeFromLiteral(
6165
literal,
6266
project.schemaDocument,
67+
getProjectNameIfNotDefault(project.projectName),
6368
project.extension.codegenConfig
6469
),
6570
staticGlobals: project.staticGlobals,

src/cached/cached-schema-loader.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ export type CachedSchemaLoader = ReturnType<typeof createCachedSchemaLoader>;
2929

3030
export const defaultProjectName = 'default';
3131

32+
export const getProjectNameIfNotDefault = (projectName: string) =>
33+
projectName === defaultProjectName ? undefined : projectName;
34+
3235
export const createCachedSchemaLoader = ({
3336
cachedGraphQLConfigLoader,
3437
errorCatcher,
@@ -61,7 +64,7 @@ export const createCachedSchemaLoader = ({
6164
schemaDocument,
6265
staticGlobals: await generateTypeFromSchema(
6366
schemaDocument,
64-
projectName === defaultProjectName ? undefined : projectName,
67+
getProjectNameIfNotDefault(projectName),
6568
extension.codegenConfig
6669
),
6770
extension,

src/generators/generate-type-from-literal.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const plugins = [typescriptOperationsPlugin];
99
export const generateTypeFromLiteral = async (
1010
literal: string,
1111
schema: DocumentNode,
12+
projectName?: string,
1213
codegenConfig: typescriptOperationsPlugin.TypeScriptDocumentsPluginConfig = {}
1314
): Promise<DocumentInfos> => {
1415
const document = parse(literal);
@@ -22,6 +23,7 @@ export const generateTypeFromLiteral = async (
2223
);
2324

2425
const config: typescriptOperationsPlugin.TypeScriptDocumentsPluginConfig = {
26+
typesPrefix: projectName,
2527
...codegenConfig,
2628
};
2729

src/source-update/create-source-updater.test.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ describe('Create source updater', () => {
302302
user(id: $id) {
303303
id
304304
name
305+
provider
305306
}
306307
users {
307308
id
@@ -401,7 +402,12 @@ describe('Create source updater', () => {
401402
export interface DocumentMap {
402403
[${query1.slice(4, -1)}]: TypedDocumentNode<{
403404
__typename?: "Query";
404-
user: { __typename?: "User"; id: string; name: string };
405+
user: {
406+
__typename?: "User";
407+
id: string;
408+
name: string;
409+
provider?: CatalogProvider | null;
410+
};
405411
users: Array<{ __typename?: "User"; id: string; email: string }>;
406412
}, Exact<{
407413
id: Scalars["ID"];
@@ -440,6 +446,7 @@ describe('Create source updater', () => {
440446
email: Scalars["String"];
441447
name: Scalars["String"];
442448
picture?: Maybe<Scalars["String"]>;
449+
provider?: Maybe<CatalogProvider>;
443450
};
444451
445452
export interface CatalogQuery {
@@ -452,6 +459,8 @@ describe('Create source updater', () => {
452459
id: Scalars["ID"];
453460
};
454461
462+
export type CatalogProvider = "GOOGLE" | "FACEBOOK";
463+
455464
/** All built-in and custom scalars, mapped to their actual values */
456465
export interface Scalars {
457466
ID: string;

src/test-files/multi-project/catalog-schema.graphql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,15 @@ type User {
44
email: String!
55
name: String!
66
picture: String
7+
provider: Provider
78
}
89

910
type Query {
1011
users: [User!]!
1112
user(id: ID!): User!
1213
}
14+
15+
enum Provider {
16+
GOOGLE
17+
FACEBOOK
18+
}

0 commit comments

Comments
 (0)