one 1.2.16 → 1.2.18

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 (148) hide show
  1. package/dist/cjs/cli/generateRoutes.cjs +20 -5
  2. package/dist/cjs/cli/generateRoutes.js +18 -3
  3. package/dist/cjs/cli/generateRoutes.js.map +1 -1
  4. package/dist/cjs/cli/generateRoutes.native.js +30 -5
  5. package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
  6. package/dist/cjs/cli.cjs +4 -0
  7. package/dist/cjs/cli.js +4 -0
  8. package/dist/cjs/cli.js.map +1 -1
  9. package/dist/cjs/cli.native.js +4 -0
  10. package/dist/cjs/cli.native.js.map +1 -1
  11. package/dist/cjs/getDevServer.cjs +29 -0
  12. package/dist/cjs/getDevServer.js +24 -0
  13. package/dist/cjs/getDevServer.js.map +6 -0
  14. package/dist/cjs/getDevServer.native.js +40 -0
  15. package/dist/cjs/getDevServer.native.js.map +1 -0
  16. package/dist/cjs/getURL.native.js +8 -18
  17. package/dist/cjs/getURL.native.js.map +1 -1
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/index.native.js.map +1 -1
  20. package/dist/cjs/router/createRoute.cjs +12 -1
  21. package/dist/cjs/router/createRoute.js +12 -1
  22. package/dist/cjs/router/createRoute.js.map +1 -1
  23. package/dist/cjs/router/createRoute.native.js +13 -2
  24. package/dist/cjs/router/createRoute.native.js.map +1 -1
  25. package/dist/cjs/typed-routes/generateRouteTypes.cjs +14 -3
  26. package/dist/cjs/typed-routes/generateRouteTypes.js +12 -3
  27. package/dist/cjs/typed-routes/generateRouteTypes.js.map +1 -1
  28. package/dist/cjs/typed-routes/generateRouteTypes.native.js +29 -3
  29. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  30. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.cjs +39 -2
  31. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +38 -2
  32. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
  33. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js +40 -2
  34. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  35. package/dist/cjs/typed-routes/injectRouteHelpers.cjs +136 -0
  36. package/dist/cjs/typed-routes/injectRouteHelpers.js +104 -0
  37. package/dist/cjs/typed-routes/injectRouteHelpers.js.map +6 -0
  38. package/dist/cjs/typed-routes/injectRouteHelpers.native.js +146 -0
  39. package/dist/cjs/typed-routes/injectRouteHelpers.native.js.map +1 -0
  40. package/dist/cjs/vite/loadConfig.cjs +18 -12
  41. package/dist/cjs/vite/loadConfig.js +20 -13
  42. package/dist/cjs/vite/loadConfig.js.map +1 -1
  43. package/dist/cjs/vite/loadConfig.native.js +18 -11
  44. package/dist/cjs/vite/loadConfig.native.js.map +1 -1
  45. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +3 -2
  46. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js +13 -3
  47. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  48. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +9 -6
  49. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  50. package/dist/esm/cli/generateRoutes.js +19 -2
  51. package/dist/esm/cli/generateRoutes.js.map +1 -1
  52. package/dist/esm/cli/generateRoutes.mjs +19 -4
  53. package/dist/esm/cli/generateRoutes.mjs.map +1 -1
  54. package/dist/esm/cli/generateRoutes.native.js +29 -4
  55. package/dist/esm/cli/generateRoutes.native.js.map +1 -1
  56. package/dist/esm/cli.js +4 -0
  57. package/dist/esm/cli.js.map +1 -1
  58. package/dist/esm/cli.mjs +4 -0
  59. package/dist/esm/cli.mjs.map +1 -1
  60. package/dist/esm/cli.native.js +4 -0
  61. package/dist/esm/cli.native.js.map +1 -1
  62. package/dist/esm/getDevServer.js +8 -0
  63. package/dist/esm/getDevServer.js.map +6 -0
  64. package/dist/esm/getDevServer.mjs +6 -0
  65. package/dist/esm/getDevServer.mjs.map +1 -0
  66. package/dist/esm/getDevServer.native.js +3 -0
  67. package/dist/esm/getDevServer.native.js.map +1 -0
  68. package/dist/esm/getURL.native.js +3 -2
  69. package/dist/esm/getURL.native.js.map +1 -1
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/index.mjs.map +1 -1
  72. package/dist/esm/index.native.js.map +1 -1
  73. package/dist/esm/router/createRoute.js +12 -1
  74. package/dist/esm/router/createRoute.js.map +1 -1
  75. package/dist/esm/router/createRoute.mjs +12 -1
  76. package/dist/esm/router/createRoute.mjs.map +1 -1
  77. package/dist/esm/router/createRoute.native.js +13 -2
  78. package/dist/esm/router/createRoute.native.js.map +1 -1
  79. package/dist/esm/typed-routes/generateRouteTypes.js +14 -3
  80. package/dist/esm/typed-routes/generateRouteTypes.js.map +1 -1
  81. package/dist/esm/typed-routes/generateRouteTypes.mjs +14 -3
  82. package/dist/esm/typed-routes/generateRouteTypes.mjs.map +1 -1
  83. package/dist/esm/typed-routes/generateRouteTypes.native.js +29 -3
  84. package/dist/esm/typed-routes/generateRouteTypes.native.js.map +1 -1
  85. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js +38 -2
  86. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
  87. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs +39 -2
  88. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs.map +1 -1
  89. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js +40 -2
  90. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  91. package/dist/esm/typed-routes/injectRouteHelpers.js +89 -0
  92. package/dist/esm/typed-routes/injectRouteHelpers.js.map +6 -0
  93. package/dist/esm/typed-routes/injectRouteHelpers.mjs +113 -0
  94. package/dist/esm/typed-routes/injectRouteHelpers.mjs.map +1 -0
  95. package/dist/esm/typed-routes/injectRouteHelpers.native.js +120 -0
  96. package/dist/esm/typed-routes/injectRouteHelpers.native.js.map +1 -0
  97. package/dist/esm/vite/loadConfig.js +20 -13
  98. package/dist/esm/vite/loadConfig.js.map +1 -1
  99. package/dist/esm/vite/loadConfig.mjs +18 -12
  100. package/dist/esm/vite/loadConfig.mjs.map +1 -1
  101. package/dist/esm/vite/loadConfig.native.js +18 -11
  102. package/dist/esm/vite/loadConfig.native.js.map +1 -1
  103. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js +13 -3
  104. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  105. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +3 -2
  106. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
  107. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +9 -6
  108. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  109. package/package.json +10 -10
  110. package/src/cli/generateRoutes.ts +52 -4
  111. package/src/cli.ts +5 -0
  112. package/src/getDevServer.native.ts +5 -0
  113. package/src/getDevServer.ts +5 -0
  114. package/src/getURL.native.ts +10 -5
  115. package/src/index.ts +13 -0
  116. package/src/interfaces/router.ts +19 -0
  117. package/src/router/createRoute.ts +16 -3
  118. package/src/typed-routes/generateRouteTypes.ts +46 -2
  119. package/src/typed-routes/getTypedRoutesDeclarationFile.ts +70 -0
  120. package/src/typed-routes/injectRouteHelpers.ts +186 -0
  121. package/src/vite/loadConfig.ts +29 -17
  122. package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +14 -3
  123. package/src/vite/types.ts +26 -0
  124. package/types/cli/generateRoutes.d.ts +1 -0
  125. package/types/cli/generateRoutes.d.ts.map +1 -1
  126. package/types/getDevServer.d.ts +5 -0
  127. package/types/getDevServer.d.ts.map +1 -0
  128. package/types/getDevServer.native.d.ts +2 -0
  129. package/types/getDevServer.native.d.ts.map +1 -0
  130. package/types/getURL.native.d.ts.map +1 -1
  131. package/types/index.d.ts +13 -3
  132. package/types/index.d.ts.map +1 -1
  133. package/types/interfaces/router.d.ts +16 -0
  134. package/types/interfaces/router.d.ts.map +1 -1
  135. package/types/router/createRoute.d.ts +28 -13
  136. package/types/router/createRoute.d.ts.map +1 -1
  137. package/types/typed-routes/generateRouteTypes.d.ts +1 -1
  138. package/types/typed-routes/generateRouteTypes.d.ts.map +1 -1
  139. package/types/typed-routes/getTypedRoutesDeclarationFile.d.ts.map +1 -1
  140. package/types/typed-routes/injectRouteHelpers.d.ts +12 -0
  141. package/types/typed-routes/injectRouteHelpers.d.ts.map +1 -0
  142. package/types/utils/redirect.d.ts +1 -3
  143. package/types/utils/redirect.d.ts.map +1 -1
  144. package/types/vite/loadConfig.d.ts +1 -1
  145. package/types/vite/loadConfig.d.ts.map +1 -1
  146. package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
  147. package/types/vite/types.d.ts +25 -0
  148. package/types/vite/types.d.ts.map +1 -1
