@gql.tada/cli-utils 1.9.3 → 1.9.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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @gql.tada/cli-utils
2
2
 
3
+ ## 1.9.4
4
+
5
+ ### Patch Changes
6
+
7
+ - ⚠️ Fix `createExternalFiles()` resolving its `"."` scan directory (from a synthetic file with no directory component) against the calling process's `cwd` instead of the project directory, which could scan unrelated directories and add significant overhead when `generateTurbo`/`generateOutput` are invoked as a library from a different working directory
8
+ Submitted by [@coogie](https://github.com/coogie) (See [#589](https://github.com/0no-co/gql.tada/pull/589))
9
+ - ⚠️ Fix `check` and `generate-persisted` finding no files when a project's `tsconfig.json` lives in a subdirectory of the files it includes. Both commands filtered the program's source files to those nested inside the config's directory, which excluded every file of generated configs like Nuxt's `.nuxt/tsconfig.app.json`. The project's root file names are now taken into account as well
10
+ Submitted by [@JoviDeCroock](https://github.com/JoviDeCroock) (See [#593](https://github.com/0no-co/gql.tada/pull/593))
11
+ - Skip rewriting the output file when its contents are unchanged. `writeOutput()` always performed an atomic write and then forced `fs.utimes()` on the target to guarantee a change event, so file watchers reloaded even when `generate-output` and `turbo` produced no changes. The file is now left untouched when the generated contents match what is already on disk
12
+ Submitted by [@jonjomckay](https://github.com/jonjomckay) (See [#597](https://github.com/0no-co/gql.tada/pull/597))
13
+
3
14
  ## 1.9.3
4
15
 
5
16
  ### Patch Changes
@@ -3030,6 +3030,9 @@ var writeOutput = async (r, a) => {
3030
3030
  }));
3031
3031
  }));
3032
3032
  }
3033
+ if (await readOutput(r) === a) {
3034
+ return;
3035
+ }
3033
3036
  var n = t.dirname("string" != typeof r ? await d.realpath(r) : r);
