one 1.17.3 → 1.17.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.
Files changed (86) hide show
  1. package/dist/cjs/typed-routes/generateRouteTypes.cjs +12 -2
  2. package/dist/cjs/typed-routes/generateRouteTypes.native.js +12 -2
  3. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  4. package/dist/cjs/typed-routes/generateRouteTypes.test.cjs +58 -0
  5. package/dist/cjs/typed-routes/generateRouteTypes.test.native.js +61 -0
  6. package/dist/cjs/typed-routes/generateRouteTypes.test.native.js.map +1 -0
  7. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.cjs +5 -5
  8. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js +5 -5
  9. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  10. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.test.cjs +18 -0
  11. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.test.native.js +25 -0
  12. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.test.native.js.map +1 -0
  13. package/dist/cjs/utils/routeFileWatch.cjs +58 -0
  14. package/dist/cjs/utils/routeFileWatch.native.js +62 -0
  15. package/dist/cjs/utils/routeFileWatch.native.js.map +1 -0
  16. package/dist/cjs/utils/routeFileWatch.test.cjs +92 -0
  17. package/dist/cjs/utils/routeFileWatch.test.native.js +95 -0
  18. package/dist/cjs/utils/routeFileWatch.test.native.js.map +1 -0
  19. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +16 -7
  20. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +16 -7
  21. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  22. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +111 -0
  23. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +116 -0
  24. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -0
  25. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +9 -9
  26. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +10 -10
  27. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  28. package/dist/esm/typed-routes/generateRouteTypes.mjs +13 -3
  29. package/dist/esm/typed-routes/generateRouteTypes.mjs.map +1 -1
  30. package/dist/esm/typed-routes/generateRouteTypes.native.js +13 -3
  31. package/dist/esm/typed-routes/generateRouteTypes.native.js.map +1 -1
  32. package/dist/esm/typed-routes/generateRouteTypes.test.mjs +35 -0
  33. package/dist/esm/typed-routes/generateRouteTypes.test.mjs.map +1 -0
  34. package/dist/esm/typed-routes/generateRouteTypes.test.native.js +35 -0
  35. package/dist/esm/typed-routes/generateRouteTypes.test.native.js.map +1 -0
  36. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs +5 -5
  37. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs.map +1 -1
  38. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js +5 -5
  39. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  40. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.test.mjs +19 -0
  41. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.test.mjs.map +1 -0
  42. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.test.native.js +23 -0
  43. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.test.native.js.map +1 -0
  44. package/dist/esm/utils/routeFileWatch.mjs +20 -0
  45. package/dist/esm/utils/routeFileWatch.mjs.map +1 -0
  46. package/dist/esm/utils/routeFileWatch.native.js +21 -0
  47. package/dist/esm/utils/routeFileWatch.native.js.map +1 -0
  48. package/dist/esm/utils/routeFileWatch.test.mjs +69 -0
  49. package/dist/esm/utils/routeFileWatch.test.mjs.map +1 -0
  50. package/dist/esm/utils/routeFileWatch.test.native.js +69 -0
  51. package/dist/esm/utils/routeFileWatch.test.native.js.map +1 -0
  52. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +16 -7
  53. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  54. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +16 -7
  55. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  56. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +88 -0
  57. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -0
  58. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +90 -0
  59. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -0
  60. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +9 -9
  61. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
  62. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +10 -10
  63. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  64. package/package.json +10 -10
  65. package/src/typed-routes/generateRouteTypes.test.ts +53 -0
  66. package/src/typed-routes/generateRouteTypes.ts +14 -3
  67. package/src/typed-routes/getTypedRoutesDeclarationFile.test.ts +22 -0
  68. package/src/typed-routes/getTypedRoutesDeclarationFile.ts +5 -5
  69. package/src/utils/routeFileWatch.test.ts +94 -0
  70. package/src/utils/routeFileWatch.ts +40 -0
  71. package/src/vite/plugins/fileSystemRouterPlugin.test.ts +106 -0
  72. package/src/vite/plugins/fileSystemRouterPlugin.tsx +21 -13
  73. package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +16 -17
  74. package/types/typed-routes/generateRouteTypes.d.ts.map +1 -1
  75. package/types/typed-routes/generateRouteTypes.test.d.ts +2 -0
  76. package/types/typed-routes/generateRouteTypes.test.d.ts.map +1 -0
  77. package/types/typed-routes/getTypedRoutesDeclarationFile.test.d.ts +2 -0
  78. package/types/typed-routes/getTypedRoutesDeclarationFile.test.d.ts.map +1 -0
  79. package/types/utils/routeFileWatch.d.ts +9 -0
  80. package/types/utils/routeFileWatch.d.ts.map +1 -0
  81. package/types/utils/routeFileWatch.test.d.ts +2 -0
  82. package/types/utils/routeFileWatch.test.d.ts.map +1 -0
  83. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  84. package/types/vite/plugins/fileSystemRouterPlugin.test.d.ts +2 -0
  85. package/types/vite/plugins/fileSystemRouterPlugin.test.d.ts.map +1 -0
  86. package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["writeFile","dirname","join","FSExtra","micromatch","removeSupportedExtensions","globbedRoutesToRouteContext","globDir","getTypedRoutesDeclarationFile","injectRouteHelpers","generateRouteTypes","outFile","routerRoot","ignoredRouteFiles","typedRoutesMode","routePaths","length","not","matchBase","routes","reduce","acc","cur","vitePath","replace","context","declarations","outDir","ensureDir","mode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","routePath","value","includes","startsWith","endsWith","fullPath","process","cwd","routeName","cleanRouteName"],"sources":["../../../src/typed-routes/generateRouteTypes.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAiB;AAC1B,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,OAAOC,OAAA,MAAa;AACpB,OAAOC,UAAA,MAAgB;AACvB,SAASC,yBAAA,QAAiC;AAC1C,SAASC,2BAAA,QAAmC;AAC5C,SAASC,OAAA,QAAe;AAExB,SAASC,6BAAA,QAAqC;AAC9C,SAA0BC,kBAAA,QAA0B;AAEpD,eAAsBC,mBACpBC,OAAA,EACAC,UAAA,EACAC,iBAAA,EACAC,eAAA,EACA;EACA,IAAIC,UAAA,GAAaR,OAAA,CAAQK,UAAU;EACnC,IAAIC,iBAAA,IAAqBA,iBAAA,CAAkBG,MAAA,GAAS,GAAG;IACrDD,UAAA,GAAaX,UAAA,CAAWa,GAAA,CAAIF,UAAA,EAAYF,iBAAA,EAAmB;MAAA;MAEzDK,SAAA,EAAW;IACb,CAAC;EACH;EAIA,IAAAC,MAAM,GAAAJ,UAAS,CAAAK,MAAW,WAAaC,GAAA,EAAAC,GAAQ;IAC7C,IAAAC,QAAM,OAAWX,UAAI,IAAUU,GAAI,CAAAE,OAAI,QAAQ,IAAS,GAAG;IAC3DH,GAAA,CAAIE,QAAQ,IAAI,CAAC;IACjB,OAAOF,GAAA;EACT,GAAG,CAAC,CAAC;EACL,IAAAI,OAAM,GAAAnB,2BAAU,CAAAa,MAA4B,EAAAP,UAAQ;EACpD,IAAAc,YAAM,GAAAlB,6BAAe,CAAAiB,OAA8B;EACnD,IAAAE,MAAM,GAAA1B,OAAS,CAAAU,OAAQ;EACvB,MAAMR,OAAA,CAAQyB,SAAA,CAAUD,MAAM;EAC9B,MAAM3B,SAAA,CAAUW,OAAA,EAASe,YAAY;EAGrC,IAAIZ,eAAA,EAAiB;IACnB,IAAAe,IAAM,GAAAf,eAAmB,WAAoB,SAAS,YAAS;IAG/D,IAAAgB,yBAAwB,OAAY;MAAAC,iBAAA;MAAAC,cAAA;IAElC;MAME,SAAAC,SAAA,GAAAlB,UAAA,CAAAmB,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QACF,IAAAS,SAAA,GAAAH,KAAA,CAAAI,KAAA;QAIA,IAAMD,SAAA,CAAAE,QAAgB,UAAY,KAAGF,SAAA,CAAYE,QAAA,CAAS,WAAAF,SAAA,CAAAG,UAAA,SAAAH,SAAA,CAAAI,QAAA;UAC1D;QAKA;QAGA,IAAKC,QAAA,GAAA1C,IAAe,CAAA2C,OAAA,CAAAC,GAAW,CAAG,GAAGlC,UAAA,EAAA2B,SAAA;QACnC,IAAAQ,SAAA,GAAAR,SAAuB,CAAAf,OAAA,cAAAA,OAAA,iBAAAA,OAAA,iBAAAA,OAAA;QACzB,IAAAwB,cAAA,GAAA3C,yBAAA,CAAA0C,SAAA,EAAAvB,OAAA;QAGA,IAAK,CAAAwB,cAAe,CAAAN,UAAY,IAAG;UACjCM,cAAA,SAAAA,cAAA;QACF;QAEA,IAAM,CAAAA,cAAA,CAAAP,QAAmB,KAAU;UACrC;QACF;QACF,MAAAhC,kBAAA,CAAAmC,QAAA,EAAAI,cAAA,EAAAnB,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["readFile","writeFile","dirname","join","FSExtra","micromatch","removeSupportedExtensions","globbedRoutesToRouteContext","globDir","getTypedRoutesDeclarationFile","injectRouteHelpers","generateRouteTypes","outFile","routerRoot","ignoredRouteFiles","typedRoutesMode","routePaths","length","not","matchBase","routes","reduce","acc","cur","vitePath","replace","context","declarations","outDir","currentDeclarations","error","code","ensureDir","mode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","routePath","value","includes","startsWith","endsWith","fullPath","process","cwd","routeName","cleanRouteName"],"sources":["../../../src/typed-routes/generateRouteTypes.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,SAAA,QAAiB;AACpC,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,OAAOC,OAAA,MAAa;AACpB,OAAOC,UAAA,MAAgB;AACvB,SAASC,yBAAA,QAAiC;AAC1C,SAASC,2BAAA,QAAmC;AAC5C,SAASC,OAAA,QAAe;AAExB,SAASC,6BAAA,QAAqC;AAC9C,SAA0BC,kBAAA,QAA0B;AAEpD,eAAsBC,mBACpBC,OAAA,EACAC,UAAA,EACAC,iBAAA,EACAC,eAAA,EACA;EACA,IAAIC,UAAA,GAAaR,OAAA,CAAQK,UAAU;EACnC,IAAIC,iBAAA,IAAqBA,iBAAA,CAAkBG,MAAA,GAAS,GAAG;IACrDD,UAAA,GAAaX,UAAA,CAAWa,GAAA,CAAIF,UAAA,EAAYF,iBAAA,EAAmB;MAAA;MAEzDK,SAAA,EAAW;IACb,CAAC;EACH;EAIA,IAAAC,MAAM,GAAAJ,UAAS,CAAAK,MAAW,WAAaC,GAAA,EAAAC,GAAQ;IAC7C,IAAAC,QAAM,OAAWX,UAAI,IAAUU,GAAI,CAAAE,OAAI,QAAQ,IAAS,GAAG;IAC3DH,GAAA,CAAIE,QAAQ,IAAI,CAAC;IACjB,OAAOF,GAAA;EACT,GAAG,CAAC,CAAC;EACL,IAAAI,OAAM,GAAAnB,2BAAU,CAAAa,MAA4B,EAAAP,UAAQ;EACpD,IAAAc,YAAM,GAAAlB,6BAAe,CAAAiB,OAA8B;EACnD,IAAAE,MAAM,GAAA1B,OAAS,CAAAU,OAAQ;EACvB,IAAIiB,mBAAA;EACJ,IAAI;IACFA,mBAAA,GAAsB,MAAM7B,QAAA,CAASY,OAAA,EAAS,MAAM;EACtD,SAASkB,KAAA,EAAO;IACd,IAAKA,KAAA,CAAgCC,IAAA,KAAS,UAAU;MACtD,MAAMD,KAAA;IACR;EACF;EAEA,IAAID,mBAAA,KAAwBF,YAAA,EAAc;IACxC,MAAMvB,OAAA,CAAQ4B,SAAA,CAAUJ,MAAM;IAC9B,MAAM3B,SAAA,CAAUW,OAAA,EAASe,YAAY;EACvC;EAGA,IAAIZ,eAAA,EAAiB;IACnB,IAAAkB,IAAM,GAAAlB,eAAmB,WAAoB,SAAS,YAAS;IAG/D,IAAAmB,yBAAwB,OAAY;MAAAC,iBAAA;MAAAC,cAAA;IAElC;MAME,SAAAC,SAAA,GAAArB,UAAA,CAAAsB,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QACF,IAAAS,SAAA,GAAAH,KAAA,CAAAI,KAAA;QAIA,IAAMD,SAAA,CAAAE,QAAgB,UAAY,KAAGF,SAAA,CAAYE,QAAA,CAAS,WAAAF,SAAA,CAAAG,UAAA,SAAAH,SAAA,CAAAI,QAAA;UAC1D;QAKA;QAGA,IAAKC,QAAA,GAAA7C,IAAe,CAAA8C,OAAA,CAAAC,GAAW,CAAG,GAAGrC,UAAA,EAAA8B,SAAA;QACnC,IAAAQ,SAAA,GAAAR,SAAuB,CAAAlB,OAAA,cAAAA,OAAA,iBAAAA,OAAA,iBAAAA,OAAA;QACzB,IAAA2B,cAAA,GAAA9C,yBAAA,CAAA6C,SAAA,EAAA1B,OAAA;QAGA,IAAK,CAAA2B,cAAe,CAAAN,UAAY,IAAG;UACjCM,cAAA,SAAAA,cAAA;QACF;QAEA,IAAM,CAAAA,cAAA,CAAAP,QAAmB,KAAU;UACrC;QACF;QACF,MAAAnC,kBAAA,CAAAsC,QAAA,EAAAI,cAAA,EAAAnB,IAAA","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import { mkdirSync, mkdtempSync, rmSync, statSync, utimesSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import path from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { generateRouteTypes } from "./generateRouteTypes.mjs";
6
+ describe(generateRouteTypes, () => {
7
+ const originalCwd = process.cwd();
8
+ let tempRoot;
9
+ afterEach(() => {
10
+ process.chdir(originalCwd);
11
+ if (tempRoot) {
12
+ rmSync(tempRoot, {
13
+ recursive: true,
14
+ force: true
15
+ });
16
+ tempRoot = void 0;
17
+ }
18
+ });
19
+ it("does not rewrite routes declarations when contents are unchanged", async () => {
20
+ tempRoot = mkdtempSync(path.join(tmpdir(), "one-routes-types-"));
21
+ const appDir = path.join(tempRoot, "app");
22
+ mkdirSync(appDir);
23
+ writeFileSync(path.join(appDir, "index+ssg.tsx"), "export default function Index() { return null }\n");
24
+ writeFileSync(path.join(appDir, "[slug]+ssg.tsx"), "export default function Slug() { return null }\n");
25
+ process.chdir(tempRoot);
26
+ const outFile = path.join("app", "routes.d.ts");
27
+ await generateRouteTypes(outFile, "app");
28
+ const oldDate = /* @__PURE__ */new Date("2001-01-01T00:00:00.000Z");
29
+ utimesSync(outFile, oldDate, oldDate);
30
+ const previousMtimeMs = statSync(outFile).mtimeMs;
31
+ await generateRouteTypes(outFile, "app");
32
+ expect(statSync(outFile).mtimeMs).toBe(previousMtimeMs);
33
+ });
34
+ });
35
+ //# sourceMappingURL=generateRouteTypes.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mkdirSync","mkdtempSync","rmSync","statSync","utimesSync","writeFileSync","tmpdir","path","afterEach","describe","expect","it","generateRouteTypes","originalCwd","process","cwd","tempRoot","chdir","recursive","force","join","appDir","outFile","oldDate","Date","previousMtimeMs","mtimeMs","toBe"],"sources":["../../../src/typed-routes/generateRouteTypes.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,SAAA,EACAC,WAAA,EACAC,MAAA,EACAC,QAAA,EACAC,UAAA,EACAC,aAAA,QACK;AACP,SAASC,MAAA,QAAc;AACvB,OAAOC,IAAA,MAAU;AACjB,SAASC,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAChD,SAASC,kBAAA,QAA0B;AAEnCH,QAAA,CAASG,kBAAA,EAAoB,MAAM;EACjC,MAAMC,WAAA,GAAcC,OAAA,CAAQC,GAAA,CAAI;EAChC,IAAIC,QAAA;EAEJR,SAAA,CAAU,MAAM;IACdM,OAAA,CAAQG,KAAA,CAAMJ,WAAW;IAEzB,IAAIG,QAAA,EAAU;MACZd,MAAA,CAAOc,QAAA,EAAU;QAAEE,SAAA,EAAW;QAAMC,KAAA,EAAO;MAAK,CAAC;MACjDH,QAAA,GAAW;IACb;EACF,CAAC;EAEDL,EAAA,CAAG,oEAAoE,YAAY;IACjFK,QAAA,GAAWf,WAAA,CAAYM,IAAA,CAAKa,IAAA,CAAKd,MAAA,CAAO,GAAG,mBAAmB,CAAC;IAC/D,MAAMe,MAAA,GAASd,IAAA,CAAKa,IAAA,CAAKJ,QAAA,EAAU,KAAK;IACxChB,SAAA,CAAUqB,MAAM;IAChBhB,aAAA,CACEE,IAAA,CAAKa,IAAA,CAAKC,MAAA,EAAQ,eAAe,GACjC,mDACF;IACAhB,aAAA,CACEE,IAAA,CAAKa,IAAA,CAAKC,MAAA,EAAQ,gBAAgB,GAClC,kDACF;IAEAP,OAAA,CAAQG,KAAA,CAAMD,QAAQ;IAEtB,MAAMM,OAAA,GAAUf,IAAA,CAAKa,IAAA,CAAK,OAAO,aAAa;IAC9C,MAAMR,kBAAA,CAAmBU,OAAA,EAAS,KAAK;IAEvC,MAAMC,OAAA,GAAU,mBAAIC,IAAA,CAAK,0BAA0B;IACnDpB,UAAA,CAAWkB,OAAA,EAASC,OAAA,EAASA,OAAO;IACpC,MAAME,eAAA,GAAkBtB,QAAA,CAASmB,OAAO,EAAEI,OAAA;IAE1C,MAAMd,kBAAA,CAAmBU,OAAA,EAAS,KAAK;IAEvCZ,MAAA,CAAOP,QAAA,CAASmB,OAAO,EAAEI,OAAO,EAAEC,IAAA,CAAKF,eAAe;EACxD,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import { mkdirSync, mkdtempSync, rmSync, statSync, utimesSync, writeFileSync } from "fs";
2
+ import { tmpdir } from "os";
3
+ import path from "path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { generateRouteTypes } from "./generateRouteTypes.native.js";
6
+ describe(generateRouteTypes, function () {
7
+ var originalCwd = process.cwd();
8
+ var tempRoot;
9
+ afterEach(function () {
10
+ process.chdir(originalCwd);
11
+ if (tempRoot) {
12
+ rmSync(tempRoot, {
13
+ recursive: true,
14
+ force: true
15
+ });
16
+ tempRoot = void 0;
17
+ }
18
+ });
19
+ it("does not rewrite routes declarations when contents are unchanged", async function () {
20
+ tempRoot = mkdtempSync(path.join(tmpdir(), "one-routes-types-"));
21
+ var appDir = path.join(tempRoot, "app");
22
+ mkdirSync(appDir);
23
+ writeFileSync(path.join(appDir, "index+ssg.tsx"), "export default function Index() { return null }\n");
24
+ writeFileSync(path.join(appDir, "[slug]+ssg.tsx"), "export default function Slug() { return null }\n");
25
+ process.chdir(tempRoot);
26
+ var outFile = path.join("app", "routes.d.ts");
27
+ await generateRouteTypes(outFile, "app");
28
+ var oldDate = /* @__PURE__ */new Date("2001-01-01T00:00:00.000Z");
29
+ utimesSync(outFile, oldDate, oldDate);
30
+ var previousMtimeMs = statSync(outFile).mtimeMs;
31
+ await generateRouteTypes(outFile, "app");
32
+ expect(statSync(outFile).mtimeMs).toBe(previousMtimeMs);
33
+ });
34
+ });
35
+ //# sourceMappingURL=generateRouteTypes.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mkdirSync","mkdtempSync","rmSync","statSync","utimesSync","writeFileSync","tmpdir","path","afterEach","describe","expect","it","generateRouteTypes","originalCwd","process","cwd","tempRoot","chdir","recursive","force","join","appDir","outFile","oldDate","Date","previousMtimeMs","mtimeMs","toBe"],"sources":["../../../src/typed-routes/generateRouteTypes.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,SAAA,EAAAC,WAAA,EAAAC,MAAA,EAAAC,QAAA,EAAAC,UAAA,EAAAC,aAAA;AAAA,SACEC,MAAA;AAAA,OACAC,IAAA;AAAA,SACAC,SAAA,EAAAC,QAAA,EAAAC,MAAA,EAAAC,EAAA;AAAA,SACAC,kBAAA;AAAAH,QACA,CAAAG,kBAAA;EACA,IAAAC,WAAA,GAAAC,OAAA,CAAAC,GAAA;EAAA,IAAAC,QACK;EACPR,SAAS,aAAc;IACvBM,OAAO,CAAAG,KAAU,CAAAJ,WAAA;IACjB,IAAAG,QAAS;MACTd,MAAS,CAAAc,QAAA;QAETE,SAAS;QACDC,KAAA;MACF;MAEJH,QAAU,QAAM;IACd;EAEA;EACEL,EAAA,mEAAiD;IACjDK,QAAA,GAAAf,WAAW,CAAAM,IAAA,CAAAa,IAAA,CAAAd,MAAA;IACb,IAAAe,MAAA,GAAAd,IAAA,CAAAa,IAAA,CAAAJ,QAAA;IACDhB,SAAA,CAAAqB,MAAA;IAEDhB,aAAG,CAAAE,IAAA,CAAAa,IAAA,CAAAC,MAAA,uEAAgF;IACjFhB,aAAW,CAAAE,IAAA,CAAAa,IAAY,CAAAC,MAAK,kBAAe,qDAAoB;IAC/DP,OAAM,CAAAG,KAAA,CAAAD,QAAc;IACpB,IAAAM,OAAU,GAAAf,IAAM,CAAAa,IAAA;IAChB,MAAAR,kBAAA,CAAAU,OAAA;IAAA,IACEC,OAAK,GAAK,eAAQ,IAAAC,IAAe;IAAApB,UACjC,CAAAkB,OAAA,EAAAC,OAAA,EAAAA,OAAA;IACF,IAAAE,eAAA,GAAAtB,QAAA,CAAAmB,OAAA,EAAAI,OAAA;IACA,MAAAd,kBAAA,CAAAU,OAAA;IAAAZ,MACE,CAAKP,QAAK,CAAAmB,OAAQ,EAAAI,OAAA,EAAAC,IAAgB,CAAAF,eAAA;EAAA;AAClC","ignoreList":[]}
@@ -22,9 +22,9 @@ import type { OneRouter } from 'one'
22
22
  declare module 'one' {
23
23
  export namespace OneRouter {
24
24
  export interface __routes<T extends string = string> extends Record<string, unknown> {
25
- StaticRoutes: ${setToUnionType(staticRoutes)}
26
- DynamicRoutes: ${setToUnionType(dynamicRoutes)}
27
- DynamicRouteTemplate: ${setToUnionType(dynamicRouteContextKeys)}
25
+ StaticRoutes:${setToUnionType(staticRoutes)}
26
+ DynamicRoutes:${setToUnionType(dynamicRoutes)}
27
+ DynamicRouteTemplate:${setToUnionType(dynamicRouteContextKeys)}
28
28
  IsTyped: true
29
29
  ${hasRoutes ? `RouteTypes: ${generateRouteTypesMap(dynamicRouteContextKeys)}` : ""}
30
30
  }
@@ -102,9 +102,9 @@ function addRouteNode(routeNode, parentRoutePath, staticRoutes, dynamicRoutes, d
102
102
  }
103
103
  }
104
104
  const setToUnionType = set => {
105
- if (set.size === 0) return "never";
105
+ if (set.size === 0) return " never";
106
106
  const sorted = [...set].sort();
107
- if (sorted.length === 1) return `\`${sorted[0]}\``;
107
+ if (sorted.length === 1) return ` \`${sorted[0]}\``;
108
108
  return "\n | " + sorted.map(s => `\`${s}\``).join("\n | ");
109
109
  };
110
110
  function generateCombinations(pathname) {
@@ -1 +1 @@
1
- {"version":3,"names":["getRoutes","isTypedRoute","removeSupportedExtensions","CATCH_ALL","SLUG","getTypedRoutesDeclarationFile","ctx","staticRoutes","Set","dynamicRoutes","dynamicRouteContextKeys","walkRouteNode","platformRoutes","ignoreEntryPoints","ignoreRequireErrors","hasRoutes","size","setToUnionType","generateRouteTypesMap","trim","routes","sort","entries","map","routePath","params","extractParams","paramsType","length","generateInlineParamsType","join","paramRegex","match","exec","push","name","isCatchAll","p","type","routeNode","parentRoutePath","addRouteNode","route","replace","child","children","startsWith","dynamic","path","generateCombinations","add","replaceAll","combination","set","sorted","s","pathname","groups","split","filter","part","endsWith","combinations","generate","currentIndex","currentPath","group","withoutGroup"],"sources":["../../../src/typed-routes/getTypedRoutesDeclarationFile.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getRoutes","isTypedRoute","removeSupportedExtensions","CATCH_ALL","SLUG","getTypedRoutesDeclarationFile","ctx","staticRoutes","Set","dynamicRoutes","dynamicRouteContextKeys","walkRouteNode","platformRoutes","ignoreEntryPoints","ignoreRequireErrors","hasRoutes","size","setToUnionType","generateRouteTypesMap","trim","routes","sort","entries","map","routePath","params","extractParams","paramsType","length","generateInlineParamsType","join","paramRegex","match","exec","push","name","isCatchAll","p","type","routeNode","parentRoutePath","addRouteNode","route","replace","child","children","startsWith","dynamic","path","generateCombinations","add","replaceAll","combination","set","sorted","s","pathname","groups","split","filter","part","endsWith","combinations","generate","currentIndex","currentPath","group","withoutGroup"],"sources":["../../../src/typed-routes/getTypedRoutesDeclarationFile.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -23,9 +23,9 @@ import type { OneRouter } from 'one'
23
23
  declare module 'one' {
24
24
  export namespace OneRouter {
25
25
  export interface __routes<T extends string = string> extends Record<string, unknown> {
26
- StaticRoutes: ${setToUnionType(staticRoutes)}
27
- DynamicRoutes: ${setToUnionType(dynamicRoutes)}
28
- DynamicRouteTemplate: ${setToUnionType(dynamicRouteContextKeys)}
26
+ StaticRoutes:${setToUnionType(staticRoutes)}
27
+ DynamicRoutes:${setToUnionType(dynamicRoutes)}
28
+ DynamicRouteTemplate:${setToUnionType(dynamicRouteContextKeys)}
29
29
  IsTyped: true
30
30
  ${hasRoutes ? `RouteTypes: ${generateRouteTypesMap(dynamicRouteContextKeys)}` : ""}
31
31
  }
@@ -160,9 +160,9 @@ function addRouteNode(routeNode, parentRoutePath, staticRoutes, dynamicRoutes, d
160
160
  }
161
161
  }
162
162
  var setToUnionType = function (set) {
163
- if (set.size === 0) return "never";
163
+ if (set.size === 0) return " never";
164
164
  var sorted = [...set].sort();
165
- if (sorted.length === 1) return `\`${sorted[0]}\``;
165
+ if (sorted.length === 1) return ` \`${sorted[0]}\``;
166
166
  return "\n | " + sorted.map(function (s) {
167
167
  return `\`${s}\``;
168
168
  }).join("\n | ");
@@ -1 +1 @@
1
- {"version":3,"names":["getRoutes","isTypedRoute","removeSupportedExtensions","CATCH_ALL","SLUG","getTypedRoutesDeclarationFile","ctx","staticRoutes","Set","dynamicRoutes","dynamicRouteContextKeys","walkRouteNode","platformRoutes","ignoreEntryPoints","ignoreRequireErrors","hasRoutes","size","setToUnionType","generateRouteTypesMap","trim","routes","sort","entries","map","routePath","params","extractParams","paramsType","length","generateInlineParamsType","join","paramRegex","match","exec","push","name","isCatchAll","p","type","routeNode","parentRoutePath","addRouteNode","route","replace","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","children","Symbol","iterator","_step","next","done","child","value","err","return","startsWith","dynamic","generateCombinations","path","add","replaceAll","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1"],"sources":["../../../src/typed-routes/getTypedRoutesDeclarationFile.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getRoutes","isTypedRoute","removeSupportedExtensions","CATCH_ALL","SLUG","getTypedRoutesDeclarationFile","ctx","staticRoutes","Set","dynamicRoutes","dynamicRouteContextKeys","walkRouteNode","platformRoutes","ignoreEntryPoints","ignoreRequireErrors","hasRoutes","size","setToUnionType","generateRouteTypesMap","trim","routes","sort","entries","map","routePath","params","extractParams","paramsType","length","generateInlineParamsType","join","paramRegex","match","exec","push","name","isCatchAll","p","type","routeNode","parentRoutePath","addRouteNode","route","replace","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","children","Symbol","iterator","_step","next","done","child","value","err","return","startsWith","dynamic","generateCombinations","path","add","replaceAll","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1"],"sources":["../../../src/typed-routes/getTypedRoutesDeclarationFile.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { getTypedRoutesDeclarationFile } from "./getTypedRoutesDeclarationFile.mjs";
3
+ function createRouteContext(paths) {
4
+ const context = () => ({
5
+ default() {}
6
+ });
7
+ Object.defineProperty(context, "keys", {
8
+ value: () => paths
9
+ });
10
+ return context;
11
+ }
12
+ describe(getTypedRoutesDeclarationFile, () => {
13
+ it("does not emit trailing whitespace for multi-line route unions", () => {
14
+ const declaration = getTypedRoutesDeclarationFile(createRouteContext(["./index+ssg.tsx", "./about+ssg.tsx", "./[slug]+ssg.tsx"]));
15
+ expect(declaration).toContain(" StaticRoutes:\n | `/`");
16
+ expect(declaration).not.toMatch(/[ \t]+$/m);
17
+ });
18
+ });
19
+ //# sourceMappingURL=getTypedRoutesDeclarationFile.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","getTypedRoutesDeclarationFile","createRouteContext","paths","context","default","Object","defineProperty","value","declaration","toContain","not","toMatch"],"sources":["../../../src/typed-routes/getTypedRoutesDeclarationFile.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAErC,SAASC,6BAAA,QAAqC;AAE9C,SAASC,mBAAmBC,KAAA,EAAiB;EAC3C,MAAMC,OAAA,GAAWA,CAAA,MAAO;IAAEC,QAAA,EAAU,CAAC;EAAE;EACvCC,MAAA,CAAOC,cAAA,CAAeH,OAAA,EAAS,QAAQ;IACrCI,KAAA,EAAOA,CAAA,KAAML;EACf,CAAC;EACD,OAAOC,OAAA;AACT;AAEAN,QAAA,CAASG,6BAAA,EAA+B,MAAM;EAC5CD,EAAA,CAAG,iEAAiE,MAAM;IACxE,MAAMS,WAAA,GAAcR,6BAAA,CAClBC,kBAAA,CAAmB,CAAC,mBAAmB,mBAAmB,kBAAkB,CAAC,CAC/E;IAEAH,MAAA,CAAOU,WAAW,EAAEC,SAAA,CAAU,oCAAoC;IAClEX,MAAA,CAAOU,WAAW,EAAEE,GAAA,CAAIC,OAAA,CAAQ,UAAU;EAC5C,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { getTypedRoutesDeclarationFile } from "./getTypedRoutesDeclarationFile.native.js";
3
+ function createRouteContext(paths) {
4
+ var context = function () {
5
+ return {
6
+ default() {}
7
+ };
8
+ };
9
+ Object.defineProperty(context, "keys", {
10
+ value: function () {
11
+ return paths;
12
+ }
13
+ });
14
+ return context;
15
+ }
16
+ describe(getTypedRoutesDeclarationFile, function () {
17
+ it("does not emit trailing whitespace for multi-line route unions", function () {
18
+ var declaration = getTypedRoutesDeclarationFile(createRouteContext(["./index+ssg.tsx", "./about+ssg.tsx", "./[slug]+ssg.tsx"]));
19
+ expect(declaration).toContain(" StaticRoutes:\n | `/`");
20
+ expect(declaration).not.toMatch(/[ \t]+$/m);
21
+ });
22
+ });
23
+ //# sourceMappingURL=getTypedRoutesDeclarationFile.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","getTypedRoutesDeclarationFile","createRouteContext","paths","context","default","Object","defineProperty","value","declaration"],"sources":["../../../src/typed-routes/getTypedRoutesDeclarationFile.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAErC,SAASC,6BAAA,QAAqC;AAE9C,SAASC,mBAAmBC,KAAA,EAAiB;EAC3C,IAAAC,OAAM,YAAAA,CAAA,EAAkB;IAAe;MACvCC,OAAOA,CAAA,GACL;IACD;EACD;EACFC,MAAA,CAAAC,cAAA,CAAAH,OAAA;IAEAI,KAAS,WAAAA,CAAA;MACJ,OAAAL,KAAA;IACD;EAAoB;EAC2D,OAC/EC,OAAA;AAEA;AACAN,QAAA,CAAAG,6BAAgC,cAAU;EAC5CD,EAAC;IACF,IAAAS,WAAA,GAAAR,6BAAA,CAAAC,kBAAA,E","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import path from "node:path";
2
+ const routeFileExtensionRe = /\.[jt]sx?$/;
3
+ function isRouteFilePath(filePath) {
4
+ return routeFileExtensionRe.test(filePath) && !filePath.endsWith(".d.ts");
5
+ }
6
+ function isPathInsideDirectory(filePath, directory) {
7
+ const relativePath = path.relative(path.resolve(directory), path.resolve(filePath));
8
+ return relativePath !== "" && !relativePath.startsWith("..") && !path.isAbsolute(relativePath);
9
+ }
10
+ function isRouteFileWatchEvent({
11
+ event,
12
+ filePath,
13
+ routerRoot,
14
+ includeChangeEvents = false
15
+ }) {
16
+ const isRouteFileEvent = event === "add" || event === "delete" || event === "unlink" || includeChangeEvents && event === "change";
17
+ return isRouteFileEvent && isPathInsideDirectory(filePath, routerRoot) && isRouteFilePath(filePath);
18
+ }
19
+ export { isPathInsideDirectory, isRouteFilePath, isRouteFileWatchEvent };
20
+ //# sourceMappingURL=routeFileWatch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","routeFileExtensionRe","isRouteFilePath","filePath","test","endsWith","isPathInsideDirectory","directory","relativePath","relative","resolve","startsWith","isAbsolute","isRouteFileWatchEvent","event","routerRoot","includeChangeEvents","isRouteFileEvent"],"sources":["../../../src/utils/routeFileWatch.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEjB,MAAMC,oBAAA,GAAuB;AAEtB,SAASC,gBAAgBC,QAAA,EAAkB;EAChD,OAAOF,oBAAA,CAAqBG,IAAA,CAAKD,QAAQ,KAAK,CAACA,QAAA,CAASE,QAAA,CAAS,OAAO;AAC1E;AAEO,SAASC,sBAAsBH,QAAA,EAAkBI,SAAA,EAAmB;EACzE,MAAMC,YAAA,GAAeR,IAAA,CAAKS,QAAA,CAAST,IAAA,CAAKU,OAAA,CAAQH,SAAS,GAAGP,IAAA,CAAKU,OAAA,CAAQP,QAAQ,CAAC;EAClF,OACEK,YAAA,KAAiB,MACjB,CAACA,YAAA,CAAaG,UAAA,CAAW,IAAI,KAC7B,CAACX,IAAA,CAAKY,UAAA,CAAWJ,YAAY;AAEjC;AAEO,SAASK,sBAAsB;EACpCC,KAAA;EACAX,QAAA;EACAY,UAAA;EACAC,mBAAA,GAAsB;AACxB,GAKG;EACD,MAAMC,gBAAA,GACJH,KAAA,KAAU,SACVA,KAAA,KAAU,YACVA,KAAA,KAAU,YACTE,mBAAA,IAAuBF,KAAA,KAAU;EAEpC,OACEG,gBAAA,IACAX,qBAAA,CAAsBH,QAAA,EAAUY,UAAU,KAC1Cb,eAAA,CAAgBC,QAAQ;AAE5B","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import path from "path";
2
+ var routeFileExtensionRe = /\.[jt]sx?$/;
3
+ function isRouteFilePath(filePath) {
4
+ return routeFileExtensionRe.test(filePath) && !filePath.endsWith(".d.ts");
5
+ }
6
+ function isPathInsideDirectory(filePath, directory) {
7
+ var relativePath = path.relative(path.resolve(directory), path.resolve(filePath));
8
+ return relativePath !== "" && !relativePath.startsWith("..") && !path.isAbsolute(relativePath);
9
+ }
10
+ function isRouteFileWatchEvent(param) {
11
+ var {
12
+ event,
13
+ filePath,
14
+ routerRoot,
15
+ includeChangeEvents = false
16
+ } = param;
17
+ var isRouteFileEvent = event === "add" || event === "delete" || event === "unlink" || includeChangeEvents && event === "change";
18
+ return isRouteFileEvent && isPathInsideDirectory(filePath, routerRoot) && isRouteFilePath(filePath);
19
+ }
20
+ export { isPathInsideDirectory, isRouteFilePath, isRouteFileWatchEvent };
21
+ //# sourceMappingURL=routeFileWatch.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","routeFileExtensionRe","isRouteFilePath","filePath","test","endsWith","isPathInsideDirectory","directory","relativePath","relative","resolve","startsWith","isAbsolute","isRouteFileWatchEvent","param","event","routerRoot","includeChangeEvents","isRouteFileEvent"],"sources":["../../../src/utils/routeFileWatch.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEjB,IAAAC,oBAAM,eAAuB;AAEtB,SAASC,gBAAgBC,QAAA,EAAkB;EAChD,OAAOF,oBAAA,CAAqBG,IAAA,CAAKD,QAAQ,KAAK,CAACA,QAAA,CAASE,QAAA,CAAS,OAAO;AAC1E;AAEO,SAASC,sBAAsBH,QAAA,EAAkBI,SAAA,EAAmB;EACzE,IAAAC,YAAM,GAAAR,IAAe,CAAAS,QAAK,CAAAT,IAAS,CAAAU,OAAK,CAAAH,SAAQ,GAASP,IAAG,CAAAU,OAAK,CAAAP,QAAQ,EAAQ;EACjF,OACEK,YAAA,KAAiB,MACjB,CAACA,YAAA,CAAaG,UAAA,CAAW,IAAI,KAC7B,CAACX,IAAA,CAAKY,UAAA,CAAWJ,YAAY;AAEjC;AAEO,SAASK,sBAAsBC,KAAA;EACpC;IAAAC,KAAA;IAAAZ,QAAA;IAAAa,UAAA;IAAAC,mBAAA;EAAA,IAAAH,KAAA;EACA,IAAAI,gBAAA,GAAAH,KAAA,cAAAA,KAAA,iBAAAA,KAAA,iBAAAE,mBAAA,IAAAF,KAAA;EACA,OAAAG,gBAAA,IAAAZ,qBAAA,CAAAH,QAAA,EAAAa,UAAA,KAAAd,eAAA,CAAAC,QAAA;AAAA;AAEF,SAMEG,qBAAM,EAMNJ,eACE,EAIJW,qBAAA","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ import path from "node:path";
2
+ import { describe, expect, it } from "vitest";
3
+ import { isPathInsideDirectory, isRouteFilePath, isRouteFileWatchEvent } from "./routeFileWatch.mjs";
4
+ describe(isRouteFilePath, () => {
5
+ it("matches route source files", () => {
6
+ expect(isRouteFilePath("/project/app/index.ts")).toBe(true);
7
+ expect(isRouteFilePath("/project/app/index.tsx")).toBe(true);
8
+ expect(isRouteFilePath("/project/app/index.js")).toBe(true);
9
+ expect(isRouteFilePath("/project/app/index.jsx")).toBe(true);
10
+ });
11
+ it("ignores non-route files", () => {
12
+ expect(isRouteFilePath("/project/app/tamagui.generated.css")).toBe(false);
13
+ expect(isRouteFilePath("/project/app/routes.d.ts")).toBe(false);
14
+ });
15
+ });
16
+ describe(isPathInsideDirectory, () => {
17
+ it("only matches real descendants of the router root", () => {
18
+ const routerRoot = path.resolve("/project/app");
19
+ expect(isPathInsideDirectory("/project/app/index.tsx", routerRoot)).toBe(true);
20
+ expect(isPathInsideDirectory("/project/app-copy/index.tsx", routerRoot)).toBe(false);
21
+ expect(isPathInsideDirectory("/project/app", routerRoot)).toBe(false);
22
+ });
23
+ });
24
+ describe(isRouteFileWatchEvent, () => {
25
+ const routerRoot = path.resolve("/project/app");
26
+ it("matches route file add and delete events", () => {
27
+ expect(isRouteFileWatchEvent({
28
+ event: "add",
29
+ filePath: "/project/app/index.tsx",
30
+ routerRoot
31
+ })).toBe(true);
32
+ expect(isRouteFileWatchEvent({
33
+ event: "delete",
34
+ filePath: "/project/app/nested/page.jsx",
35
+ routerRoot
36
+ })).toBe(true);
37
+ expect(isRouteFileWatchEvent({
38
+ event: "unlink",
39
+ filePath: "/project/app/nested/page.jsx",
40
+ routerRoot
41
+ })).toBe(true);
42
+ });
43
+ it("ignores non-route file add and delete events", () => {
44
+ expect(isRouteFileWatchEvent({
45
+ event: "add",
46
+ filePath: "/project/app/tamagui.generated.css",
47
+ routerRoot
48
+ })).toBe(false);
49
+ expect(isRouteFileWatchEvent({
50
+ event: "delete",
51
+ filePath: "/project/app/routes.d.ts",
52
+ routerRoot
53
+ })).toBe(false);
54
+ });
55
+ it("only matches change events when requested", () => {
56
+ expect(isRouteFileWatchEvent({
57
+ event: "change",
58
+ filePath: "/project/app/index.tsx",
59
+ routerRoot
60
+ })).toBe(false);
61
+ expect(isRouteFileWatchEvent({
62
+ event: "change",
63
+ filePath: "/project/app/index.tsx",
64
+ routerRoot,
65
+ includeChangeEvents: true
66
+ })).toBe(true);
67
+ });
68
+ });
69
+ //# sourceMappingURL=routeFileWatch.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","describe","expect","it","isPathInsideDirectory","isRouteFilePath","isRouteFileWatchEvent","toBe","routerRoot","resolve","event","filePath","includeChangeEvents"],"sources":["../../../src/utils/routeFileWatch.test.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,SAASC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SACEC,qBAAA,EACAC,eAAA,EACAC,qBAAA,QACK;AAEPL,QAAA,CAASI,eAAA,EAAiB,MAAM;EAC9BF,EAAA,CAAG,8BAA8B,MAAM;IACrCD,MAAA,CAAOG,eAAA,CAAgB,uBAAuB,CAAC,EAAEE,IAAA,CAAK,IAAI;IAC1DL,MAAA,CAAOG,eAAA,CAAgB,wBAAwB,CAAC,EAAEE,IAAA,CAAK,IAAI;IAC3DL,MAAA,CAAOG,eAAA,CAAgB,uBAAuB,CAAC,EAAEE,IAAA,CAAK,IAAI;IAC1DL,MAAA,CAAOG,eAAA,CAAgB,wBAAwB,CAAC,EAAEE,IAAA,CAAK,IAAI;EAC7D,CAAC;EAEDJ,EAAA,CAAG,2BAA2B,MAAM;IAClCD,MAAA,CAAOG,eAAA,CAAgB,oCAAoC,CAAC,EAAEE,IAAA,CAAK,KAAK;IACxEL,MAAA,CAAOG,eAAA,CAAgB,0BAA0B,CAAC,EAAEE,IAAA,CAAK,KAAK;EAChE,CAAC;AACH,CAAC;AAEDN,QAAA,CAASG,qBAAA,EAAuB,MAAM;EACpCD,EAAA,CAAG,oDAAoD,MAAM;IAC3D,MAAMK,UAAA,GAAaR,IAAA,CAAKS,OAAA,CAAQ,cAAc;IAE9CP,MAAA,CAAOE,qBAAA,CAAsB,0BAA0BI,UAAU,CAAC,EAAED,IAAA,CAAK,IAAI;IAC7EL,MAAA,CAAOE,qBAAA,CAAsB,+BAA+BI,UAAU,CAAC,EAAED,IAAA,CAAK,KAAK;IACnFL,MAAA,CAAOE,qBAAA,CAAsB,gBAAgBI,UAAU,CAAC,EAAED,IAAA,CAAK,KAAK;EACtE,CAAC;AACH,CAAC;AAEDN,QAAA,CAASK,qBAAA,EAAuB,MAAM;EACpC,MAAME,UAAA,GAAaR,IAAA,CAAKS,OAAA,CAAQ,cAAc;EAE9CN,EAAA,CAAG,4CAA4C,MAAM;IACnDD,MAAA,CACEI,qBAAA,CAAsB;MACpBI,KAAA,EAAO;MACPC,QAAA,EAAU;MACVH;IACF,CAAC,CACH,EAAED,IAAA,CAAK,IAAI;IACXL,MAAA,CACEI,qBAAA,CAAsB;MACpBI,KAAA,EAAO;MACPC,QAAA,EAAU;MACVH;IACF,CAAC,CACH,EAAED,IAAA,CAAK,IAAI;IACXL,MAAA,CACEI,qBAAA,CAAsB;MACpBI,KAAA,EAAO;MACPC,QAAA,EAAU;MACVH;IACF,CAAC,CACH,EAAED,IAAA,CAAK,IAAI;EACb,CAAC;EAEDJ,EAAA,CAAG,gDAAgD,MAAM;IACvDD,MAAA,CACEI,qBAAA,CAAsB;MACpBI,KAAA,EAAO;MACPC,QAAA,EAAU;MACVH;IACF,CAAC,CACH,EAAED,IAAA,CAAK,KAAK;IACZL,MAAA,CACEI,qBAAA,CAAsB;MACpBI,KAAA,EAAO;MACPC,QAAA,EAAU;MACVH;IACF,CAAC,CACH,EAAED,IAAA,CAAK,KAAK;EACd,CAAC;EAEDJ,EAAA,CAAG,6CAA6C,MAAM;IACpDD,MAAA,CACEI,qBAAA,CAAsB;MACpBI,KAAA,EAAO;MACPC,QAAA,EAAU;MACVH;IACF,CAAC,CACH,EAAED,IAAA,CAAK,KAAK;IACZL,MAAA,CACEI,qBAAA,CAAsB;MACpBI,KAAA,EAAO;MACPC,QAAA,EAAU;MACVH,UAAA;MACAI,mBAAA,EAAqB;IACvB,CAAC,CACH,EAAEL,IAAA,CAAK,IAAI;EACb,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ import path from "path";
2
+ import { describe, expect, it } from "vitest";
3
+ import { isPathInsideDirectory, isRouteFilePath, isRouteFileWatchEvent } from "./routeFileWatch.native.js";
4
+ describe(isRouteFilePath, function () {
5
+ it("matches route source files", function () {
6
+ expect(isRouteFilePath("/project/app/index.ts")).toBe(true);
7
+ expect(isRouteFilePath("/project/app/index.tsx")).toBe(true);
8
+ expect(isRouteFilePath("/project/app/index.js")).toBe(true);
9
+ expect(isRouteFilePath("/project/app/index.jsx")).toBe(true);
10
+ });
11
+ it("ignores non-route files", function () {
12
+ expect(isRouteFilePath("/project/app/tamagui.generated.css")).toBe(false);
13
+ expect(isRouteFilePath("/project/app/routes.d.ts")).toBe(false);
14
+ });
15
+ });
16
+ describe(isPathInsideDirectory, function () {
17
+ it("only matches real descendants of the router root", function () {
18
+ var routerRoot = path.resolve("/project/app");
19
+ expect(isPathInsideDirectory("/project/app/index.tsx", routerRoot)).toBe(true);
20
+ expect(isPathInsideDirectory("/project/app-copy/index.tsx", routerRoot)).toBe(false);
21
+ expect(isPathInsideDirectory("/project/app", routerRoot)).toBe(false);
22
+ });
23
+ });
24
+ describe(isRouteFileWatchEvent, function () {
25
+ var routerRoot = path.resolve("/project/app");
26
+ it("matches route file add and delete events", function () {
27
+ expect(isRouteFileWatchEvent({
28
+ event: "add",
29
+ filePath: "/project/app/index.tsx",
30
+ routerRoot
31
+ })).toBe(true);
32
+ expect(isRouteFileWatchEvent({
33
+ event: "delete",
34
+ filePath: "/project/app/nested/page.jsx",
35
+ routerRoot
36
+ })).toBe(true);
37
+ expect(isRouteFileWatchEvent({
38
+ event: "unlink",
39
+ filePath: "/project/app/nested/page.jsx",
40
+ routerRoot
41
+ })).toBe(true);
42
+ });
43
+ it("ignores non-route file add and delete events", function () {
44
+ expect(isRouteFileWatchEvent({
45
+ event: "add",
46
+ filePath: "/project/app/tamagui.generated.css",
47
+ routerRoot
48
+ })).toBe(false);
49
+ expect(isRouteFileWatchEvent({
50
+ event: "delete",
51
+ filePath: "/project/app/routes.d.ts",
52
+ routerRoot
53
+ })).toBe(false);
54
+ });
55
+ it("only matches change events when requested", function () {
56
+ expect(isRouteFileWatchEvent({
57
+ event: "change",
58
+ filePath: "/project/app/index.tsx",
59
+ routerRoot
60
+ })).toBe(false);
61
+ expect(isRouteFileWatchEvent({
62
+ event: "change",
63
+ filePath: "/project/app/index.tsx",
64
+ routerRoot,
65
+ includeChangeEvents: true
66
+ })).toBe(true);
67
+ });
68
+ });
69
+ //# sourceMappingURL=routeFileWatch.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","describe","expect","it","isPathInsideDirectory","isRouteFilePath","isRouteFileWatchEvent","toBe","routerRoot","resolve","event","filePath","includeChangeEvents"],"sources":["../../../src/utils/routeFileWatch.test.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,SAASC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAAAC,qBAAA,EAAAC,eAAA,EAAAC,qBAAA;AAAAL,QACE,CAAAI,eAAA;EACAF,EAAA;IACAD,MAAA,CAAAG,eAAA,2BAAAE,IAAA;IAAAL,MACK,CAAAG,eAAA,4BAAAE,IAAA;IAEPL,MAAS,CAAAG,eAAiB,wBAAM,GAAAE,IAAA;IAC9BL,MAAG,CAAAG,eAAA,yBAAoC,GAAAE,IAAA;EACrC;EACAJ,EAAA,0BAAuB;IACvBD,MAAA,CAAOG,eAAA,CAAgB,oCAAmC,GAAAE,IAAA;IAC1DL,MAAA,CAAOG,eAAA,CAAgB,0BAAyB,CAAE,EAAAE,IAAK,MAAI;EAC7D,CAAC;AAED;AACEN,QAAA,CAAAG,qBAAuB;EACvBD,EAAA,mDAAkD,EAAE,YAAU;IAC/D,IAAAK,UAAA,GAAAR,IAAA,CAAAS,OAAA;IACFP,MAAA,CAAAE,qBAAA,2BAAAI,UAAA,GAAAD,IAAA;IAEDL,MAAS,CAAAE,qBAAuB,8BAAM,EAAAI,UAAA,GAAAD,IAAA;IACpCL,MAAG,CAAAE,qBAAA,iBAAAI,UAAoD,GAAAD,IAAM;EAC3D;AAEA;AACAN,QAAA,CAAAK,qBAAO,cAAsB;EAC7B,IAAAE,UAAO,GAAAR,IAAA,CAAAS,OAAA,eAAsB;EAC/BN,EAAC;IACFD,MAAA,CAAAI,qBAAA;MAEDI,KAAS;MACPC,QAAM,0BAA0B;MAE7BH;IACD,IAAAD,IAAA;IAAAL,MACE,CAAAI,qBAAsB;MAAAI,KACpB,UAAO;MAAAC,QACP,gCAAU;MAAAH;IACV,EACF,CAAC,CAAAD,IAAA;IACHL,MAAE,CAAKI,qBAAI;MACXI,KAAA;MACEC,QAAA,gCAAsB;MAAAH;IACb,IACPD,IAAA,MAAU;EAAA;EACVJ,EAAA,+CACD;IACHD,MAAE,CAAKI,qBAAI;MACXI,KAAA;MACEC,QAAA,sCAAsB;MAAAH;IACb,IACPD,IAAA,MAAU;IAAAL,MACV,CAAAI,qBAAA;MACFI,KAAC;MACDC,QAAK,EAAI;MACZH;IAED,CAAG,GAAAD,IAAA;EACD;EAAAJ,EAAA,4CACwB;IAAAD,MACpB,CAAAI,qBAAO;MAAAI,KACP,UAAU;MAAAC,QACV;MACFH;IACF,EAAE,EAAAD,IAAK,MAAK;IACZL,MAAA,CAAAI,qBAAA;MACEI,KAAA;MAAsBC,QACpB,EAAO;MAAAH,UACP;MAAUI,mBACV;IAAA,EACF,CAAC,CAAAL,IAAA;EAAA,EACH;AAAY,EACd","ignoreList":[]}
@@ -10,6 +10,7 @@ import { getRouterRootFromOneOptions } from "../../utils/getRouterRootFromOneOpt
10
10
  import { isResponse } from "../../utils/isResponse.mjs";
11
11
  import { isStatusRedirect } from "../../utils/isStatus.mjs";
12
12
  import { promiseWithResolvers } from "../../utils/promiseWithResolvers.mjs";
13
+ import { isRouteFileWatchEvent } from "../../utils/routeFileWatch.mjs";
13
14
  import { trackLoaderDependencies } from "../../utils/trackLoaderDependencies.mjs";
14
15
  import { LoaderDataCache } from "../../vite/constants.mjs";
15
16
  import { replaceLoader } from "../../vite/replaceLoader.mjs";
@@ -382,6 +383,13 @@ ${stack}
382
383
  ignoredRouteFiles: options.router?.ignoredRouteFiles
383
384
  });
384
385
  }
386
+ function recreateRequestHandler(changedPath) {
387
+ try {
388
+ handleRequest = createRequestHandler();
389
+ } catch (error) {
390
+ console.warn(`[one] Failed to rebuild routes after ${changedPath} changed.`, error);
391
+ }
392
+ }
385
393
  return {
386
394
  name: `one-router-fs`,
387
395
  enforce: "post",
@@ -420,13 +428,14 @@ ${stack}
420
428
  configureServer(serverIn) {
421
429
  server = serverIn;
422
430
  runner = createServerModuleRunner(USE_SERVER_ENV ? server.environments.server : server.environments.ssr);
423
- const appDir = path.join(process.cwd(), getRouterRootFromOneOptions(options));
424
- const fileWatcherChangeListener = debounce(async (type, changedPath) => {
425
- if (type === "add" || type === "delete") {
426
- const absolutePath = path.resolve(changedPath);
427
- if (absolutePath.startsWith(appDir)) {
428
- handleRequest = createRequestHandler();
429
- }
431
+ const appDir = path.resolve(process.cwd(), getRouterRootFromOneOptions(options));
432
+ const fileWatcherChangeListener = debounce((type, changedPath) => {
433
+ if (isRouteFileWatchEvent({
434
+ event: type,
435
+ filePath: changedPath,
436
+ routerRoot: appDir
437
+ })) {
438
+ recreateRequestHandler(changedPath);
430
439
  }
431
440
  }, 100);
432
441
  server.watcher.addListener("all", fileWatcherChangeListener);