@@ -6,14 +6,16 @@ function getTypedRoutesDeclarationFile(ctx) {
6
6
  var staticRoutes = /* @__PURE__ */new Set(),
7
7
  dynamicRoutes = /* @__PURE__ */new Set(),
8
8
  dynamicRouteContextKeys = /* @__PURE__ */new Set();
9
- return walkRouteNode(getRoutes(ctx, {
9
+ walkRouteNode(getRoutes(ctx, {
10
10
  platformRoutes: !1,
11
11
  // We don't need to generate platform specific routes
12
12
  ignoreEntryPoints: !0,
13
13
  ignoreRequireErrors: !0
14
14
  }),
15
15
  // importMode: 'async',
16
- "", staticRoutes, dynamicRoutes, dynamicRouteContextKeys), `// deno-lint-ignore-file
16
+ "", staticRoutes, dynamicRoutes, dynamicRouteContextKeys);
17
+ var hasRoutes = dynamicRouteContextKeys.size > 0;
18
+ return `// deno-lint-ignore-file
17
19
  /* eslint-disable */
18
20
  // biome-ignore: needed import
19
21
  import type { OneRouter } from 'one'
@@ -25,11 +27,47 @@ declare module 'one' {
25
27
  DynamicRoutes: ${setToUnionType(dynamicRoutes)}
26
28
  DynamicRouteTemplate: ${setToUnionType(dynamicRouteContextKeys)}
27
29
  IsTyped: true
30
+ ${hasRoutes ? `RouteTypes: ${generateRouteTypesMap(dynamicRouteContextKeys)}` : ""}
28
31
  }
29
32
  }
30
33
  }
34
+ ${hasRoutes ? `
35
+ /**
36
+ * Helper type for route information
37
+ */
38
+ type RouteInfo<Params = Record<string, never>> = {
39
+ Params: Params
40
+ LoaderProps: { path: string; params: Params; request?: Request }
41
+ }` : ""}
31
42
  `.trim();
32
43
  }
44
+ function generateRouteTypesMap(dynamicRouteContextKeys) {
45
+ if (dynamicRouteContextKeys.size === 0) return "{}";
46
+ var routes = [...dynamicRouteContextKeys].sort(),
47
+ entries = routes.map(function (routePath) {
48
+ var params = extractParams(routePath),
49
+ paramsType = params.length === 0 ? "{}" : generateInlineParamsType(params);
50
+ return ` '${routePath}': RouteInfo<${paramsType}>`;
51
+ }).join(`
52
+ `);
53
+ return `{
54
+ ${entries}
55
+ }`;
56
+ }
57
+ function extractParams(routePath) {
58
+ for (var params = [], paramRegex = /\[(\.\.\.)?([\w]+)\]/g, match; (match = paramRegex.exec(routePath)) !== null;) params.push({
59
+ name: match[2],
60
+ isCatchAll: match[1] === "..."
61
+ });
62
+ return params;
63
+ }
64
+ function generateInlineParamsType(params) {
65
+ var entries = params.map(function (p) {
66
+ var type = p.isCatchAll ? "string[]" : "string";
67
+ return `${p.name}: ${type}`;
68
+ });
69
+ return `{ ${entries.join("; ")} }`;
70
+ }
33
71
  function walkRouteNode(routeNode, parentRoutePath, staticRoutes, dynamicRoutes, dynamicRouteContextKeys) {
34
72
  if (routeNode) {
35
73
  addRouteNode(routeNode, parentRoutePath, staticRoutes, dynamicRoutes, dynamicRouteContextKeys), parentRoutePath = `${removeSupportedExtensions(`${parentRoutePath}/${routeNode.route}`).replace(/\/?index$/, "")}`;
@@ -1 +1 @@
1
- {"version":3,"names":["getRoutes","isTypedRoute","removeSupportedExtensions","CATCH_ALL","SLUG","getTypedRoutesDeclarationFile","ctx","staticRoutes","Set","dynamicRoutes","dynamicRouteContextKeys","walkRouteNode","platformRoutes","ignoreEntryPoints","ignoreRequireErrors","setToUnionType","trim","routeNode","parentRoutePath","addRouteNode","route","replace","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","children","Symbol","iterator","_step","next","done","child","value","err","return","routePath","startsWith","dynamic","generateCombinations","path","add","replaceAll"],"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"],"sources":["../../../src/typed-routes/getTypedRoutesDeclarationFile.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { existsSync } from "node:fs";
3
+ async function injectRouteHelpers(filePath, routePath, mode) {
4
+ if (!existsSync(filePath))
5
+ return !1;
6
+ try {
7
+ let content = await readFile(filePath, "utf-8"), modified = !1;
8
+ const hasTypeRoute = /^type\s+Route\s*=/m.test(content), hasConstRoute = /^const\s+route\s*=/m.test(content);
9
+ if (mode === "runtime" && !hasConstRoute) {
10
+ const { updatedContent } = addCreateRouteImport(content);
11
+ content = updatedContent;
12
+ const routeDeclaration = `const route = createRoute<'${routePath}'>()`;
13
+ content = insertAfterImports(content, routeDeclaration), modified = !0;
14
+ }
15
+ if (mode === "type" && !hasTypeRoute) {
16
+ const { updatedContent } = addRouteTypeImport(content);
17
+ content = updatedContent;
18
+ const typeDeclaration = `type Route = RouteType<'${routePath}'>`;
19
+ content = insertAfterImports(content, typeDeclaration), modified = !0;
20
+ }
21
+ return modified ? (await writeFile(filePath, content, "utf-8"), !0) : !1;
22
+ } catch (error) {
23
+ return console.error(`Failed to inject route helpers into ${filePath}:`, error), !1;
24
+ }
25
+ }
26
+ function addCreateRouteImport(content) {
27
+ if (/import\s+[^'"]*createRoute[^'"]*from\s+['"]one['"]/m.test(content))
28
+ return { updatedContent: content, importAdded: !1 };
29
+ const oneImportRegex = /import\s+{([^}]*)}\s+from\s+['"]one['"]/m, match = content.match(oneImportRegex);
30
+ if (match) {
31
+ const existingImports = match[1].trim(), newImports = existingImports ? `${existingImports}, createRoute` : "createRoute";
32
+ return { updatedContent: content.replace(oneImportRegex, `import { ${newImports} } from 'one'`), importAdded: !0 };
33
+ }
34
+ const lastImportIndex = findLastImportIndex(content);
35
+ if (lastImportIndex >= 0) {
36
+ const lines = content.split(`
37
+ `);
38
+ return lines.splice(lastImportIndex + 1, 0, "import { createRoute } from 'one'"), { updatedContent: lines.join(`
39
+ `), importAdded: !0 };
40
+ }
41
+ return { updatedContent: `import { createRoute } from 'one'
42
+ ` + content, importAdded: !0 };
43
+ }
44
+ function addRouteTypeImport(content) {
45
+ if (/import\s+type\s+[^'"]*RouteType[^'"]*from\s+['"]one['"]/m.test(content))
46
+ return { updatedContent: content, importAdded: !1 };
47
+ const oneTypeImportRegex = /import\s+type\s+{([^}]*)}\s+from\s+['"]one['"]/m, match = content.match(oneTypeImportRegex);
48
+ if (match) {
49
+ const existingImports = match[1].trim(), newImports = existingImports ? `${existingImports}, RouteType` : "RouteType";
50
+ return { updatedContent: content.replace(
51
+ oneTypeImportRegex,
52
+ `import type { ${newImports} } from 'one'`
53
+ ), importAdded: !0 };
54
+ }
55
+ const lastImportIndex = findLastImportIndex(content);
56
+ if (lastImportIndex >= 0) {
57
+ const lines = content.split(`
58
+ `);
59
+ return lines.splice(lastImportIndex + 1, 0, "import type { RouteType } from 'one'"), { updatedContent: lines.join(`
60
+ `), importAdded: !0 };
61
+ }
62
+ return { updatedContent: `import type { RouteType } from 'one'
63
+ ` + content, importAdded: !0 };
64
+ }
65
+ function findLastImportIndex(content) {
66
+ const lines = content.split(`
67
+ `);
68
+ let lastImportIndex = -1;
69
+ for (let i = 0; i < lines.length; i++) {
70
+ const line = lines[i].trim();
71
+ if (line.startsWith("import ") || lastImportIndex >= 0 && (line.startsWith("from ") || line === "}"))
72
+ lastImportIndex = i;
73
+ else if (lastImportIndex >= 0 && line && !line.startsWith("//"))
74
+ break;
75
+ }
76
+ return lastImportIndex;
77
+ }
78
+ function insertAfterImports(content, codeToInsert) {
79
+ const lines = content.split(`
80
+ `), lastImportIndex = findLastImportIndex(content);
81
+ return lastImportIndex >= 0 ? (lines[lastImportIndex + 1] === "" ? lines.splice(lastImportIndex + 2, 0, codeToInsert, "") : lines.splice(lastImportIndex + 1, 0, "", codeToInsert, ""), lines.join(`
82
+ `)) : codeToInsert + `
83
+
84
+ ` + content;
85
+ }
86
+ export {
87
+ injectRouteHelpers
88
+ };
89
+ //# sourceMappingURL=injectRouteHelpers.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/typed-routes/injectRouteHelpers.ts"],
4
+ "mappings": "AAAA,SAAS,UAAU,iBAAiB;AACpC,SAAS,kBAAkB;AAa3B,eAAsB,mBACpB,UACA,WACA,MACkB;AAClB,MAAI,CAAC,WAAW,QAAQ;AACtB,WAAO;AAGT,MAAI;AACF,QAAI,UAAU,MAAM,SAAS,UAAU,OAAO,GAC1C,WAAW;AAGf,UAAM,eAAe,qBAAqB,KAAK,OAAO,GAChD,gBAAgB,sBAAsB,KAAK,OAAO;AAGxD,QAAI,SAAS,aAAa,CAAC,eAAe;AACxC,YAAM,EAAE,eAAe,IAAI,qBAAqB,OAAO;AACvD,gBAAU;AAGV,YAAM,mBAAmB,8BAA8B,SAAS;AAChE,gBAAU,mBAAmB,SAAS,gBAAgB,GACtD,WAAW;AAAA,IACb;AAGA,QAAI,SAAS,UAAU,CAAC,cAAc;AACpC,YAAM,EAAE,eAAe,IAAI,mBAAmB,OAAO;AACrD,gBAAU;AAGV,YAAM,kBAAkB,2BAA2B,SAAS;AAC5D,gBAAU,mBAAmB,SAAS,eAAe,GACrD,WAAW;AAAA,IACb;AAEA,WAAI,YACF,MAAM,UAAU,UAAU,SAAS,OAAO,GACnC,MAGF;AAAA,EACT,SAAS,OAAO;AACd,mBAAQ,MAAM,uCAAuC,QAAQ,KAAK,KAAK,GAChE;AAAA,EACT;AACF;AAKA,SAAS,qBAAqB,SAAmE;AAE/F,MAAI,sDAAsD,KAAK,OAAO;AACpE,WAAO,EAAE,gBAAgB,SAAS,aAAa,GAAM;AAIvD,QAAM,iBAAiB,4CACjB,QAAQ,QAAQ,MAAM,cAAc;AAE1C,MAAI,OAAO;AAET,UAAM,kBAAkB,MAAM,CAAC,EAAE,KAAK,GAChC,aAAa,kBAAkB,GAAG,eAAe,kBAAkB;AAEzE,WAAO,EAAE,gBADc,QAAQ,QAAQ,gBAAgB,YAAY,UAAU,eAAe,GACnE,aAAa,GAAK;AAAA,EAC7C;AAGA,QAAM,kBAAkB,oBAAoB,OAAO;AACnD,MAAI,mBAAmB,GAAG;AACxB,UAAM,QAAQ,QAAQ,MAAM;AAAA,CAAI;AAChC,iBAAM,OAAO,kBAAkB,GAAG,GAAG,mCAAmC,GACjE,EAAE,gBAAgB,MAAM,KAAK;AAAA,CAAI,GAAG,aAAa,GAAK;AAAA,EAC/D;AAIA,SAAO,EAAE,gBADS;AAAA,IACmB,SAAS,aAAa,GAAK;AAClE;AAKA,SAAS,mBAAmB,SAAmE;AAE7F,MAAI,2DAA2D,KAAK,OAAO;AACzE,WAAO,EAAE,gBAAgB,SAAS,aAAa,GAAM;AAIvD,QAAM,qBAAqB,mDACrB,QAAQ,QAAQ,MAAM,kBAAkB;AAE9C,MAAI,OAAO;AAET,UAAM,kBAAkB,MAAM,CAAC,EAAE,KAAK,GAChC,aAAa,kBAAkB,GAAG,eAAe,gBAAgB;AAKvE,WAAO,EAAE,gBAJc,QAAQ;AAAA,MAC7B;AAAA,MACA,iBAAiB,UAAU;AAAA,IAC7B,GACyB,aAAa,GAAK;AAAA,EAC7C;AAGA,QAAM,kBAAkB,oBAAoB,OAAO;AACnD,MAAI,mBAAmB,GAAG;AACxB,UAAM,QAAQ,QAAQ,MAAM;AAAA,CAAI;AAChC,iBAAM,OAAO,kBAAkB,GAAG,GAAG,sCAAsC,GACpE,EAAE,gBAAgB,MAAM,KAAK;AAAA,CAAI,GAAG,aAAa,GAAK;AAAA,EAC/D;AAIA,SAAO,EAAE,gBADS;AAAA,IACmB,SAAS,aAAa,GAAK;AAClE;AAKA,SAAS,oBAAoB,SAAyB;AACpD,QAAM,QAAQ,QAAQ,MAAM;AAAA,CAAI;AAChC,MAAI,kBAAkB;AAEtB,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,UAAM,OAAO,MAAM,CAAC,EAAE,KAAK;AAC3B,QACE,KAAK,WAAW,SAAS,KACxB,mBAAmB,MAAM,KAAK,WAAW,OAAO,KAAK,SAAS;AAE/D,wBAAkB;AAAA,aACT,mBAAmB,KAAK,QAAQ,CAAC,KAAK,WAAW,IAAI;AAE9D;AAAA,EAEJ;AAEA,SAAO;AACT;AAMA,SAAS,mBAAmB,SAAiB,cAA8B;AACzE,QAAM,QAAQ,QAAQ,MAAM;AAAA,CAAI,GAC1B,kBAAkB,oBAAoB,OAAO;AAEnD,SAAI,mBAAmB,KAEJ,MAAM,kBAAkB,CAAC,MACR,KAIhC,MAAM,OAAO,kBAAkB,GAAG,GAAG,cAAc,EAAE,IAGrD,MAAM,OAAO,kBAAkB,GAAG,GAAG,IAAI,cAAc,EAAE,GAGpD,MAAM,KAAK;AAAA,CAAI,KAIjB,eAAe;AAAA;AAAA,IAAS;AACjC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,113 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { existsSync } from "node:fs";
3
+ async function injectRouteHelpers(filePath, routePath, mode) {
4
+ if (!existsSync(filePath)) return !1;
5
+ try {
6
+ let content = await readFile(filePath, "utf-8"),
7
+ modified = !1;
8
+ const hasTypeRoute = /^type\s+Route\s*=/m.test(content),
9
+ hasConstRoute = /^const\s+route\s*=/m.test(content);
10
+ if (mode === "runtime" && !hasConstRoute) {
11
+ const {
12
+ updatedContent
13
+ } = addCreateRouteImport(content);
14
+ content = updatedContent;
15
+ const routeDeclaration = `const route = createRoute<'${routePath}'>()`;
16
+ content = insertAfterImports(content, routeDeclaration), modified = !0;
17
+ }
18
+ if (mode === "type" && !hasTypeRoute) {
19
+ const {
20
+ updatedContent
21
+ } = addRouteTypeImport(content);
22
+ content = updatedContent;
23
+ const typeDeclaration = `type Route = RouteType<'${routePath}'>`;
24
+ content = insertAfterImports(content, typeDeclaration), modified = !0;
25
+ }
26
+ return modified ? (await writeFile(filePath, content, "utf-8"), !0) : !1;
27
+ } catch (error) {
28
+ return console.error(`Failed to inject route helpers into ${filePath}:`, error), !1;
29
+ }
30
+ }
31
+ function addCreateRouteImport(content) {
32
+ if (/import\s+[^'"]*createRoute[^'"]*from\s+['"]one['"]/m.test(content)) return {
33
+ updatedContent: content,
34
+ importAdded: !1
35
+ };
36
+ const oneImportRegex = /import\s+{([^}]*)}\s+from\s+['"]one['"]/m,
37
+ match = content.match(oneImportRegex);
38
+ if (match) {
39
+ const existingImports = match[1].trim(),
40
+ newImports = existingImports ? `${existingImports}, createRoute` : "createRoute";
41
+ return {
42
+ updatedContent: content.replace(oneImportRegex, `import { ${newImports} } from 'one'`),
43
+ importAdded: !0
44
+ };
45
+ }
46
+ const lastImportIndex = findLastImportIndex(content);
47
+ if (lastImportIndex >= 0) {
48
+ const lines = content.split(`
49
+ `);
50
+ return lines.splice(lastImportIndex + 1, 0, "import { createRoute } from 'one'"), {
51
+ updatedContent: lines.join(`
52
+ `),
53
+ importAdded: !0
54
+ };
55
+ }
56
+ return {
57
+ updatedContent: `import { createRoute } from 'one'
58
+ ` + content,
59
+ importAdded: !0
60
+ };
61
+ }
62
+ function addRouteTypeImport(content) {
63
+ if (/import\s+type\s+[^'"]*RouteType[^'"]*from\s+['"]one['"]/m.test(content)) return {
64
+ updatedContent: content,
65
+ importAdded: !1
66
+ };
67
+ const oneTypeImportRegex = /import\s+type\s+{([^}]*)}\s+from\s+['"]one['"]/m,
68
+ match = content.match(oneTypeImportRegex);
69
+ if (match) {
70
+ const existingImports = match[1].trim(),
71
+ newImports = existingImports ? `${existingImports}, RouteType` : "RouteType";
72
+ return {
73
+ updatedContent: content.replace(oneTypeImportRegex, `import type { ${newImports} } from 'one'`),
74
+ importAdded: !0
75
+ };
76
+ }
77
+ const lastImportIndex = findLastImportIndex(content);
78
+ if (lastImportIndex >= 0) {
79
+ const lines = content.split(`
80
+ `);
81
+ return lines.splice(lastImportIndex + 1, 0, "import type { RouteType } from 'one'"), {
82
+ updatedContent: lines.join(`
83
+ `),
84
+ importAdded: !0
85
+ };
86
+ }
87
+ return {
88
+ updatedContent: `import type { RouteType } from 'one'
89
+ ` + content,
90
+ importAdded: !0
91
+ };
92
+ }
93
+ function findLastImportIndex(content) {
94
+ const lines = content.split(`
95
+ `);
96
+ let lastImportIndex = -1;
97
+ for (let i = 0; i < lines.length; i++) {
98
+ const line = lines[i].trim();
99
+ if (line.startsWith("import ") || lastImportIndex >= 0 && (line.startsWith("from ") || line === "}")) lastImportIndex = i;else if (lastImportIndex >= 0 && line && !line.startsWith("//")) break;
100
+ }
101
+ return lastImportIndex;
102
+ }
103
+ function insertAfterImports(content, codeToInsert) {
104
+ const lines = content.split(`
105
+ `),
106
+ lastImportIndex = findLastImportIndex(content);
107
+ return lastImportIndex >= 0 ? (lines[lastImportIndex + 1] === "" ? lines.splice(lastImportIndex + 2, 0, codeToInsert, "") : lines.splice(lastImportIndex + 1, 0, "", codeToInsert, ""), lines.join(`
108
+ `)) : codeToInsert + `
109
+
110
+ ` + content;
111
+ }
112
+ export { injectRouteHelpers };
113
+ //# sourceMappingURL=injectRouteHelpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["readFile","writeFile","existsSync","injectRouteHelpers","filePath","routePath","mode","content","modified","hasTypeRoute","test","hasConstRoute","updatedContent","addCreateRouteImport","routeDeclaration","insertAfterImports","addRouteTypeImport","typeDeclaration","error","console","importAdded","oneImportRegex","match","existingImports","trim","newImports","replace","lastImportIndex","findLastImportIndex","lines","split","splice","join","oneTypeImportRegex","i","length","line","startsWith","codeToInsert"],"sources":["../../../src/typed-routes/injectRouteHelpers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,120 @@
1
+ import { readFile, writeFile } from "fs/promises";
2
+ import { existsSync } from "fs";
3
+ async function injectRouteHelpers(filePath, routePath, mode) {
4
+ if (!existsSync(filePath)) return !1;
5
+ try {
6
+ var content = await readFile(filePath, "utf-8"),
7
+ modified = !1,
8
+ hasTypeRoute = /^type\s+Route\s*=/m.test(content),
9
+ hasConstRoute = /^const\s+route\s*=/m.test(content);
10
+ if (mode === "runtime" && !hasConstRoute) {
11
+ var {
12
+ updatedContent
13
+ } = addCreateRouteImport(content);
14
+ content = updatedContent;
15
+ var routeDeclaration = `const route = createRoute<'${routePath}'>()`;
16
+ content = insertAfterImports(content, routeDeclaration), modified = !0;
17
+ }
18
+ if (mode === "type" && !hasTypeRoute) {
19
+ var {
20
+ updatedContent: updatedContent1
21
+ } = addRouteTypeImport(content);
22
+ content = updatedContent1;
23
+ var typeDeclaration = `type Route = RouteType<'${routePath}'>`;
24
+ content = insertAfterImports(content, typeDeclaration), modified = !0;
25
+ }
26
+ return modified ? (await writeFile(filePath, content, "utf-8"), !0) : !1;
27
+ } catch (error) {
28
+ return console.error(`Failed to inject route helpers into ${filePath}:`, error), !1;
29
+ }
30
+ }
31
+ function addCreateRouteImport(content) {
32
+ if (/import\s+[^'"]*createRoute[^'"]*from\s+['"]one['"]/m.test(content)) return {
33
+ updatedContent: content,
34
+ importAdded: !1
35
+ };
36
+ var oneImportRegex = /import\s+{([^}]*)}\s+from\s+['"]one['"]/m,
37
+ match = content.match(oneImportRegex);
38
+ if (match) {
39
+ var existingImports = match[1].trim(),
40
+ newImports = existingImports ? `${existingImports}, createRoute` : "createRoute",
41
+ updatedContent = content.replace(oneImportRegex, `import { ${newImports} } from 'one'`);
42
+ return {
43
+ updatedContent,
44
+ importAdded: !0
45
+ };
46
+ }
47
+ var lastImportIndex = findLastImportIndex(content);
48
+ if (lastImportIndex >= 0) {
49
+ var lines = content.split(`
50
+ `);
51
+ return lines.splice(lastImportIndex + 1, 0, "import { createRoute } from 'one'"), {
52
+ updatedContent: lines.join(`
53
+ `),
54
+ importAdded: !0
55
+ };
56
+ }
57
+ var newImport = `import { createRoute } from 'one'
58
+ `;
59
+ return {
60
+ updatedContent: newImport + content,
61
+ importAdded: !0
62
+ };
63
+ }
64
+ function addRouteTypeImport(content) {
65
+ if (/import\s+type\s+[^'"]*RouteType[^'"]*from\s+['"]one['"]/m.test(content)) return {
66
+ updatedContent: content,
67
+ importAdded: !1
68
+ };
69
+ var oneTypeImportRegex = /import\s+type\s+{([^}]*)}\s+from\s+['"]one['"]/m,
70
+ match = content.match(oneTypeImportRegex);
71
+ if (match) {
72
+ var existingImports = match[1].trim(),
73
+ newImports = existingImports ? `${existingImports}, RouteType` : "RouteType",
74
+ updatedContent = content.replace(oneTypeImportRegex, `import type { ${newImports} } from 'one'`);
75
+ return {
76
+ updatedContent,
77
+ importAdded: !0
78
+ };
79
+ }
80
+ var lastImportIndex = findLastImportIndex(content);
81
+ if (lastImportIndex >= 0) {
82
+ var lines = content.split(`
83
+ `);
84
+ return lines.splice(lastImportIndex + 1, 0, "import type { RouteType } from 'one'"), {
85
+ updatedContent: lines.join(`
86
+ `),
87
+ importAdded: !0
88
+ };
89
+ }
90
+ var newImport = `import type { RouteType } from 'one'
91
+ `;
92
+ return {
93
+ updatedContent: newImport + content,
94
+ importAdded: !0
95
+ };
96
+ }
97
+ function findLastImportIndex(content) {
98
+ for (var lines = content.split(`
99
+ `), lastImportIndex = -1, i = 0; i < lines.length; i++) {
100
+ var line = lines[i].trim();
101
+ if (line.startsWith("import ") || lastImportIndex >= 0 && (line.startsWith("from ") || line === "}")) lastImportIndex = i;else if (lastImportIndex >= 0 && line && !line.startsWith("//")) break;
102
+ }
103
+ return lastImportIndex;
104
+ }
105
+ function insertAfterImports(content, codeToInsert) {
106
+ var lines = content.split(`
107
+ `),
108
+ lastImportIndex = findLastImportIndex(content);
109
+ if (lastImportIndex >= 0) {
110
+ var nextLine = lines[lastImportIndex + 1],
111
+ hasBlankLine = nextLine === "";
112
+ return hasBlankLine ? lines.splice(lastImportIndex + 2, 0, codeToInsert, "") : lines.splice(lastImportIndex + 1, 0, "", codeToInsert, ""), lines.join(`
113
+ `);
114
+ }
115
+ return codeToInsert + `
116
+
117
+ ` + content;
118
+ }
119
+ export { injectRouteHelpers };
120
+ //# sourceMappingURL=injectRouteHelpers.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["readFile","writeFile","existsSync","injectRouteHelpers","filePath","routePath","mode","content","modified","hasTypeRoute","test","hasConstRoute","updatedContent","addCreateRouteImport","routeDeclaration","insertAfterImports","updatedContent1","addRouteTypeImport","typeDeclaration","error","console","importAdded","oneImportRegex","match","existingImports","trim","newImports","replace","lastImportIndex","findLastImportIndex","lines","split","splice","join","newImport","oneTypeImportRegex"],"sources":["../../../src/typed-routes/injectRouteHelpers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -8,20 +8,27 @@ function getUserOneOptions() {
8
8
  throw new Error("One not loaded properly, is the one() plugin in your vite.config.ts?");
9
9
  return globalThis.__oneOptions;
10
10
  }
11
- async function loadUserOneOptions(command) {
12
- const config = await loadConfigFromFile({
13
- mode: command === "serve" ? "dev" : "prod",
14
- command
11
+ async function loadUserOneOptions(command, silent = !1) {
12
+ const originalConsoleError = console.error;
13
+ silent && (console.error = () => {
15
14
  });
16
- if (!config)
17
- throw new Error(`No config config in ${process.cwd()}. Is this the correct directory?`);
18
- const oneOptions = getUserOneOptions();
19
- if (!oneOptions)
20
- throw new Error("No One plugin config in this vite.config");
21
- return {
22
- config,
23
- oneOptions
24
- };
15
+ try {
16
+ const config = await loadConfigFromFile({
17
+ mode: command === "serve" ? "dev" : "prod",
18
+ command
19
+ });
20
+ if (!config)
21
+ throw new Error(`No config config in ${process.cwd()}. Is this the correct directory?`);
22
+ const oneOptions = getUserOneOptions();
23
+ if (!oneOptions)
24
+ throw new Error("No One plugin config in this vite.config");
25
+ return {
26
+ config,
27
+ oneOptions
28
+ };
29
+ } finally {
30
+ silent && (console.error = originalConsoleError);
31
+ }
25
32
  }
26
33
  export {
27
34
  loadUserOneOptions,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/vite/loadConfig.ts"],
4
- "mappings": "AAAA,SAAS,0BAA0B;AACnC,OAAO;AAKA,SAAS,cAAc,MAAyB;AACrD,aAAW,eAAe;AAC5B;AAEA,SAAS,oBAAoB;AAC3B,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,sEAAsE;AAExF,SAAO,WAAW;AACpB;AAEA,eAAsB,mBAAmB,SAA4B;AACnE,QAAM,SAAS,MAAM,mBAAmB;AAAA,IACtC,MAAM,YAAY,UAAU,QAAQ;AAAA,IACpC;AAAA,EACF,CAAC;AAED,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,uBAAuB,QAAQ,IAAI,CAAC,kCAAkC;AAGxF,QAAM,aAAa,kBAAkB;AAErC,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,0CAA0C;AAG5D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,0BAA0B;AACnC,OAAO;AAKA,SAAS,cAAc,MAAyB;AACrD,aAAW,eAAe;AAC5B;AAEA,SAAS,oBAAoB;AAC3B,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,sEAAsE;AAExF,SAAO,WAAW;AACpB;AAEA,eAAsB,mBAAmB,SAA4B,SAAS,IAAO;AAEnF,QAAM,uBAAuB,QAAQ;AACrC,EAAI,WACF,QAAQ,QAAQ,MAAM;AAAA,EAAC;AAGzB,MAAI;AACF,UAAM,SAAS,MAAM,mBAAmB;AAAA,MACtC,MAAM,YAAY,UAAU,QAAQ;AAAA,MACpC;AAAA,IACF,CAAC;AAED,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,uBAAuB,QAAQ,IAAI,CAAC,kCAAkC;AAGxF,UAAM,aAAa,kBAAkB;AAErC,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,0CAA0C;AAG5D,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,UAAE;AACA,IAAI,WACF,QAAQ,QAAQ;AAAA,EAEpB;AACF;",
5
5
  "names": []
6
6
  }
@@ -7,18 +7,24 @@ function getUserOneOptions() {
7
7
  if (!globalThis.__oneOptions) throw new Error("One not loaded properly, is the one() plugin in your vite.config.ts?");
8
8
  return globalThis.__oneOptions;
9
9
  }
10
- async function loadUserOneOptions(command) {
11
- const config = await loadConfigFromFile({
12
- mode: command === "serve" ? "dev" : "prod",
13
- command
14
- });
15
- if (!config) throw new Error(`No config config in ${process.cwd()}. Is this the correct directory?`);
16
- const oneOptions = getUserOneOptions();
17
- if (!oneOptions) throw new Error("No One plugin config in this vite.config");
18
- return {
19
- config,
20
- oneOptions
21
- };
10
+ async function loadUserOneOptions(command, silent = !1) {
11
+ const originalConsoleError = console.error;
12
+ silent && (console.error = () => {});
13
+ try {
14
+ const config = await loadConfigFromFile({
15
+ mode: command === "serve" ? "dev" : "prod",
16
+ command
17
+ });
18
+ if (!config) throw new Error(`No config config in ${process.cwd()}. Is this the correct directory?`);
19
+ const oneOptions = getUserOneOptions();
20
+ if (!oneOptions) throw new Error("No One plugin config in this vite.config");
21
+ return {
22
+ config,
23
+ oneOptions
24
+ };
25
+ } finally {
26
+ silent && (console.error = originalConsoleError);
27
+ }
22
28
  }
23
29
  export { loadUserOneOptions, setOneOptions };
24
30
  //# sourceMappingURL=loadConfig.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","config","mode","process","cwd","oneOptions"],"sources":["../../../src/vite/loadConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,OAAO;AAKA,SAASC,cAAcC,IAAA,EAAyB;EACrDC,UAAA,CAAWC,YAAA,GAAeF,IAAA;AAC5B;AAEA,SAASG,kBAAA,EAAoB;EAC3B,IAAI,CAACF,UAAA,CAAWC,YAAA,EACd,MAAM,IAAIE,KAAA,CAAM,sEAAsE;EAExF,OAAOH,UAAA,CAAWC,YAAA;AACpB;AAEA,eAAsBG,mBAAmBC,OAAA,EAA4B;EACnE,MAAMC,MAAA,GAAS,MAAMT,kBAAA,CAAmB;IACtCU,IAAA,EAAMF,OAAA,KAAY,UAAU,QAAQ;IACpCA;EACF,CAAC;EAED,IAAI,CAACC,MAAA,EACH,MAAM,IAAIH,KAAA,CAAM,uBAAuBK,OAAA,CAAQC,GAAA,CAAI,CAAC,kCAAkC;EAGxF,MAAMC,UAAA,GAAaR,iBAAA,CAAkB;EAErC,IAAI,CAACQ,UAAA,EACH,MAAM,IAAIP,KAAA,CAAM,0CAA0C;EAG5D,OAAO;IACLG,MAAA;IACAI;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","silent","originalConsoleError","console","error","config","mode","process","cwd","oneOptions"],"sources":["../../../src/vite/loadConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,OAAO;AAKA,SAASC,cAAcC,IAAA,EAAyB;EACrDC,UAAA,CAAWC,YAAA,GAAeF,IAAA;AAC5B;AAEA,SAASG,kBAAA,EAAoB;EAC3B,IAAI,CAACF,UAAA,CAAWC,YAAA,EACd,MAAM,IAAIE,KAAA,CAAM,sEAAsE;EAExF,OAAOH,UAAA,CAAWC,YAAA;AACpB;AAEA,eAAsBG,mBAAmBC,OAAA,EAA4BC,MAAA,GAAS,IAAO;EAEnF,MAAMC,oBAAA,GAAuBC,OAAA,CAAQC,KAAA;EACjCH,MAAA,KACFE,OAAA,CAAQC,KAAA,GAAQ,MAAM,CAAC;EAGzB,IAAI;IACF,MAAMC,MAAA,GAAS,MAAMb,kBAAA,CAAmB;MACtCc,IAAA,EAAMN,OAAA,KAAY,UAAU,QAAQ;MACpCA;IACF,CAAC;IAED,IAAI,CAACK,MAAA,EACH,MAAM,IAAIP,KAAA,CAAM,uBAAuBS,OAAA,CAAQC,GAAA,CAAI,CAAC,kCAAkC;IAGxF,MAAMC,UAAA,GAAaZ,iBAAA,CAAkB;IAErC,IAAI,CAACY,UAAA,EACH,MAAM,IAAIX,KAAA,CAAM,0CAA0C;IAG5D,OAAO;MACLO,MAAA;MACAI;IACF;EACF,UAAE;IACIR,MAAA,KACFE,OAAA,CAAQC,KAAA,GAAQF,oBAAA;EAEpB;AACF","ignoreList":[]}
@@ -8,17 +8,24 @@ function getUserOneOptions() {
8
8
  return globalThis.__oneOptions;
9
9
  }
10
10
  async function loadUserOneOptions(command) {
11
- var config = await loadConfigFromFile({
12
- mode: command === "serve" ? "dev" : "prod",
13
- command
14
- });
15
- if (!config) throw new Error(`No config config in ${process.cwd()}. Is this the correct directory?`);
16
- var oneOptions = getUserOneOptions();
17
- if (!oneOptions) throw new Error("No One plugin config in this vite.config");
18
- return {
19
- config,
20
- oneOptions
21
- };
11
+ var silent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1,
12
+ originalConsoleError = console.error;
13
+ silent && (console.error = function () {});
14
+ try {
15
+ var config = await loadConfigFromFile({
16
+ mode: command === "serve" ? "dev" : "prod",
17
+ command
18
+ });
19
+ if (!config) throw new Error(`No config config in ${process.cwd()}. Is this the correct directory?`);
20
+ var oneOptions = getUserOneOptions();
21
+ if (!oneOptions) throw new Error("No One plugin config in this vite.config");
22
+ return {
23
+ config,
24
+ oneOptions
25
+ };
26
+ } finally {
27
+ silent && (console.error = originalConsoleError);
28
+ }
22
29
  }
23
30
  export { loadUserOneOptions, setOneOptions };
24
31
  //# sourceMappingURL=loadConfig.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","config","mode","process","cwd","oneOptions"],"sources":["../../../src/vite/loadConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,OAAO;AAKA,SAASC,cAAcC,IAAA,EAAyB;EACrDC,UAAA,CAAWC,YAAA,GAAeF,IAAA;AAC5B;AAEA,SAASG,kBAAA,EAAoB;EAC3B,IAAI,CAACF,UAAA,CAAWC,YAAA,EACd,MAAM,IAAIE,KAAA,CAAM,sEAAsE;EAExF,OAAOH,UAAA,CAAWC,YAAA;AACpB;AAEA,eAAsBG,mBAAmBC,OAAA,EAA4B;EACnE,IAAAC,MAAM,SAAST,kBAAM;IACnBU,IAAA,EAAMF,OAAA,KAAY,UAAU,QAAQ;IACpCA;EACF,CAAC;EAED,IAAI,CAACC,MAAA,EACH,MAAM,IAAIH,KAAA,CAAM,uBAAuBK,OAAA,CAAQC,GAAA,CAAI,CAAC,kCAAkC;EAGxF,IAAAC,UAAM,GAAAR,iBAAa;EAEnB,IAAI,CAACQ,UAAA,EACH,MAAM,IAAIP,KAAA,CAAM,0CAA0C;EAG5D,OAAO;IACLG,MAAA;IACAI;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["loadConfigFromFile","setOneOptions","next","globalThis","__oneOptions","getUserOneOptions","Error","loadUserOneOptions","command","silent","arguments","length","originalConsoleError","console","error","config","mode","process","cwd","oneOptions"],"sources":["../../../src/vite/loadConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,OAAO;AAKA,SAASC,cAAcC,IAAA,EAAyB;EACrDC,UAAA,CAAWC,YAAA,GAAeF,IAAA;AAC5B;AAEA,SAASG,kBAAA,EAAoB;EAC3B,IAAI,CAACF,UAAA,CAAWC,YAAA,EACd,MAAM,IAAIE,KAAA,CAAM,sEAAsE;EAExF,OAAOH,UAAA,CAAWC,YAAA;AACpB;AAEA,eAAsBG,mBAAmBC,OAAA,EAA4B;EAEnE,IAAAC,MAAM,GAAAC,SAAA,CAAAC,MAAuB,QAAQD,SAAA,iBAAAA,SAAA;IAAAE,oBAAA,GAAAC,OAAA,CAAAC,KAAA;EACjCL,MAAA,KACFI,OAAA,CAAQC,KAAA,GAAQ,YAAM,CAAC;EAGzB,IAAI;IACF,IAAAC,MAAM,SAASf,kBAAM;MACnBgB,IAAA,EAAMR,OAAA,KAAY,UAAU,QAAQ;MACpCA;IACF,CAAC;IAED,IAAI,CAACO,MAAA,EACH,MAAM,IAAIT,KAAA,CAAM,uBAAuBW,OAAA,CAAQC,GAAA,CAAI,CAAC,kCAAkC;IAGxF,IAAAC,UAAM,GAAAd,iBAAa;IAEnB,IAAI,CAACc,UAAA,EACH,MAAM,IAAIb,KAAA,CAAM,0CAA0C;IAG5D,OAAO;MACLS,MAAA;MACAI;IACF;EACF,UAAE;IACIV,MAAA,KACFI,OAAA,CAAQC,KAAA,GAAQF,oBAAA;EAEpB;AACF","ignoreList":[]}
@@ -8,11 +8,21 @@ function generateFileSystemRouteTypesPlugin(options) {
8
8
  enforce: "post",
9
9
  apply: "serve",
10
10
  configureServer(server) {
11
- const appDir = join(process.cwd(), getRouterRootFromOneOptions(options)), outFile = join(appDir, "routes.d.ts"), routerRoot = getRouterRootFromOneOptions(options), fileWatcherChangeListener = debounce(async (type, path) => {
12
- (type === "add" || type === "delete") && path.startsWith(appDir) && generateRouteTypes(outFile, routerRoot, options.router?.ignoredRouteFiles);
11
+ const appDir = join(process.cwd(), getRouterRootFromOneOptions(options)), outFile = join(appDir, "routes.d.ts"), routerRoot = getRouterRootFromOneOptions(options), typedRoutesGeneration = options.router?.experimental?.typedRoutesGeneration || void 0, fileWatcherChangeListener = debounce(async (type, path) => {
12
+ (type === "add" || type === "delete" || type === "change") && path.startsWith(appDir) && generateRouteTypes(
13
+ outFile,
14
+ routerRoot,
15
+ options.router?.ignoredRouteFiles,
16
+ typedRoutesGeneration
17
+ );
13
18
  }, 100);
14
19
  return server.watcher.addListener("all", fileWatcherChangeListener), () => {
15
- generateRouteTypes(outFile, routerRoot, options.router?.ignoredRouteFiles);
20
+ generateRouteTypes(
21
+ outFile,
22
+ routerRoot,
23
+ options.router?.ignoredRouteFiles,
24
+ typedRoutesGeneration
25
+ );
16
26
  };
17
27
  }
18
28
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx"],
4
- "mappings": "AAAA,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AACnC,SAAS,mCAAmC;AAGrC,SAAS,mCAAmC,SAAoC;AACrF,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IAEP,gBAAgB,QAAQ;AACtB,YAAM,SAAS,KAAK,QAAQ,IAAI,GAAG,4BAA4B,OAAO,CAAC,GAEjE,UAAU,KAAK,QAAQ,aAAa,GAEpC,aAAa,4BAA4B,OAAO,GAGhD,4BAA4B,SAAS,OAAO,MAAc,SAAiB;AAC/E,SAAI,SAAS,SAAS,SAAS,aACzB,KAAK,WAAW,MAAM,KAExB,mBAAmB,SAAS,YAAY,QAAQ,QAAQ,iBAAiB;AAAA,MAG/E,GAAG,GAAG;AAEN,oBAAO,QAAQ,YAAY,OAAO,yBAAyB,GAEpD,MAAM;AAGX,2BAAmB,SAAS,YAAY,QAAQ,QAAQ,iBAAiB;AAAA,MAC3E;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AACnC,SAAS,mCAAmC;AAGrC,SAAS,mCAAmC,SAAoC;AACrF,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IAEP,gBAAgB,QAAQ;AACtB,YAAM,SAAS,KAAK,QAAQ,IAAI,GAAG,4BAA4B,OAAO,CAAC,GAEjE,UAAU,KAAK,QAAQ,aAAa,GAEpC,aAAa,4BAA4B,OAAO,GAChD,wBAAwB,QAAQ,QAAQ,cAAc,yBAAyB,QAG/E,4BAA4B,SAAS,OAAO,MAAc,SAAiB;AAC/E,SAAI,SAAS,SAAS,SAAS,YAAY,SAAS,aAC9C,KAAK,WAAW,MAAM,KAExB;AAAA,UACE;AAAA,UACA;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB;AAAA,QACF;AAAA,MAGN,GAAG,GAAG;AAEN,oBAAO,QAAQ,YAAY,OAAO,yBAAyB,GAEpD,MAAM;AAGX;AAAA,UACE;AAAA,UACA;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }