@gql.tada/cli-utils 1.8.1 → 1.9.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/CHANGELOG.md +21 -0
- package/dist/chunks/index-chunk.js +3105 -1653
- package/dist/chunks/index-chunk.js.map +1 -1
- package/dist/chunks/index-chunk.mjs +3127 -1681
- package/dist/chunks/index-chunk.mjs.map +1 -1
- package/dist/chunks/scan-chunk.js +74 -0
- package/dist/chunks/scan-chunk.js.map +1 -0
- package/dist/chunks/scan-chunk.mjs +55 -0
- package/dist/chunks/scan-chunk.mjs.map +1 -0
- package/dist/chunks/thread-chunk2.js +79 -124
- package/dist/chunks/thread-chunk2.js.map +1 -1
- package/dist/chunks/thread-chunk2.mjs +194 -239
- package/dist/chunks/thread-chunk2.mjs.map +1 -1
- package/dist/chunks/thread-chunk3.js +124 -81
- package/dist/chunks/thread-chunk3.js.map +1 -1
- package/dist/chunks/thread-chunk3.mjs +131 -67
- package/dist/chunks/thread-chunk3.mjs.map +1 -1
- package/dist/chunks/thread-chunk4.js +112 -0
- package/dist/chunks/thread-chunk4.js.map +1 -0
- package/dist/chunks/thread-chunk4.mjs +91 -0
- package/dist/chunks/thread-chunk4.mjs.map +1 -0
- package/dist/gql-tada-cli.d.ts +25 -1
- package/dist/gql-tada-cli.js +2 -0
- package/dist/gql-tada-cli.js.map +1 -1
- package/dist/gql-tada-cli.mjs +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var t = require("node:path");
|
|
2
|
+
|
|
3
|
+
var e = require("typescript");
|
|
4
|
+
|
|
5
|
+
function _interopNamespaceDefault(t) {
|
|
6
|
+
var e = Object.create(null);
|
|
7
|
+
if (t) {
|
|
8
|
+
Object.keys(t).forEach((function(r) {
|
|
9
|
+
if ("default" !== r) {
|
|
10
|
+
var n = Object.getOwnPropertyDescriptor(t, r);
|
|
11
|
+
Object.defineProperty(e, r, n.get ? n : {
|
|
12
|
+
enumerable: !0,
|
|
13
|
+
get: function() {
|
|
14
|
+
return t[r];
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
e.default = t;
|
|
21
|
+
return e;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var r = _interopNamespaceDefault(t);
|
|
25
|
+
|
|
26
|
+
var n = /(?:^|[^\w])(query|mutation|subscription|fragment)\b/;
|
|
27
|
+
|
|
28
|
+
exports.hasGraphQLDocumentCandidate = function hasGraphQLDocumentCandidate(t) {
|
|
29
|
+
if (!t.text.includes("{")) {
|
|
30
|
+
return !1;
|
|
31
|
+
}
|
|
32
|
+
var r = !1;
|
|
33
|
+
var visit = t => {
|
|
34
|
+
if (r) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (e.isCallExpression(t)) {
|
|
38
|
+
var i = t.arguments[0];
|
|
39
|
+
if (i && e.isStringLiteralLike(i)) {
|
|
40
|
+
var a = i.text;
|
|
41
|
+
if (a.includes("{") && function isGraphQLDocumentCandidateText(t) {
|
|
42
|
+
if (n.test(t)) {
|
|
43
|
+
return !0;
|
|
44
|
+
}
|
|
45
|
+
for (var e of t.split("\n")) {
|
|
46
|
+
var r = e.trimStart();
|
|
47
|
+
if (!r || r.startsWith("#")) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
return r.startsWith("{");
|
|
51
|
+
}
|
|
52
|
+
return !1;
|
|
53
|
+
}(a)) {
|
|
54
|
+
r = !0;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
e.forEachChild(t, visit);
|
|
60
|
+
};
|
|
61
|
+
visit(t);
|
|
62
|
+
return r;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
exports.shouldScanTurboFile = function shouldScanTurboFile(t, e) {
|
|
66
|
+
if (e.has(r.resolve(t))) {
|
|
67
|
+
return !1;
|
|
68
|
+
}
|
|
69
|
+
if (t.endsWith(".d.ts") || t.endsWith(".d.mts") || t.endsWith(".d.cts")) {
|
|
70
|
+
return !1;
|
|
71
|
+
}
|
|
72
|
+
return !/(^|[/\\])node_modules([/\\]|$)/.test(t);
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=scan-chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-chunk.js","sources":["../../src/commands/turbo/scan.ts"],"sourcesContent":["import * as path from 'node:path';\nimport ts from 'typescript';\n\nexport function shouldScanTurboFile(fileName: string, turboOutputPaths: Set<string>): boolean {\n if (turboOutputPaths.has(path.resolve(fileName))) return false;\n if (fileName.endsWith('.d.ts') || fileName.endsWith('.d.mts') || fileName.endsWith('.d.cts')) {\n return false;\n }\n return !/(^|[/\\\\])node_modules([/\\\\]|$)/.test(fileName);\n}\n\nconst GRAPHQL_DOCUMENT_START = /(?:^|[^\\w])(query|mutation|subscription|fragment)\\b/;\n\nexport function hasGraphQLDocumentCandidate(sourceFile: ts.SourceFile): boolean {\n if (!sourceFile.text.includes('{')) return false;\n\n let hasCandidate = false;\n\n const visit = (node: ts.Node): void => {\n if (hasCandidate) return;\n\n if (ts.isCallExpression(node)) {\n const argument = node.arguments[0];\n if (argument && ts.isStringLiteralLike(argument)) {\n const text = argument.text;\n if (text.includes('{') && isGraphQLDocumentCandidateText(text)) {\n hasCandidate = true;\n return;\n }\n }\n }\n\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return hasCandidate;\n}\n\nfunction isGraphQLDocumentCandidateText(text: string): boolean {\n if (GRAPHQL_DOCUMENT_START.test(text)) return true;\n\n for (const line of text.split('\\n')) {\n const trimmed = line.trimStart();\n if (!trimmed || trimmed.startsWith('#')) continue;\n return trimmed.startsWith('{');\n }\n\n return false;\n}\n"],"names":["GRAPHQL_DOCUMENT_START","hasGraphQLDocumentCandidate","sourceFile","text","includes","hasCandidate","visit","node","ts","isCallExpression","argument","arguments","isStringLiteralLike","isGraphQLDocumentCandidateText","test","line","split","trimmed","trimStart","startsWith","forEachChild","shouldScanTurboFile","fileName","turboOutputPaths","has","path","resolve","endsWith"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,IAAyB;;sCAExB,SAASC,4BAA4BC;EAC1C,KAAKA,EAAWC,KAAKC,SAAS;IAAM,QAAO;;EAE3C,IAAIC,KAAe;EAEnB,IAAMC,QAASC;IACb,IAAIF;MAAc;;IAElB,IAAIG,EAAGC,iBAAiBF,IAAO;MAC7B,IAAMG,IAAWH,EAAKI,UAAU;MAChC,IAAID,KAAYF,EAAGI,oBAAoBF,IAAW;QAChD,IAAMP,IAAOO,EAASP;QACtB,IAAIA,EAAKC,SAAS,QAc1B,SAASS,+BAA+BV;UACtC,IAAIH,EAAuBc,KAAKX;YAAO,QAAO;;UAE9C,KAAK,IAAMY,KAAQZ,EAAKa,MAAM,OAAO;YACnC,IAAMC,IAAUF,EAAKG;YACrB,KAAKD,KAAWA,EAAQE,WAAW;cAAM;;YACzC,OAAOF,EAAQE,WAAW;AAC5B;UAEA,QAAO;AACT,SAxBkCN,CAA+BV,IAAO;UAC9DE,KAAe;UACf;AACF;AACF;AACF;IAEAG,EAAGY,aAAab,GAAMD;AAAM;EAG9BA,MAAMJ;EACN,OAAOG;AACT;;8BAlCO,SAASgB,oBAAoBC,GAAkBC;EACpD,IAAIA,EAAiBC,IAAIC,EAAKC,QAAQJ;IAAY,QAAO;;EACzD,IAAIA,EAASK,SAAS,YAAYL,EAASK,SAAS,aAAaL,EAASK,SAAS;IACjF,QAAO;;EAET,QAAQ,iCAAiCb,KAAKQ;AAChD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as t from "node:path";
|
|
2
|
+
|
|
3
|
+
import r from "typescript";
|
|
4
|
+
|
|
5
|
+
function shouldScanTurboFile(r, e) {
|
|
6
|
+
if (e.has(t.resolve(r))) {
|
|
7
|
+
return !1;
|
|
8
|
+
}
|
|
9
|
+
if (r.endsWith(".d.ts") || r.endsWith(".d.mts") || r.endsWith(".d.cts")) {
|
|
10
|
+
return !1;
|
|
11
|
+
}
|
|
12
|
+
return !/(^|[/\\])node_modules([/\\]|$)/.test(r);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var e = /(?:^|[^\w])(query|mutation|subscription|fragment)\b/;
|
|
16
|
+
|
|
17
|
+
function hasGraphQLDocumentCandidate(t) {
|
|
18
|
+
if (!t.text.includes("{")) {
|
|
19
|
+
return !1;
|
|
20
|
+
}
|
|
21
|
+
var i = !1;
|
|
22
|
+
var visit = t => {
|
|
23
|
+
if (i) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (r.isCallExpression(t)) {
|
|
27
|
+
var n = t.arguments[0];
|
|
28
|
+
if (n && r.isStringLiteralLike(n)) {
|
|
29
|
+
var s = n.text;
|
|
30
|
+
if (s.includes("{") && function isGraphQLDocumentCandidateText(t) {
|
|
31
|
+
if (e.test(t)) {
|
|
32
|
+
return !0;
|
|
33
|
+
}
|
|
34
|
+
for (var r of t.split("\n")) {
|
|
35
|
+
var i = r.trimStart();
|
|
36
|
+
if (!i || i.startsWith("#")) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
return i.startsWith("{");
|
|
40
|
+
}
|
|
41
|
+
return !1;
|
|
42
|
+
}(s)) {
|
|
43
|
+
i = !0;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
r.forEachChild(t, visit);
|
|
49
|
+
};
|
|
50
|
+
visit(t);
|
|
51
|
+
return i;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { hasGraphQLDocumentCandidate as h, shouldScanTurboFile as s };
|
|
55
|
+
//# sourceMappingURL=scan-chunk.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-chunk.mjs","sources":["../../src/commands/turbo/scan.ts"],"sourcesContent":["import * as path from 'node:path';\nimport ts from 'typescript';\n\nexport function shouldScanTurboFile(fileName: string, turboOutputPaths: Set<string>): boolean {\n if (turboOutputPaths.has(path.resolve(fileName))) return false;\n if (fileName.endsWith('.d.ts') || fileName.endsWith('.d.mts') || fileName.endsWith('.d.cts')) {\n return false;\n }\n return !/(^|[/\\\\])node_modules([/\\\\]|$)/.test(fileName);\n}\n\nconst GRAPHQL_DOCUMENT_START = /(?:^|[^\\w])(query|mutation|subscription|fragment)\\b/;\n\nexport function hasGraphQLDocumentCandidate(sourceFile: ts.SourceFile): boolean {\n if (!sourceFile.text.includes('{')) return false;\n\n let hasCandidate = false;\n\n const visit = (node: ts.Node): void => {\n if (hasCandidate) return;\n\n if (ts.isCallExpression(node)) {\n const argument = node.arguments[0];\n if (argument && ts.isStringLiteralLike(argument)) {\n const text = argument.text;\n if (text.includes('{') && isGraphQLDocumentCandidateText(text)) {\n hasCandidate = true;\n return;\n }\n }\n }\n\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return hasCandidate;\n}\n\nfunction isGraphQLDocumentCandidateText(text: string): boolean {\n if (GRAPHQL_DOCUMENT_START.test(text)) return true;\n\n for (const line of text.split('\\n')) {\n const trimmed = line.trimStart();\n if (!trimmed || trimmed.startsWith('#')) continue;\n return trimmed.startsWith('{');\n }\n\n return false;\n}\n"],"names":["shouldScanTurboFile","fileName","turboOutputPaths","has","path","resolve","endsWith","test","GRAPHQL_DOCUMENT_START","hasGraphQLDocumentCandidate","sourceFile","text","includes","hasCandidate","visit","node","ts","isCallExpression","argument","arguments","isStringLiteralLike","isGraphQLDocumentCandidateText","line","split","trimmed","trimStart","startsWith","forEachChild"],"mappings":";;;;AAGO,SAASA,oBAAoBC,GAAkBC;EACpD,IAAIA,EAAiBC,IAAIC,EAAKC,QAAQJ;IAAY,QAAO;;EACzD,IAAIA,EAASK,SAAS,YAAYL,EAASK,SAAS,aAAaL,EAASK,SAAS;IACjF,QAAO;;EAET,QAAQ,iCAAiCC,KAAKN;AAChD;;AAEA,IAAMO,IAAyB;;AAExB,SAASC,4BAA4BC;EAC1C,KAAKA,EAAWC,KAAKC,SAAS;IAAM,QAAO;;EAE3C,IAAIC,KAAe;EAEnB,IAAMC,QAASC;IACb,IAAIF;MAAc;;IAElB,IAAIG,EAAGC,iBAAiBF,IAAO;MAC7B,IAAMG,IAAWH,EAAKI,UAAU;MAChC,IAAID,KAAYF,EAAGI,oBAAoBF,IAAW;QAChD,IAAMP,IAAOO,EAASP;QACtB,IAAIA,EAAKC,SAAS,QAc1B,SAASS,+BAA+BV;UACtC,IAAIH,EAAuBD,KAAKI;YAAO,QAAO;;UAE9C,KAAK,IAAMW,KAAQX,EAAKY,MAAM,OAAO;YACnC,IAAMC,IAAUF,EAAKG;YACrB,KAAKD,KAAWA,EAAQE,WAAW;cAAM;;YACzC,OAAOF,EAAQE,WAAW;AAC5B;UAEA,QAAO;AACT,SAxBkCL,CAA+BV,IAAO;UAC9DE,KAAe;UACf;AACF;AACF;AACF;IAEAG,EAAGW,aAAaZ,GAAMD;AAAM;EAG9BA,MAAMJ;EACN,OAAOG;AACT;;"}
|
|
@@ -16,7 +16,9 @@ var s = require("@0no-co/graphqlsp/api");
|
|
|
16
16
|
|
|
17
17
|
var u = require("./index-chunk2.js");
|
|
18
18
|
|
|
19
|
-
var l = require("./
|
|
19
|
+
var l = require("./scan-chunk.js");
|
|
20
|
+
|
|
21
|
+
var c = require("./index-chunk.js");
|
|
20
22
|
|
|
21
23
|
function _interopNamespaceDefault(e) {
|
|
22
24
|
var r = Object.create(null);
|
|
@@ -37,19 +39,19 @@ function _interopNamespaceDefault(e) {
|
|
|
37
39
|
return r;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
var
|
|
42
|
+
var p = _interopNamespaceDefault(t);
|
|
41
43
|
|
|
42
44
|
var f = _interopNamespaceDefault(i);
|
|
43
45
|
|
|
44
|
-
var
|
|
46
|
+
var d = _interopNamespaceDefault(n);
|
|
45
47
|
|
|
46
|
-
var
|
|
48
|
+
var m = /@gql\.tada\/hash\s+([^\s*]+)/;
|
|
47
49
|
|
|
48
50
|
function getHashComment(r, a) {
|
|
49
51
|
var t = e.getLeadingCommentRanges(r, a.pos) || [];
|
|
50
52
|
for (var i = t.length - 1; i >= 0; i--) {
|
|
51
53
|
var n = r.slice(t[i].pos, t[i].end);
|
|
52
|
-
var o =
|
|
54
|
+
var o = m.exec(n);
|
|
53
55
|
if (o) {
|
|
54
56
|
return o[1];
|
|
55
57
|
}
|
|
@@ -57,7 +59,7 @@ function getHashComment(r, a) {
|
|
|
57
59
|
return;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
var
|
|
62
|
+
var v = "turbo-document-hash-v1";
|
|
61
63
|
|
|
62
64
|
function createDocumentHasher(r) {
|
|
63
65
|
var a = new WeakMap;
|
|
@@ -106,8 +108,8 @@ function createDocumentHasher(r) {
|
|
|
106
108
|
hashable: !1
|
|
107
109
|
};
|
|
108
110
|
}
|
|
109
|
-
var o =
|
|
110
|
-
addHashPart(o,
|
|
111
|
+
var o = d.createHash("sha256");
|
|
112
|
+
addHashPart(o, v);
|
|
111
113
|
addHashPart(o, t || "");
|
|
112
114
|
addHashPart(o, r.schemaFingerprints.get(t) || "");
|
|
113
115
|
addHashPart(o, i);
|
|
@@ -218,45 +220,6 @@ function addHashPart(e, r) {
|
|
|
218
220
|
e.update("\0");
|
|
219
221
|
}
|
|
220
222
|
|
|
221
|
-
var v = /(?:^|[^\w])(query|mutation|subscription|fragment)\b/;
|
|
222
|
-
|
|
223
|
-
function hasGraphQLDocumentCandidate(r) {
|
|
224
|
-
if (!r.text.includes("{")) {
|
|
225
|
-
return !1;
|
|
226
|
-
}
|
|
227
|
-
var a = !1;
|
|
228
|
-
var visit = r => {
|
|
229
|
-
if (a) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
if (e.isCallExpression(r)) {
|
|
233
|
-
var t = r.arguments[0];
|
|
234
|
-
if (t && e.isStringLiteralLike(t)) {
|
|
235
|
-
var i = t.text;
|
|
236
|
-
if (i.includes("{") && function isGraphQLDocumentCandidateText(e) {
|
|
237
|
-
if (v.test(e)) {
|
|
238
|
-
return !0;
|
|
239
|
-
}
|
|
240
|
-
for (var r of e.split("\n")) {
|
|
241
|
-
var a = r.trimStart();
|
|
242
|
-
if (!a || a.startsWith("#")) {
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
return a.startsWith("{");
|
|
246
|
-
}
|
|
247
|
-
return !1;
|
|
248
|
-
}(i)) {
|
|
249
|
-
a = !0;
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
e.forEachChild(r, visit);
|
|
255
|
-
};
|
|
256
|
-
visit(r);
|
|
257
|
-
return a;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
223
|
var h = 262144e4;
|
|
261
224
|
|
|
262
225
|
function traceCallToImportSource(r, a, t, i) {
|
|
@@ -278,9 +241,9 @@ function traceCallToImportSource(r, a, t, i) {
|
|
|
278
241
|
var l = t.getTypeChecker().getSymbolAtLocation(o);
|
|
279
242
|
if (l && l.declarations) {
|
|
280
243
|
for (var c of l.declarations) {
|
|
281
|
-
var
|
|
282
|
-
if (
|
|
283
|
-
u = resolveModulePath(
|
|
244
|
+
var p = findImportDeclaration(c);
|
|
245
|
+
if (p && e.isStringLiteral(p.moduleSpecifier)) {
|
|
246
|
+
u = resolveModulePath(p.moduleSpecifier.text, a, t, i);
|
|
284
247
|
break;
|
|
285
248
|
}
|
|
286
249
|
}
|
|
@@ -373,7 +336,7 @@ function isTadaImport(e, r, a, t) {
|
|
|
373
336
|
|
|
374
337
|
async function* _runTurbo(r) {
|
|
375
338
|
var a = o.getSchemaNamesFromConfig(r.pluginConfig);
|
|
376
|
-
var t =
|
|
339
|
+
var t = c.programFactory(r);
|
|
377
340
|
var i = new Map;
|
|
378
341
|
var getCachedDocuments = a => {
|
|
379
342
|
var t = getTurboOutputPath(r.turboOutputPath, a);
|
|
@@ -384,12 +347,12 @@ async function* _runTurbo(r) {
|
|
|
384
347
|
if (!n) {
|
|
385
348
|
n = function readCachedTurboDocuments(r) {
|
|
386
349
|
var a = new Map;
|
|
387
|
-
if (!r || !
|
|
350
|
+
if (!r || !p.existsSync(r)) {
|
|
388
351
|
return a;
|
|
389
352
|
}
|
|
390
353
|
var t;
|
|
391
354
|
try {
|
|
392
|
-
t =
|
|
355
|
+
t = p.readFileSync(r, "utf8");
|
|
393
356
|
} catch {
|
|
394
357
|
return a;
|
|
395
358
|
}
|
|
@@ -435,83 +398,75 @@ async function* _runTurbo(r) {
|
|
|
435
398
|
await t.addVirtualFiles(n);
|
|
436
399
|
}
|
|
437
400
|
var u = t.build();
|
|
438
|
-
var
|
|
439
|
-
var
|
|
401
|
+
var d = u.buildPluginInfo(r.pluginConfig);
|
|
402
|
+
var m = new Set(function getTurboOutputPaths(e) {
|
|
440
403
|
return "string" == typeof e ? [ e ] : e.map((e => e.path));
|
|
441
404
|
}(r.turboOutputPath).map((e => f.resolve(e))));
|
|
442
|
-
var
|
|
443
|
-
if (r.has(f.resolve(e))) {
|
|
444
|
-
return !1;
|
|
445
|
-
}
|
|
446
|
-
if (e.endsWith(".d.ts") || e.endsWith(".d.mts") || e.endsWith(".d.cts")) {
|
|
447
|
-
return !1;
|
|
448
|
-
}
|
|
449
|
-
return !/(^|[/\\])node_modules([/\\]|$)/.test(e);
|
|
450
|
-
}(e, d)));
|
|
405
|
+
var v = t.rootFileNames.filter((e => l.shouldScanTurboFile(e, m)));
|
|
451
406
|
yield {
|
|
452
407
|
kind: "FILE_COUNT",
|
|
453
|
-
fileCount:
|
|
408
|
+
fileCount: v.length
|
|
454
409
|
};
|
|
455
|
-
var
|
|
456
|
-
var
|
|
410
|
+
var g = new Map;
|
|
411
|
+
var y = {
|
|
457
412
|
traces: new Map,
|
|
458
413
|
host: void 0,
|
|
459
414
|
resolutionCache: void 0
|
|
460
415
|
};
|
|
461
416
|
var processSourceFile = (i, n, o, u) => {
|
|
462
|
-
var
|
|
463
|
-
var
|
|
417
|
+
var c = i.fileName;
|
|
418
|
+
var p = [];
|
|
464
419
|
var f = [];
|
|
465
|
-
if (!hasGraphQLDocumentCandidate(i)) {
|
|
420
|
+
if (!l.hasGraphQLDocumentCandidate(i)) {
|
|
466
421
|
return {
|
|
467
|
-
filePath:
|
|
468
|
-
documents:
|
|
422
|
+
filePath: c,
|
|
423
|
+
documents: p,
|
|
469
424
|
warnings: f
|
|
470
425
|
};
|
|
471
426
|
}
|
|
472
|
-
var
|
|
427
|
+
var d = s.findAllCallExpressions(i, o, {
|
|
473
428
|
searchExternal: !1,
|
|
474
429
|
collectFragments: !1
|
|
475
430
|
}).nodes;
|
|
476
|
-
for (var
|
|
477
|
-
var
|
|
478
|
-
if (!e.isCallExpression(
|
|
431
|
+
for (var m of d) {
|
|
432
|
+
var v = m.node.parent;
|
|
433
|
+
if (!e.isCallExpression(v)) {
|
|
479
434
|
continue;
|
|
480
435
|
}
|
|
481
|
-
var h = n.getSourcePosition(i,
|
|
482
|
-
|
|
483
|
-
if (!a.has(
|
|
436
|
+
var h = n.getSourcePosition(i, v.getStart());
|
|
437
|
+
c = h.fileName;
|
|
438
|
+
if (!a.has(m.schema)) {
|
|
484
439
|
f.push({
|
|
485
|
-
message:
|
|
440
|
+
message: m.schema ? `The '${m.schema}' schema is not in the configuration but was referenced by document.` : a.size > 1 ? "The document is not for a known schema. Have you re-generated the output file?" : "Multiple schemas are configured, but the document is not for a specific schema.",
|
|
486
441
|
file: h.fileName,
|
|
487
442
|
line: h.line,
|
|
488
443
|
col: h.col
|
|
489
444
|
});
|
|
490
445
|
continue;
|
|
491
446
|
}
|
|
492
|
-
var
|
|
493
|
-
if (
|
|
494
|
-
var
|
|
495
|
-
if (
|
|
496
|
-
var
|
|
497
|
-
var
|
|
498
|
-
|
|
499
|
-
absolutePath:
|
|
500
|
-
imports:
|
|
447
|
+
var T = traceCallToImportSource(v, i, n.program, y);
|
|
448
|
+
if (T && !g.has(T)) {
|
|
449
|
+
var F = n.program.getSourceFile(T);
|
|
450
|
+
if (F) {
|
|
451
|
+
var b = getTurboOutputPath(r.turboOutputPath, m.schema);
|
|
452
|
+
var C = collectImportsFromSourceFile(F, r.pluginConfig, t.resolveModuleName.bind(t), t.resolveModulePath.bind(t), r.rootPath, b, !!t.wasOriginallyNodeNext);
|
|
453
|
+
g.set(T, {
|
|
454
|
+
absolutePath: T,
|
|
455
|
+
imports: C
|
|
501
456
|
});
|
|
502
457
|
}
|
|
503
458
|
}
|
|
504
|
-
var
|
|
505
|
-
var
|
|
506
|
-
var
|
|
459
|
+
var N = JSON.stringify(m.node.text);
|
|
460
|
+
var P = x.hashCallExpression(v, m.schema);
|
|
461
|
+
var w = P.hashable && P.documentHash ? getCachedDocuments(m.schema).get(N) : void 0;
|
|
507
462
|
var E = void 0;
|
|
508
|
-
var
|
|
509
|
-
if (
|
|
510
|
-
E =
|
|
511
|
-
|
|
463
|
+
var O = !1;
|
|
464
|
+
if (w && w.documentHash === P.documentHash) {
|
|
465
|
+
E = w.documentType;
|
|
466
|
+
O = !0;
|
|
512
467
|
} else {
|
|
513
|
-
var
|
|
514
|
-
if (!
|
|
468
|
+
var H = u.getTypeAtLocation(v);
|
|
469
|
+
if (!H.symbol || "TadaDocumentNode" !== H.symbol.getEscapedName()) {
|
|
515
470
|
f.push({
|
|
516
471
|
message: 'The discovered document is not of type "TadaDocumentNode".\nIf this is unexpected, please file an issue describing your case.',
|
|
517
472
|
file: h.fileName,
|
|
@@ -520,19 +475,19 @@ async function* _runTurbo(r) {
|
|
|
520
475
|
});
|
|
521
476
|
continue;
|
|
522
477
|
}
|
|
523
|
-
E = u.typeToString(
|
|
478
|
+
E = u.typeToString(H, v, S);
|
|
524
479
|
}
|
|
525
|
-
|
|
526
|
-
schemaName:
|
|
527
|
-
argumentKey:
|
|
480
|
+
p.push({
|
|
481
|
+
schemaName: m.schema,
|
|
482
|
+
argumentKey: N,
|
|
528
483
|
documentType: E,
|
|
529
|
-
documentHash:
|
|
530
|
-
isCached:
|
|
484
|
+
documentHash: P.documentHash,
|
|
485
|
+
isCached: O
|
|
531
486
|
});
|
|
532
487
|
}
|
|
533
488
|
return {
|
|
534
|
-
filePath:
|
|
535
|
-
documents:
|
|
489
|
+
filePath: c,
|
|
490
|
+
documents: p,
|
|
536
491
|
warnings: f
|
|
537
492
|
};
|
|
538
493
|
};
|
|
@@ -543,38 +498,38 @@ async function* _runTurbo(r) {
|
|
|
543
498
|
forceGc();
|
|
544
499
|
return process.memoryUsage().heapUsed >= h;
|
|
545
500
|
};
|
|
546
|
-
var
|
|
501
|
+
var F = u.program.getTypeChecker();
|
|
547
502
|
var x = createDocumentHasher({
|
|
548
503
|
get checker() {
|
|
549
|
-
return
|
|
504
|
+
return F;
|
|
550
505
|
},
|
|
551
506
|
schemaFingerprints: computeSchemaFingerprints(r)
|
|
552
507
|
});
|
|
553
|
-
var
|
|
554
|
-
for (var
|
|
555
|
-
if (
|
|
556
|
-
|
|
508
|
+
var b = 0;
|
|
509
|
+
for (var C of v) {
|
|
510
|
+
if (b > 0 && (b >= 1e3 || isHeapOverSoftLimit())) {
|
|
511
|
+
d = (u = t.build()).buildPluginInfo(r.pluginConfig);
|
|
557
512
|
forceGc();
|
|
558
|
-
|
|
559
|
-
|
|
513
|
+
F = u.program.getTypeChecker();
|
|
514
|
+
b = 0;
|
|
560
515
|
}
|
|
561
|
-
var
|
|
562
|
-
if (!
|
|
516
|
+
var N = u.getSourceFile(C);
|
|
517
|
+
if (!N) {
|
|
563
518
|
continue;
|
|
564
519
|
}
|
|
565
|
-
var {filePath:
|
|
566
|
-
|
|
520
|
+
var {filePath: P, documents: w, warnings: E} = processSourceFile(N, u, d, F);
|
|
521
|
+
b++;
|
|
567
522
|
yield {
|
|
568
523
|
kind: "FILE_TURBO",
|
|
569
|
-
filePath:
|
|
570
|
-
documents:
|
|
524
|
+
filePath: P,
|
|
525
|
+
documents: w,
|
|
571
526
|
warnings: E
|
|
572
527
|
};
|
|
573
528
|
}
|
|
574
|
-
if (
|
|
529
|
+
if (g.size > 0) {
|
|
575
530
|
yield {
|
|
576
531
|
kind: "GRAPHQL_SOURCES",
|
|
577
|
-
sources: Array.from(
|
|
532
|
+
sources: Array.from(g.values())
|
|
578
533
|
};
|
|
579
534
|
}
|
|
580
535
|
}
|
|
@@ -590,11 +545,11 @@ function computeSchemaFingerprints(e) {
|
|
|
590
545
|
}
|
|
591
546
|
var s = void 0;
|
|
592
547
|
try {
|
|
593
|
-
s =
|
|
548
|
+
s = p.readFileSync(f.resolve(a, n), "utf8");
|
|
594
549
|
} catch {
|
|
595
550
|
continue;
|
|
596
551
|
}
|
|
597
|
-
var u =
|
|
552
|
+
var u = d.createHash("sha256").update(s).digest("hex");
|
|
598
553
|
r.set(t, `sha256:${u.slice(0, 32)}`);
|
|
599
554
|
}
|
|
600
555
|
return r;
|