3034
3037
  if (!await directoryExists(n)) {
3035
3038
  await d.mkdir(n, {
@@ -6551,6 +6554,78 @@ function maybeBind(t, r) {
6551
6554
  return r ? r.bind(t) : void 0;
6552
6555
  }
6553
6556
 
6557
+ var buildProgram = t => {
6558
+ var {program: r, virtualMap: a} = t;
6559
+ var n = ((t, r) => {
6560
+ var toKey = t => "win32" === process.platform ? t.toLowerCase() : t;
6561
+ var a = new Set([ toKey(u.resolve(t)) ]);
6562
+ for (var n of r) {
6563
+ if (u.isAbsolute(n)) {
6564
+ a.add(toKey(u.dirname(n)));
6565
+ }
6566
+ }
6567
+ return t => {
6568
+ var r = toKey(u.dirname(u.resolve(t)));
6569
+ for (;;) {
6570
+ if (a.has(r)) {
6571
+ return !0;
6572
+ }
6573
+ var n = u.dirname(r);
6574
+ if (n === r) {
6575
+ return !1;
6576
+ }
6577
+ r = n;
6578
+ }
6579
+ };
6580
+ })(t.projectRoot, t.rootNames);
6581
+ var i = maybeBind(r, r.isSourceFileFromExternalLibrary);
6582
+ var o = maybeBind(r, r.getModeForResolutionAtIndex);
6583
+ var s = maybeBind(r, r.getSourceFile);
6584
+ var l = maybeBind(r, r.getSourceFiles);
6585
+ var mapSourceFileFn = t => (n, ...i) => {
6586
+ var o = n && a.get(n.fileName);
6587
+ if (o && o.sourceFileId === n?.fileName) {
6588
+ n = s(o.generatedFileId) || n;
6589
+ }
6590
+ return t.call(r, n, ...i);
6591
+ };
6592
+ return Object.assign(r, {
6593
+ getSyntacticDiagnostics: mapSourceFileFn(r.getSyntacticDiagnostics),
6594
+ getSemanticDiagnostics: mapSourceFileFn(r.getSemanticDiagnostics),
6595
+ getDeclarationDiagnostics: mapSourceFileFn(r.getDeclarationDiagnostics),
6596
+ isSourceFileDefaultLibrary: mapSourceFileFn(r.isSourceFileDefaultLibrary),
6597
+ getModeForUsageLocation: mapSourceFileFn(r.getModeForUsageLocation),
6598
+ isSourceFileFromExternalLibrary(t) {
6599
+ var r = a.get(t.fileName);
6600
+ return !(!r || r.sourceFileId !== t.fileName) || i(t);
6601
+ },
6602
+ getSourceFiles() {
6603
+ var t = [];
6604
+ for (var a of l()) {
6605
+ if (n(a.fileName) && !r.isSourceFileFromExternalLibrary(a)) {
6606
+ t.push(a);
6607
+ }
6608
+ }
6609
+ return t;
6610
+ },
6611
+ getSourceFile(t) {
6612
+ var r = a.get(t);
6613
+ if (r && r.sourceFileId === t) {
6614
+ t = r.generatedFileId;
6615
+ }
6616
+ return s(t);
6617
+ },
6618
+ getModeForResolutionAtIndex(t, r) {
6619
+ var n = a.get(t.fileName);
6620
+ if (n && n.sourceFileId === t.fileName) {
6621
+ t = s(n.generatedFileId) || t;
6622
+ r = n.getGeneratedOffset(r)?.[0] ?? r;
6623
+ }
6624
+ return o(t, r);
6625
+ }
6626
+ });
6627
+ };
6628
+
6554
6629
  var buildLanguageService = t => {
6555
6630
  var {virtualMap: r} = t;
6556
6631
  var a = l.createLanguageService(t.languageServiceHost, t.documentRegistry);
@@ -6622,58 +6697,11 @@ var buildLanguageService = t => {
6622
6697
  return i;
6623
6698
  } else {
6624
6699
  var r = n();
6625
- return r ? i = (t => {
6626
- var {program: r, virtualMap: a, projectRoot: n} = t;
6627
- var i = maybeBind(r, r.isSourceFileFromExternalLibrary);
6628
- var o = maybeBind(r, r.getModeForResolutionAtIndex);
6629
- var s = maybeBind(r, r.getSourceFile);
6630
- var l = maybeBind(r, r.getSourceFiles);
6631
- var mapSourceFileFn = t => (n, ...i) => {
6632
- var o = n && a.get(n.fileName);
6633
- if (o && o.sourceFileId === n?.fileName) {
6634
- n = s(o.generatedFileId) || n;
6635
- }
6636
- return t.call(r, n, ...i);
6637
- };
6638
- return Object.assign(r, {
6639
- getSyntacticDiagnostics: mapSourceFileFn(r.getSyntacticDiagnostics),
6640
- getSemanticDiagnostics: mapSourceFileFn(r.getSemanticDiagnostics),
6641
- getDeclarationDiagnostics: mapSourceFileFn(r.getDeclarationDiagnostics),
6642
- isSourceFileDefaultLibrary: mapSourceFileFn(r.isSourceFileDefaultLibrary),
6643
- getModeForUsageLocation: mapSourceFileFn(r.getModeForUsageLocation),
6644
- isSourceFileFromExternalLibrary(t) {
6645
- var r = a.get(t.fileName);
6646
- return !(!r || r.sourceFileId !== t.fileName) || i(t);
6647
- },
6648
- getSourceFiles() {
6649
- var t = [];
6650
- for (var a of l()) {
6651
- if (!u.relative(n, a.fileName).startsWith("..") && !r.isSourceFileFromExternalLibrary(a)) {
6652
- t.push(a);
6653
- }
6654
- }
6655
- return t;
6656
- },
6657
- getSourceFile(t) {
6658
- var r = a.get(t);
6659
- if (r && r.sourceFileId === t) {
6660
- t = r.generatedFileId;
6661
- }
6662
- return s(t);
6663
- },
6664
- getModeForResolutionAtIndex(t, r) {
6665
- var n = a.get(t.fileName);
6666
- if (n && n.sourceFileId === t.fileName) {
6667
- t = s(n.generatedFileId) || t;
6668
- r = n.getGeneratedOffset(r)?.[0] ?? r;
6669
- }
6670
- return o(t, r);
6671
- }
6672
- });
6673
- })({
6700
+ return r ? i = buildProgram({
6674
6701
  program: r,
6675
6702
  virtualMap: t.virtualMap,
6676
- projectRoot: t.projectRoot
6703
+ projectRoot: t.projectRoot,
6704
+ rootNames: t.rootNames
6677
6705
  }) : void 0;
6678
6706
  }
6679
6707
  },
@@ -6909,17 +6937,20 @@ var programFactory = t => {
6909
6937
  var i = new Set(o);
6910
6938
  var s = new Set([ t.rootPath ]);
6911
6939
  for (var c of o) {
6912
- s.add(u.dirname(c));
6913
- }
6914
- for (var d of s) {
6915
- for (var f of n.readDirectory(d, r, [ "**/node_modules" ])) {
6916
- if (!i.has(f)) {
6917
- i.add(f);
6918
- var p = n.readFile(f, "utf8");
6919
- if (p) {
6940
+ var d = u.dirname(c);
6941
+ if (u.isAbsolute(d)) {
6942
+ s.add(d);
6943
+ }
6944
+ }
6945
+ for (var f of s) {
6946
+ for (var p of n.readDirectory(f, r, [ "**/node_modules" ])) {
6947
+ if (!i.has(p)) {
6948
+ i.add(p);
6949
+ var g = n.readFile(p, "utf8");
6950
+ if (g) {
6920
6951
  a.push(h.createSourceFile({
6921
- fileId: f,
6922
- sourceText: p
6952
+ fileId: p,
6953
+ sourceText: g
6923
6954
  }, l.ScriptKind.External));
6924
6955
  }
6925
6956
  }