@graphitation/graphql-codegen-supermassive-typed-document-node-plugin 0.7.1 → 1.0.0
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/.eslintcache +1 -1
- package/CHANGELOG.md +18 -2
- package/NOTICE +27 -0
- package/lib/utils/block-string.d.ts +14 -0
- package/lib/utils/block-string.d.ts.map +1 -0
- package/lib/utils/block-string.js +48 -0
- package/lib/utils/block-string.js.map +7 -0
- package/lib/utils/block-string.mjs +29 -0
- package/lib/utils/block-string.mjs.map +7 -0
- package/lib/utils/print-string.d.ts +9 -0
- package/lib/utils/print-string.d.ts.map +1 -0
- package/lib/utils/print-string.js +197 -0
- package/lib/utils/print-string.js.map +7 -0
- package/lib/utils/print-string.mjs +178 -0
- package/lib/utils/print-string.mjs.map +7 -0
- package/lib/utils/print.d.ts +9 -0
- package/lib/utils/print.d.ts.map +1 -0
- package/lib/utils/print.js +228 -0
- package/lib/utils/print.js.map +7 -0
- package/lib/utils/print.mjs +209 -0
- package/lib/utils/print.mjs.map +7 -0
- package/lib/utils/types.d.ts +53 -0
- package/lib/utils/types.d.ts.map +1 -0
- package/lib/utils/types.js +16 -0
- package/lib/utils/types.js.map +7 -0
- package/lib/utils/types.mjs +0 -0
- package/lib/utils/types.mjs.map +7 -0
- package/lib/visitor.d.ts +11 -7
- package/lib/visitor.d.ts.map +1 -1
- package/lib/visitor.js +57 -26
- package/lib/visitor.js.map +2 -2
- package/lib/visitor.mjs +60 -32
- package/lib/visitor.mjs.map +2 -2
- package/package.json +3 -2
package/lib/visitor.d.ts
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import { Types } from "@graphql-codegen/plugin-helpers";
|
|
2
2
|
import { LoadedFragment, ClientSideBaseVisitor, ClientSideBasePluginConfig, RawClientSideBasePluginConfig } from "@graphql-codegen/visitor-plugin-common";
|
|
3
3
|
import { GraphQLSchema, FragmentDefinitionNode, OperationDefinitionNode } from "graphql";
|
|
4
|
-
export type
|
|
4
|
+
export type SupermassiveAstType = "SupermassiveV3" | "Lazy" | "Standard";
|
|
5
|
+
export type RuntimeParseImport = {
|
|
6
|
+
moduleName: string;
|
|
7
|
+
propName: string;
|
|
8
|
+
};
|
|
5
9
|
type RawClientSidePluginConfig = RawClientSideBasePluginConfig & {
|
|
6
|
-
|
|
7
|
-
|
|
10
|
+
runtimeParseImport?: RuntimeParseImport;
|
|
11
|
+
astType?: SupermassiveAstType;
|
|
8
12
|
};
|
|
9
13
|
type ClientSidePluginConfig = ClientSideBasePluginConfig & {
|
|
10
|
-
|
|
11
|
-
supermassiveDocumentNodeOutputType?: SupermassiveOutputType;
|
|
14
|
+
astType?: SupermassiveAstType;
|
|
12
15
|
};
|
|
13
16
|
export declare class TypeScriptDocumentNodesVisitor extends ClientSideBaseVisitor<RawClientSidePluginConfig, ClientSidePluginConfig> {
|
|
14
17
|
constructor(schema: GraphQLSchema, fragments: LoadedFragment[], rawConfig: RawClientSidePluginConfig, documents: Types.DocumentFile[]);
|
|
18
|
+
protected getDocumentNodeSignature(resultType: string, variablesTypes: string, node: FragmentDefinitionNode | OperationDefinitionNode): string;
|
|
15
19
|
protected _gql(node: FragmentDefinitionNode | OperationDefinitionNode): string;
|
|
16
|
-
|
|
20
|
+
private _renderLazy;
|
|
21
|
+
private _render;
|
|
17
22
|
private _transformDocumentNodeToSupermassive;
|
|
18
|
-
protected getDocumentNodeSignature(resultType: string, variablesTypes: string, node: FragmentDefinitionNode | OperationDefinitionNode): string;
|
|
19
23
|
private addTypesToRequestDocument;
|
|
20
24
|
}
|
|
21
25
|
export {};
|
package/lib/visitor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAE1B,6BAA6B,EAC9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,aAAa,EACb,sBAAsB,
|
|
1
|
+
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAE1B,6BAA6B,EAC9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,aAAa,EACb,sBAAsB,EAGtB,uBAAuB,EAExB,MAAM,SAAS,CAAC;AAMjB,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC;AACzE,MAAM,MAAM,kBAAkB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,KAAK,yBAAyB,GAAG,6BAA6B,GAAG;IAC/D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AACF,KAAK,sBAAsB,GAAG,0BAA0B,GAAG;IACzD,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF,qBAAa,8BAA+B,SAAQ,qBAAqB,CACvE,yBAAyB,EACzB,sBAAsB,CACvB;gBAEG,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,cAAc,EAAE,EAC3B,SAAS,EAAE,yBAAyB,EACpC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE;IAiDjC,SAAS,CAAC,wBAAwB,CAChC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,sBAAsB,GAAG,uBAAuB;IAaxD,SAAS,CAAC,IAAI,CACZ,IAAI,EAAE,sBAAsB,GAAG,uBAAuB,GACrD,MAAM;IAcT,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,OAAO;IAkEf,OAAO,CAAC,oCAAoC;IAa5C,OAAO,CAAC,yBAAyB;CAgBlC"}
|
package/lib/visitor.js
CHANGED
|
@@ -54,8 +54,10 @@ var import_graphql = require("graphql");
|
|
|
54
54
|
var import_supermassive = require("@graphitation/supermassive");
|
|
55
55
|
var import_optimize = require("@graphql-tools/optimize");
|
|
56
56
|
var import_graphql_tag = __toESM(require("graphql-tag"));
|
|
57
|
+
var import_print = require("./utils/print");
|
|
57
58
|
class TypeScriptDocumentNodesVisitor extends import_visitor_plugin_common.ClientSideBaseVisitor {
|
|
58
59
|
constructor(schema, fragments, rawConfig, documents) {
|
|
60
|
+
var _a;
|
|
59
61
|
super(
|
|
60
62
|
schema,
|
|
61
63
|
fragments,
|
|
@@ -64,8 +66,7 @@ class TypeScriptDocumentNodesVisitor extends import_visitor_plugin_common.Client
|
|
|
64
66
|
documentNodeImport: "@graphql-typed-document-node/core#TypedDocumentNode"
|
|
65
67
|
}, rawConfig),
|
|
66
68
|
{
|
|
67
|
-
|
|
68
|
-
supermassiveDocumentNodeOutputType: rawConfig.supermassiveDocumentNodeOutputType || "V3"
|
|
69
|
+
astType: (_a = rawConfig.astType) != null ? _a : "SupermassiveV3"
|
|
69
70
|
},
|
|
70
71
|
documents
|
|
71
72
|
);
|
|
@@ -81,19 +82,57 @@ class TypeScriptDocumentNodesVisitor extends import_visitor_plugin_common.Client
|
|
|
81
82
|
);
|
|
82
83
|
this._imports.add(tagImport);
|
|
83
84
|
}
|
|
85
|
+
if (this.config.astType === "Lazy") {
|
|
86
|
+
const { runtimeParseImport } = rawConfig;
|
|
87
|
+
if (!validateRuntimeParseImport(runtimeParseImport)) {
|
|
88
|
+
throw new Error(
|
|
89
|
+
`graphql-codegen-supermassive-typed-document-node-plugin: astType="Lazy" requires valid runtimeParseImport in the config`
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
const tagImport = this._generateImport(
|
|
93
|
+
runtimeParseImport,
|
|
94
|
+
"runtimeParse",
|
|
95
|
+
false
|
|
96
|
+
);
|
|
97
|
+
this._imports.add(tagImport);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
getDocumentNodeSignature(resultType, variablesTypes, node) {
|
|
101
|
+
if (this.config.documentMode === import_visitor_plugin_common.DocumentMode.documentNode || this.config.documentMode === import_visitor_plugin_common.DocumentMode.documentNodeImportFragments || this.config.documentMode === import_visitor_plugin_common.DocumentMode.graphQLTag) {
|
|
102
|
+
return ` as unknown as DocumentNode<${resultType}, ${variablesTypes}>`;
|
|
103
|
+
}
|
|
104
|
+
return super.getDocumentNodeSignature(resultType, variablesTypes, node);
|
|
84
105
|
}
|
|
85
106
|
_gql(node) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
:
|
|
107
|
+
switch (this.config.astType) {
|
|
108
|
+
case "Lazy":
|
|
109
|
+
return this._renderLazy(node);
|
|
110
|
+
case "SupermassiveV3":
|
|
111
|
+
return this._render(node, true);
|
|
112
|
+
case "Standard":
|
|
113
|
+
default:
|
|
114
|
+
return this._render(node, false);
|
|
92
115
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
116
|
+
}
|
|
117
|
+
_renderLazy(node) {
|
|
118
|
+
const fragments = this._transformFragments(node);
|
|
119
|
+
const doc = this._prepareDocument(`
|
|
120
|
+
${(0, import_print.print)(node)}
|
|
121
|
+
${this._includeFragments(fragments)}
|
|
122
|
+
`);
|
|
123
|
+
const gqlObj = (0, import_graphql.parse)(doc, { noLocation: true });
|
|
124
|
+
return `
|
|
125
|
+
{
|
|
126
|
+
kind: "Document",
|
|
127
|
+
get definitions() {
|
|
128
|
+
const document = runtimeParse('${(0, import_print.print)(gqlObj)}');
|
|
129
|
+
delete this.definitions;
|
|
130
|
+
return (this.definitions = ${!fragments.length ? "document.definitions" : `[${[
|
|
131
|
+
"...document.definitions",
|
|
132
|
+
...fragments.map((name) => `...${name}.definitions`)
|
|
133
|
+
].join(",")}]`});
|
|
134
|
+
}
|
|
135
|
+
}`;
|
|
97
136
|
}
|
|
98
137
|
_render(node, annotate = false) {
|
|
99
138
|
const supermassiveNode = this.addTypesToRequestDocument(this._schema, {
|
|
@@ -102,7 +141,7 @@ class TypeScriptDocumentNodesVisitor extends import_visitor_plugin_common.Client
|
|
|
102
141
|
}).definitions[0];
|
|
103
142
|
const fragments = this._transformFragments(supermassiveNode);
|
|
104
143
|
const doc = this._prepareDocument(`
|
|
105
|
-
${(0,
|
|
144
|
+
${(0, import_print.print)(supermassiveNode)}
|
|
106
145
|
${this._includeFragments(fragments)}`);
|
|
107
146
|
if (this.config.documentMode === import_visitor_plugin_common.DocumentMode.documentNode) {
|
|
108
147
|
let gqlObj = (0, import_graphql_tag.default)([doc]);
|
|
@@ -152,15 +191,9 @@ class TypeScriptDocumentNodesVisitor extends import_visitor_plugin_common.Client
|
|
|
152
191
|
)
|
|
153
192
|
});
|
|
154
193
|
}
|
|
155
|
-
getDocumentNodeSignature(resultType, variablesTypes, node) {
|
|
156
|
-
if (this.config.documentMode === import_visitor_plugin_common.DocumentMode.documentNode || this.config.documentMode === import_visitor_plugin_common.DocumentMode.documentNodeImportFragments || this.config.documentMode === import_visitor_plugin_common.DocumentMode.graphQLTag) {
|
|
157
|
-
return ` as unknown as DocumentNode<${resultType}, ${variablesTypes}>`;
|
|
158
|
-
}
|
|
159
|
-
return super.getDocumentNodeSignature(resultType, variablesTypes, node);
|
|
160
|
-
}
|
|
161
194
|
addTypesToRequestDocument(schema, document) {
|
|
162
195
|
let finalDocument = document;
|
|
163
|
-
if (this.config.
|
|
196
|
+
if (this.config.astType === "SupermassiveV3") {
|
|
164
197
|
finalDocument = (0, import_supermassive.addMinimalViableSchemaToRequestDocument)(
|
|
165
198
|
schema,
|
|
166
199
|
finalDocument,
|
|
@@ -169,12 +202,10 @@ class TypeScriptDocumentNodesVisitor extends import_visitor_plugin_common.Client
|
|
|
169
202
|
}
|
|
170
203
|
);
|
|
171
204
|
}
|
|
172
|
-
if (this.config.supermassiveDocumentNodeOutputType === "V2" || this.config.supermassiveDocumentNodeOutputType === "BOTH") {
|
|
173
|
-
finalDocument = (0, import_supermassive.addSupermassiveLegacyTypesToRequestDocument)(
|
|
174
|
-
schema,
|
|
175
|
-
finalDocument
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
205
|
return finalDocument;
|
|
179
206
|
}
|
|
180
207
|
}
|
|
208
|
+
function validateRuntimeParseImport(input) {
|
|
209
|
+
const parseImport = input;
|
|
210
|
+
return typeof parseImport === "object" && !!parseImport.moduleName && !!parseImport.propName;
|
|
211
|
+
}
|
package/lib/visitor.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/visitor.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Taken from https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/packages/plugins/typescript/typed-document-node/src/visitor.ts\n * MIT license https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/LICENSE\n */\n\nimport autoBind from \"auto-bind\";\nimport { Types } from \"@graphql-codegen/plugin-helpers\";\nimport {\n LoadedFragment,\n ClientSideBaseVisitor,\n ClientSideBasePluginConfig,\n DocumentMode,\n RawClientSideBasePluginConfig,\n} from \"@graphql-codegen/visitor-plugin-common\";\nimport {\n GraphQLSchema,\n FragmentDefinitionNode,\n DocumentNode,\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,uBAAqB;AAErB,mCAMO;AACP,qBAOO;AACP,
|
|
4
|
+
"sourcesContent": ["/*\n * Taken from https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/packages/plugins/typescript/typed-document-node/src/visitor.ts\n * MIT license https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/LICENSE\n */\n\nimport autoBind from \"auto-bind\";\nimport { Types } from \"@graphql-codegen/plugin-helpers\";\nimport {\n LoadedFragment,\n ClientSideBaseVisitor,\n ClientSideBasePluginConfig,\n DocumentMode,\n RawClientSideBasePluginConfig,\n} from \"@graphql-codegen/visitor-plugin-common\";\nimport {\n GraphQLSchema,\n FragmentDefinitionNode,\n DocumentNode,\n Kind,\n OperationDefinitionNode,\n parse,\n} from \"graphql\";\nimport { addMinimalViableSchemaToRequestDocument } from \"@graphitation/supermassive\";\nimport { optimizeDocumentNode } from \"@graphql-tools/optimize\";\nimport gqlTag from \"graphql-tag\";\nimport { print } from \"./utils/print\";\n\nexport type SupermassiveAstType = \"SupermassiveV3\" | \"Lazy\" | \"Standard\";\nexport type RuntimeParseImport = { moduleName: string; propName: string };\n\ntype RawClientSidePluginConfig = RawClientSideBasePluginConfig & {\n runtimeParseImport?: RuntimeParseImport;\n astType?: SupermassiveAstType;\n};\ntype ClientSidePluginConfig = ClientSideBasePluginConfig & {\n astType?: SupermassiveAstType;\n};\n\nexport class TypeScriptDocumentNodesVisitor extends ClientSideBaseVisitor<\n RawClientSidePluginConfig,\n ClientSidePluginConfig\n> {\n constructor(\n schema: GraphQLSchema,\n fragments: LoadedFragment[],\n rawConfig: RawClientSidePluginConfig,\n documents: Types.DocumentFile[],\n ) {\n super(\n schema,\n fragments,\n {\n documentMode: DocumentMode.documentNodeImportFragments,\n documentNodeImport:\n \"@graphql-typed-document-node/core#TypedDocumentNode\",\n ...rawConfig,\n },\n {\n astType: rawConfig.astType ?? \"SupermassiveV3\",\n },\n documents,\n );\n\n autoBind(this);\n\n // We need to make sure it's there because in this mode, the base plugin doesn't add the import\n if (this.config.documentMode === DocumentMode.graphQLTag) {\n const documentNodeImport = this._parseImport(\n this.config.documentNodeImport || \"graphql#DocumentNode\",\n );\n const tagImport = this._generateImport(\n documentNodeImport,\n \"DocumentNode\",\n true,\n ) as string;\n this._imports.add(tagImport);\n }\n\n if (this.config.astType === \"Lazy\") {\n const { runtimeParseImport } = rawConfig;\n if (!validateRuntimeParseImport(runtimeParseImport)) {\n throw new Error(\n `graphql-codegen-supermassive-typed-document-node-plugin: astType=\"Lazy\" requires valid runtimeParseImport in the config`,\n );\n }\n\n const tagImport = this._generateImport(\n runtimeParseImport,\n \"runtimeParse\",\n false,\n ) as string;\n this._imports.add(tagImport);\n }\n }\n\n protected getDocumentNodeSignature(\n resultType: string,\n variablesTypes: string,\n node: FragmentDefinitionNode | OperationDefinitionNode,\n ) {\n if (\n this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments ||\n this.config.documentMode === DocumentMode.graphQLTag\n ) {\n return ` as unknown as DocumentNode<${resultType}, ${variablesTypes}>`;\n }\n\n return super.getDocumentNodeSignature(resultType, variablesTypes, node);\n }\n\n protected _gql(\n node: FragmentDefinitionNode | OperationDefinitionNode,\n ): string {\n switch (this.config.astType) {\n case \"Lazy\":\n return this._renderLazy(node);\n\n case \"SupermassiveV3\":\n return this._render(node, true);\n\n case \"Standard\":\n default:\n return this._render(node, false);\n }\n }\n\n private _renderLazy(\n node: FragmentDefinitionNode | OperationDefinitionNode,\n ): string {\n const fragments = this._transformFragments(node);\n const doc = this._prepareDocument(`\n ${print(node)}\n ${this._includeFragments(fragments)}\n `);\n\n const gqlObj = parse(doc, { noLocation: true });\n return `\n{\n kind: \"Document\",\n get definitions() {\n const document = runtimeParse('${print(gqlObj)}');\n delete this.definitions;\n return (this.definitions = ${\n !fragments.length\n ? \"document.definitions\"\n : `[${[\n \"...document.definitions\",\n ...fragments.map((name) => `...${name}.definitions`),\n ].join(\",\")}]`\n });\n }\n}`;\n }\n\n private _render(\n node: FragmentDefinitionNode | OperationDefinitionNode,\n annotate = false,\n ): string {\n const supermassiveNode = this.addTypesToRequestDocument(this._schema, {\n kind: Kind.DOCUMENT,\n definitions: [node],\n }).definitions[0] as FragmentDefinitionNode | OperationDefinitionNode;\n\n const fragments = this._transformFragments(supermassiveNode);\n\n const doc = this._prepareDocument(`\n ${print(supermassiveNode)}\n ${this._includeFragments(fragments)}`);\n\n if (this.config.documentMode === DocumentMode.documentNode) {\n let gqlObj = gqlTag([doc]);\n\n if (this.config.optimizeDocumentNode) {\n gqlObj = optimizeDocumentNode(gqlObj);\n }\n if (annotate) {\n gqlObj = this._transformDocumentNodeToSupermassive(gqlObj);\n }\n\n return JSON.stringify(gqlObj);\n } else if (\n this.config.documentMode === DocumentMode.documentNodeImportFragments\n ) {\n let gqlObj = gqlTag([doc]);\n\n if (this.config.optimizeDocumentNode) {\n gqlObj = optimizeDocumentNode(gqlObj);\n }\n\n if (fragments.length > 0) {\n const definitions = [\n ...gqlObj.definitions.map((t) =>\n JSON.stringify(\n annotate\n ? this.addTypesToRequestDocument(this._schema, {\n kind: Kind.DOCUMENT,\n definitions: [t],\n }).definitions[0]\n : t,\n ),\n ),\n ...fragments.map((name) => `...${name}.definitions`),\n ].join();\n\n return `{\"kind\":\"${Kind.DOCUMENT}\",\"definitions\":[${definitions}]}`;\n }\n if (annotate) {\n gqlObj = this._transformDocumentNodeToSupermassive(gqlObj);\n }\n\n return JSON.stringify(gqlObj);\n } else if (this.config.documentMode === DocumentMode.string) {\n return \"`\" + doc + \"`\";\n }\n\n const gqlImport = this._parseImport(this.config.gqlImport || \"graphql-tag\");\n\n return (gqlImport.propName || \"gql\") + \"`\" + doc + \"`\";\n }\n\n private _transformDocumentNodeToSupermassive(document: DocumentNode) {\n return {\n ...document,\n definitions: document.definitions.map(\n (t) =>\n this.addTypesToRequestDocument(this._schema, {\n kind: Kind.DOCUMENT,\n definitions: [t],\n }).definitions[0],\n ),\n } as DocumentNode;\n }\n\n private addTypesToRequestDocument(\n schema: GraphQLSchema,\n document: DocumentNode,\n ) {\n let finalDocument = document;\n if (this.config.astType === \"SupermassiveV3\") {\n finalDocument = addMinimalViableSchemaToRequestDocument(\n schema,\n finalDocument,\n {\n addTo: \"PROPERTY\",\n },\n );\n }\n return finalDocument;\n }\n}\n\nfunction validateRuntimeParseImport(\n input: unknown,\n): input is RuntimeParseImport {\n const parseImport = input as RuntimeParseImport;\n return (\n typeof parseImport === \"object\" &&\n !!parseImport.moduleName &&\n !!parseImport.propName\n );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,uBAAqB;AAErB,mCAMO;AACP,qBAOO;AACP,0BAAwD;AACxD,sBAAqC;AACrC,yBAAmB;AACnB,mBAAsB;AAaf,MAAM,uCAAuC,mDAGlD;AAAA,EACA,YACE,QACA,WACA,WACA,WACA;AA/CJ;AAgDI;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,QACE,cAAc,0CAAa;AAAA,QAC3B,oBACE;AAAA,SACC;AAAA,MAEL;AAAA,QACE,UAAS,eAAU,YAAV,YAAqB;AAAA,MAChC;AAAA,MACA;AAAA,IACF;AAEA,yBAAAA,SAAS,IAAI;AAGb,QAAI,KAAK,OAAO,iBAAiB,0CAAa,YAAY;AACxD,YAAM,qBAAqB,KAAK;AAAA,QAC9B,KAAK,OAAO,sBAAsB;AAAA,MACpC;AACA,YAAM,YAAY,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,WAAK,SAAS,IAAI,SAAS;AAAA,IAC7B;AAEA,QAAI,KAAK,OAAO,YAAY,QAAQ;AAClC,YAAM,EAAE,mBAAmB,IAAI;AAC/B,UAAI,CAAC,2BAA2B,kBAAkB,GAAG;AACnD,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,YAAM,YAAY,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,WAAK,SAAS,IAAI,SAAS;AAAA,IAC7B;AAAA,EACF;AAAA,EAEU,yBACR,YACA,gBACA,MACA;AACA,QACE,KAAK,OAAO,iBAAiB,0CAAa,gBAC1C,KAAK,OAAO,iBAAiB,0CAAa,+BAC1C,KAAK,OAAO,iBAAiB,0CAAa,YAC1C;AACA,aAAO,+BAA+B,eAAe;AAAA,IACvD;AAEA,WAAO,MAAM,yBAAyB,YAAY,gBAAgB,IAAI;AAAA,EACxE;AAAA,EAEU,KACR,MACQ;AACR,YAAQ,KAAK,OAAO,SAAS;AAAA,MAC3B,KAAK;AACH,eAAO,KAAK,YAAY,IAAI;AAAA,MAE9B,KAAK;AACH,eAAO,KAAK,QAAQ,MAAM,IAAI;AAAA,MAEhC,KAAK;AAAA,MACL;AACE,eAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,IACnC;AAAA,EACF;AAAA,EAEQ,YACN,MACQ;AACR,UAAM,YAAY,KAAK,oBAAoB,IAAI;AAC/C,UAAM,MAAM,KAAK,iBAAiB;AAAA,UAChC,oBAAM,IAAI;AAAA,MACV,KAAK,kBAAkB,SAAS;AAAA,KACjC;AAED,UAAM,aAAS,sBAAM,KAAK,EAAE,YAAY,KAAK,CAAC;AAC9C,WAAO;AAAA;AAAA;AAAA;AAAA,yCAI0B,oBAAM,MAAM;AAAA;AAAA,iCAG3C,CAAC,UAAU,SACP,yBACA,IAAI;AAAA,MACF;AAAA,MACA,GAAG,UAAU,IAAI,CAAC,SAAS,MAAM,kBAAkB;AAAA,IACrD,EAAE,KAAK,GAAG;AAAA;AAAA;AAAA,EAIlB;AAAA,EAEQ,QACN,MACA,WAAW,OACH;AACR,UAAM,mBAAmB,KAAK,0BAA0B,KAAK,SAAS;AAAA,MACpE,MAAM,oBAAK;AAAA,MACX,aAAa,CAAC,IAAI;AAAA,IACpB,CAAC,EAAE,YAAY,CAAC;AAEhB,UAAM,YAAY,KAAK,oBAAoB,gBAAgB;AAE3D,UAAM,MAAM,KAAK,iBAAiB;AAAA,UAChC,oBAAM,gBAAgB;AAAA,MACtB,KAAK,kBAAkB,SAAS,GAAG;AAErC,QAAI,KAAK,OAAO,iBAAiB,0CAAa,cAAc;AAC1D,UAAI,aAAS,mBAAAC,SAAO,CAAC,GAAG,CAAC;AAEzB,UAAI,KAAK,OAAO,sBAAsB;AACpC,qBAAS,sCAAqB,MAAM;AAAA,MACtC;AACA,UAAI,UAAU;AACZ,iBAAS,KAAK,qCAAqC,MAAM;AAAA,MAC3D;AAEA,aAAO,KAAK,UAAU,MAAM;AAAA,IAC9B,WACE,KAAK,OAAO,iBAAiB,0CAAa,6BAC1C;AACA,UAAI,aAAS,mBAAAA,SAAO,CAAC,GAAG,CAAC;AAEzB,UAAI,KAAK,OAAO,sBAAsB;AACpC,qBAAS,sCAAqB,MAAM;AAAA,MACtC;AAEA,UAAI,UAAU,SAAS,GAAG;AACxB,cAAM,cAAc;AAAA,UAClB,GAAG,OAAO,YAAY;AAAA,YAAI,CAAC,MACzB,KAAK;AAAA,cACH,WACI,KAAK,0BAA0B,KAAK,SAAS;AAAA,gBAC3C,MAAM,oBAAK;AAAA,gBACX,aAAa,CAAC,CAAC;AAAA,cACjB,CAAC,EAAE,YAAY,CAAC,IAChB;AAAA,YACN;AAAA,UACF;AAAA,UACA,GAAG,UAAU,IAAI,CAAC,SAAS,MAAM,kBAAkB;AAAA,QACrD,EAAE,KAAK;AAEP,eAAO,YAAY,oBAAK,4BAA4B;AAAA,MACtD;AACA,UAAI,UAAU;AACZ,iBAAS,KAAK,qCAAqC,MAAM;AAAA,MAC3D;AAEA,aAAO,KAAK,UAAU,MAAM;AAAA,IAC9B,WAAW,KAAK,OAAO,iBAAiB,0CAAa,QAAQ;AAC3D,aAAO,MAAM,MAAM;AAAA,IACrB;AAEA,UAAM,YAAY,KAAK,aAAa,KAAK,OAAO,aAAa,aAAa;AAE1E,YAAQ,UAAU,YAAY,SAAS,MAAM,MAAM;AAAA,EACrD;AAAA,EAEQ,qCAAqC,UAAwB;AACnE,WAAO,iCACF,WADE;AAAA,MAEL,aAAa,SAAS,YAAY;AAAA,QAChC,CAAC,MACC,KAAK,0BAA0B,KAAK,SAAS;AAAA,UAC3C,MAAM,oBAAK;AAAA,UACX,aAAa,CAAC,CAAC;AAAA,QACjB,CAAC,EAAE,YAAY,CAAC;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,0BACN,QACA,UACA;AACA,QAAI,gBAAgB;AACpB,QAAI,KAAK,OAAO,YAAY,kBAAkB;AAC5C,0BAAgB;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,UACE,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEA,SAAS,2BACP,OAC6B;AAC7B,QAAM,cAAc;AACpB,SACE,OAAO,gBAAgB,YACvB,CAAC,CAAC,YAAY,cACd,CAAC,CAAC,YAAY;AAElB;",
|
|
6
6
|
"names": ["autoBind", "gqlTag"]
|
|
7
7
|
}
|
package/lib/visitor.mjs
CHANGED
|
@@ -25,17 +25,16 @@ import {
|
|
|
25
25
|
DocumentMode
|
|
26
26
|
} from "@graphql-codegen/visitor-plugin-common";
|
|
27
27
|
import {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
Kind,
|
|
29
|
+
parse
|
|
30
30
|
} from "graphql";
|
|
31
|
-
import {
|
|
32
|
-
addSupermassiveLegacyTypesToRequestDocument,
|
|
33
|
-
addMinimalViableSchemaToRequestDocument
|
|
34
|
-
} from "@graphitation/supermassive";
|
|
31
|
+
import { addMinimalViableSchemaToRequestDocument } from "@graphitation/supermassive";
|
|
35
32
|
import { optimizeDocumentNode } from "@graphql-tools/optimize";
|
|
36
33
|
import gqlTag from "graphql-tag";
|
|
34
|
+
import { print } from "./utils/print.mjs";
|
|
37
35
|
var TypeScriptDocumentNodesVisitor = class extends ClientSideBaseVisitor {
|
|
38
36
|
constructor(schema, fragments, rawConfig, documents) {
|
|
37
|
+
var _a;
|
|
39
38
|
super(
|
|
40
39
|
schema,
|
|
41
40
|
fragments,
|
|
@@ -44,8 +43,7 @@ var TypeScriptDocumentNodesVisitor = class extends ClientSideBaseVisitor {
|
|
|
44
43
|
documentNodeImport: "@graphql-typed-document-node/core#TypedDocumentNode"
|
|
45
44
|
}, rawConfig),
|
|
46
45
|
{
|
|
47
|
-
|
|
48
|
-
supermassiveDocumentNodeOutputType: rawConfig.supermassiveDocumentNodeOutputType || "V3"
|
|
46
|
+
astType: (_a = rawConfig.astType) != null ? _a : "SupermassiveV3"
|
|
49
47
|
},
|
|
50
48
|
documents
|
|
51
49
|
);
|
|
@@ -61,19 +59,57 @@ var TypeScriptDocumentNodesVisitor = class extends ClientSideBaseVisitor {
|
|
|
61
59
|
);
|
|
62
60
|
this._imports.add(tagImport);
|
|
63
61
|
}
|
|
62
|
+
if (this.config.astType === "Lazy") {
|
|
63
|
+
const { runtimeParseImport } = rawConfig;
|
|
64
|
+
if (!validateRuntimeParseImport(runtimeParseImport)) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
`graphql-codegen-supermassive-typed-document-node-plugin: astType="Lazy" requires valid runtimeParseImport in the config`
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
const tagImport = this._generateImport(
|
|
70
|
+
runtimeParseImport,
|
|
71
|
+
"runtimeParse",
|
|
72
|
+
false
|
|
73
|
+
);
|
|
74
|
+
this._imports.add(tagImport);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
getDocumentNodeSignature(resultType, variablesTypes, node) {
|
|
78
|
+
if (this.config.documentMode === DocumentMode.documentNode || this.config.documentMode === DocumentMode.documentNodeImportFragments || this.config.documentMode === DocumentMode.graphQLTag) {
|
|
79
|
+
return ` as unknown as DocumentNode<${resultType}, ${variablesTypes}>`;
|
|
80
|
+
}
|
|
81
|
+
return super.getDocumentNodeSignature(resultType, variablesTypes, node);
|
|
64
82
|
}
|
|
65
83
|
_gql(node) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
:
|
|
84
|
+
switch (this.config.astType) {
|
|
85
|
+
case "Lazy":
|
|
86
|
+
return this._renderLazy(node);
|
|
87
|
+
case "SupermassiveV3":
|
|
88
|
+
return this._render(node, true);
|
|
89
|
+
case "Standard":
|
|
90
|
+
default:
|
|
91
|
+
return this._render(node, false);
|
|
72
92
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
93
|
+
}
|
|
94
|
+
_renderLazy(node) {
|
|
95
|
+
const fragments = this._transformFragments(node);
|
|
96
|
+
const doc = this._prepareDocument(`
|
|
97
|
+
${print(node)}
|
|
98
|
+
${this._includeFragments(fragments)}
|
|
99
|
+
`);
|
|
100
|
+
const gqlObj = parse(doc, { noLocation: true });
|
|
101
|
+
return `
|
|
102
|
+
{
|
|
103
|
+
kind: "Document",
|
|
104
|
+
get definitions() {
|
|
105
|
+
const document = runtimeParse('${print(gqlObj)}');
|
|
106
|
+
delete this.definitions;
|
|
107
|
+
return (this.definitions = ${!fragments.length ? "document.definitions" : `[${[
|
|
108
|
+
"...document.definitions",
|
|
109
|
+
...fragments.map((name) => `...${name}.definitions`)
|
|
110
|
+
].join(",")}]`});
|
|
111
|
+
}
|
|
112
|
+
}`;
|
|
77
113
|
}
|
|
78
114
|
_render(node, annotate = false) {
|
|
79
115
|
const supermassiveNode = this.addTypesToRequestDocument(this._schema, {
|
|
@@ -82,7 +118,7 @@ var TypeScriptDocumentNodesVisitor = class extends ClientSideBaseVisitor {
|
|
|
82
118
|
}).definitions[0];
|
|
83
119
|
const fragments = this._transformFragments(supermassiveNode);
|
|
84
120
|
const doc = this._prepareDocument(`
|
|
85
|
-
${print(supermassiveNode)
|
|
121
|
+
${print(supermassiveNode)}
|
|
86
122
|
${this._includeFragments(fragments)}`);
|
|
87
123
|
if (this.config.documentMode === DocumentMode.documentNode) {
|
|
88
124
|
let gqlObj = gqlTag([doc]);
|
|
@@ -132,15 +168,9 @@ var TypeScriptDocumentNodesVisitor = class extends ClientSideBaseVisitor {
|
|
|
132
168
|
)
|
|
133
169
|
});
|
|
134
170
|
}
|
|
135
|
-
getDocumentNodeSignature(resultType, variablesTypes, node) {
|
|
136
|
-
if (this.config.documentMode === DocumentMode.documentNode || this.config.documentMode === DocumentMode.documentNodeImportFragments || this.config.documentMode === DocumentMode.graphQLTag) {
|
|
137
|
-
return ` as unknown as DocumentNode<${resultType}, ${variablesTypes}>`;
|
|
138
|
-
}
|
|
139
|
-
return super.getDocumentNodeSignature(resultType, variablesTypes, node);
|
|
140
|
-
}
|
|
141
171
|
addTypesToRequestDocument(schema, document) {
|
|
142
172
|
let finalDocument = document;
|
|
143
|
-
if (this.config.
|
|
173
|
+
if (this.config.astType === "SupermassiveV3") {
|
|
144
174
|
finalDocument = addMinimalViableSchemaToRequestDocument(
|
|
145
175
|
schema,
|
|
146
176
|
finalDocument,
|
|
@@ -149,15 +179,13 @@ var TypeScriptDocumentNodesVisitor = class extends ClientSideBaseVisitor {
|
|
|
149
179
|
}
|
|
150
180
|
);
|
|
151
181
|
}
|
|
152
|
-
if (this.config.supermassiveDocumentNodeOutputType === "V2" || this.config.supermassiveDocumentNodeOutputType === "BOTH") {
|
|
153
|
-
finalDocument = addSupermassiveLegacyTypesToRequestDocument(
|
|
154
|
-
schema,
|
|
155
|
-
finalDocument
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
182
|
return finalDocument;
|
|
159
183
|
}
|
|
160
184
|
};
|
|
185
|
+
function validateRuntimeParseImport(input) {
|
|
186
|
+
const parseImport = input;
|
|
187
|
+
return typeof parseImport === "object" && !!parseImport.moduleName && !!parseImport.propName;
|
|
188
|
+
}
|
|
161
189
|
export {
|
|
162
190
|
TypeScriptDocumentNodesVisitor
|
|
163
191
|
};
|
package/lib/visitor.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/visitor.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Taken from https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/packages/plugins/typescript/typed-document-node/src/visitor.ts\n * MIT license https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/LICENSE\n */\n\nimport autoBind from \"auto-bind\";\nimport { Types } from \"@graphql-codegen/plugin-helpers\";\nimport {\n LoadedFragment,\n ClientSideBaseVisitor,\n ClientSideBasePluginConfig,\n DocumentMode,\n RawClientSideBasePluginConfig,\n} from \"@graphql-codegen/visitor-plugin-common\";\nimport {\n GraphQLSchema,\n FragmentDefinitionNode,\n DocumentNode,\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,cAAc;AAErB;AAAA,EAEE;AAAA,EAEA;AAAA,OAEK;AACP;AAAA,EAIE;AAAA,
|
|
4
|
+
"sourcesContent": ["/*\n * Taken from https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/packages/plugins/typescript/typed-document-node/src/visitor.ts\n * MIT license https://github.com/dotansimha/graphql-code-generator/blob/4fee8c8c523b30163e913438b85a064c58e39087/LICENSE\n */\n\nimport autoBind from \"auto-bind\";\nimport { Types } from \"@graphql-codegen/plugin-helpers\";\nimport {\n LoadedFragment,\n ClientSideBaseVisitor,\n ClientSideBasePluginConfig,\n DocumentMode,\n RawClientSideBasePluginConfig,\n} from \"@graphql-codegen/visitor-plugin-common\";\nimport {\n GraphQLSchema,\n FragmentDefinitionNode,\n DocumentNode,\n Kind,\n OperationDefinitionNode,\n parse,\n} from \"graphql\";\nimport { addMinimalViableSchemaToRequestDocument } from \"@graphitation/supermassive\";\nimport { optimizeDocumentNode } from \"@graphql-tools/optimize\";\nimport gqlTag from \"graphql-tag\";\nimport { print } from \"./utils/print\";\n\nexport type SupermassiveAstType = \"SupermassiveV3\" | \"Lazy\" | \"Standard\";\nexport type RuntimeParseImport = { moduleName: string; propName: string };\n\ntype RawClientSidePluginConfig = RawClientSideBasePluginConfig & {\n runtimeParseImport?: RuntimeParseImport;\n astType?: SupermassiveAstType;\n};\ntype ClientSidePluginConfig = ClientSideBasePluginConfig & {\n astType?: SupermassiveAstType;\n};\n\nexport class TypeScriptDocumentNodesVisitor extends ClientSideBaseVisitor<\n RawClientSidePluginConfig,\n ClientSidePluginConfig\n> {\n constructor(\n schema: GraphQLSchema,\n fragments: LoadedFragment[],\n rawConfig: RawClientSidePluginConfig,\n documents: Types.DocumentFile[],\n ) {\n super(\n schema,\n fragments,\n {\n documentMode: DocumentMode.documentNodeImportFragments,\n documentNodeImport:\n \"@graphql-typed-document-node/core#TypedDocumentNode\",\n ...rawConfig,\n },\n {\n astType: rawConfig.astType ?? \"SupermassiveV3\",\n },\n documents,\n );\n\n autoBind(this);\n\n // We need to make sure it's there because in this mode, the base plugin doesn't add the import\n if (this.config.documentMode === DocumentMode.graphQLTag) {\n const documentNodeImport = this._parseImport(\n this.config.documentNodeImport || \"graphql#DocumentNode\",\n );\n const tagImport = this._generateImport(\n documentNodeImport,\n \"DocumentNode\",\n true,\n ) as string;\n this._imports.add(tagImport);\n }\n\n if (this.config.astType === \"Lazy\") {\n const { runtimeParseImport } = rawConfig;\n if (!validateRuntimeParseImport(runtimeParseImport)) {\n throw new Error(\n `graphql-codegen-supermassive-typed-document-node-plugin: astType=\"Lazy\" requires valid runtimeParseImport in the config`,\n );\n }\n\n const tagImport = this._generateImport(\n runtimeParseImport,\n \"runtimeParse\",\n false,\n ) as string;\n this._imports.add(tagImport);\n }\n }\n\n protected getDocumentNodeSignature(\n resultType: string,\n variablesTypes: string,\n node: FragmentDefinitionNode | OperationDefinitionNode,\n ) {\n if (\n this.config.documentMode === DocumentMode.documentNode ||\n this.config.documentMode === DocumentMode.documentNodeImportFragments ||\n this.config.documentMode === DocumentMode.graphQLTag\n ) {\n return ` as unknown as DocumentNode<${resultType}, ${variablesTypes}>`;\n }\n\n return super.getDocumentNodeSignature(resultType, variablesTypes, node);\n }\n\n protected _gql(\n node: FragmentDefinitionNode | OperationDefinitionNode,\n ): string {\n switch (this.config.astType) {\n case \"Lazy\":\n return this._renderLazy(node);\n\n case \"SupermassiveV3\":\n return this._render(node, true);\n\n case \"Standard\":\n default:\n return this._render(node, false);\n }\n }\n\n private _renderLazy(\n node: FragmentDefinitionNode | OperationDefinitionNode,\n ): string {\n const fragments = this._transformFragments(node);\n const doc = this._prepareDocument(`\n ${print(node)}\n ${this._includeFragments(fragments)}\n `);\n\n const gqlObj = parse(doc, { noLocation: true });\n return `\n{\n kind: \"Document\",\n get definitions() {\n const document = runtimeParse('${print(gqlObj)}');\n delete this.definitions;\n return (this.definitions = ${\n !fragments.length\n ? \"document.definitions\"\n : `[${[\n \"...document.definitions\",\n ...fragments.map((name) => `...${name}.definitions`),\n ].join(\",\")}]`\n });\n }\n}`;\n }\n\n private _render(\n node: FragmentDefinitionNode | OperationDefinitionNode,\n annotate = false,\n ): string {\n const supermassiveNode = this.addTypesToRequestDocument(this._schema, {\n kind: Kind.DOCUMENT,\n definitions: [node],\n }).definitions[0] as FragmentDefinitionNode | OperationDefinitionNode;\n\n const fragments = this._transformFragments(supermassiveNode);\n\n const doc = this._prepareDocument(`\n ${print(supermassiveNode)}\n ${this._includeFragments(fragments)}`);\n\n if (this.config.documentMode === DocumentMode.documentNode) {\n let gqlObj = gqlTag([doc]);\n\n if (this.config.optimizeDocumentNode) {\n gqlObj = optimizeDocumentNode(gqlObj);\n }\n if (annotate) {\n gqlObj = this._transformDocumentNodeToSupermassive(gqlObj);\n }\n\n return JSON.stringify(gqlObj);\n } else if (\n this.config.documentMode === DocumentMode.documentNodeImportFragments\n ) {\n let gqlObj = gqlTag([doc]);\n\n if (this.config.optimizeDocumentNode) {\n gqlObj = optimizeDocumentNode(gqlObj);\n }\n\n if (fragments.length > 0) {\n const definitions = [\n ...gqlObj.definitions.map((t) =>\n JSON.stringify(\n annotate\n ? this.addTypesToRequestDocument(this._schema, {\n kind: Kind.DOCUMENT,\n definitions: [t],\n }).definitions[0]\n : t,\n ),\n ),\n ...fragments.map((name) => `...${name}.definitions`),\n ].join();\n\n return `{\"kind\":\"${Kind.DOCUMENT}\",\"definitions\":[${definitions}]}`;\n }\n if (annotate) {\n gqlObj = this._transformDocumentNodeToSupermassive(gqlObj);\n }\n\n return JSON.stringify(gqlObj);\n } else if (this.config.documentMode === DocumentMode.string) {\n return \"`\" + doc + \"`\";\n }\n\n const gqlImport = this._parseImport(this.config.gqlImport || \"graphql-tag\");\n\n return (gqlImport.propName || \"gql\") + \"`\" + doc + \"`\";\n }\n\n private _transformDocumentNodeToSupermassive(document: DocumentNode) {\n return {\n ...document,\n definitions: document.definitions.map(\n (t) =>\n this.addTypesToRequestDocument(this._schema, {\n kind: Kind.DOCUMENT,\n definitions: [t],\n }).definitions[0],\n ),\n } as DocumentNode;\n }\n\n private addTypesToRequestDocument(\n schema: GraphQLSchema,\n document: DocumentNode,\n ) {\n let finalDocument = document;\n if (this.config.astType === \"SupermassiveV3\") {\n finalDocument = addMinimalViableSchemaToRequestDocument(\n schema,\n finalDocument,\n {\n addTo: \"PROPERTY\",\n },\n );\n }\n return finalDocument;\n }\n}\n\nfunction validateRuntimeParseImport(\n input: unknown,\n): input is RuntimeParseImport {\n const parseImport = input as RuntimeParseImport;\n return (\n typeof parseImport === \"object\" &&\n !!parseImport.moduleName &&\n !!parseImport.propName\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphitation/graphql-codegen-supermassive-typed-document-node-plugin",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"main": "./lib/index",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "monorepo-scripts build",
|
|
13
13
|
"lint": "monorepo-scripts lint",
|
|
14
|
+
"test": "monorepo-scripts test",
|
|
14
15
|
"types": "monorepo-scripts types",
|
|
15
16
|
"just": "monorepo-scripts"
|
|
16
17
|
},
|
|
@@ -28,7 +29,7 @@
|
|
|
28
29
|
"@graphql-codegen/visitor-plugin-common": ">= ^1.17.0 < 2",
|
|
29
30
|
"graphql-tag": ">= 2.11.0 < 3",
|
|
30
31
|
"@graphql-tools/optimize": "^1.0.1",
|
|
31
|
-
"@graphitation/supermassive": "^3.5.
|
|
32
|
+
"@graphitation/supermassive": "^3.5.2"
|
|
32
33
|
},
|
|
33
34
|
"sideEffects": false,
|
|
34
35
|
"access": "public",
|