vxrn 0.1.47 → 0.1.49

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 (65) hide show
  1. package/dist/cjs/cli.js +5 -0
  2. package/dist/cjs/cli.js.map +1 -1
  3. package/dist/cjs/cli.native.js +41 -34
  4. package/dist/cjs/cli.native.js.map +1 -1
  5. package/dist/cjs/constants.js +1 -69
  6. package/dist/cjs/constants.js.map +1 -1
  7. package/dist/cjs/constants.native.js +1 -105
  8. package/dist/cjs/constants.native.js.map +2 -2
  9. package/dist/cjs/exports/build.js +76 -50
  10. package/dist/cjs/exports/build.js.map +2 -2
  11. package/dist/cjs/exports/build.native.js +257 -140
  12. package/dist/cjs/exports/build.native.js.map +2 -2
  13. package/dist/cjs/exports/dev.js +23 -19
  14. package/dist/cjs/exports/dev.js.map +1 -1
  15. package/dist/cjs/exports/dev.native.js +32 -30
  16. package/dist/cjs/exports/dev.native.js.map +2 -2
  17. package/dist/cjs/utils/assert.js +24 -0
  18. package/dist/cjs/utils/assert.js.map +6 -0
  19. package/dist/cjs/utils/assert.native.js +32 -0
  20. package/dist/cjs/utils/assert.native.js.map +6 -0
  21. package/dist/cjs/utils/getOptimizeDeps.js +134 -0
  22. package/dist/cjs/utils/getOptimizeDeps.js.map +6 -0
  23. package/dist/cjs/utils/getOptimizeDeps.native.js +173 -0
  24. package/dist/cjs/utils/getOptimizeDeps.native.js.map +6 -0
  25. package/dist/esm/cli.js +5 -0
  26. package/dist/esm/cli.js.map +1 -1
  27. package/dist/esm/cli.mjs +5 -0
  28. package/dist/esm/cli.native.js +41 -34
  29. package/dist/esm/cli.native.js.map +1 -1
  30. package/dist/esm/constants.js +1 -69
  31. package/dist/esm/constants.js.map +1 -1
  32. package/dist/esm/constants.mjs +2 -12
  33. package/dist/esm/constants.native.js +1 -103
  34. package/dist/esm/constants.native.js.map +2 -2
  35. package/dist/esm/exports/build.js +78 -52
  36. package/dist/esm/exports/build.js.map +2 -2
  37. package/dist/esm/exports/build.mjs +80 -55
  38. package/dist/esm/exports/build.native.js +260 -142
  39. package/dist/esm/exports/build.native.js.map +2 -2
  40. package/dist/esm/exports/dev.js +20 -15
  41. package/dist/esm/exports/dev.js.map +1 -1
  42. package/dist/esm/exports/dev.mjs +27 -20
  43. package/dist/esm/exports/dev.native.js +29 -26
  44. package/dist/esm/exports/dev.native.js.map +2 -2
  45. package/dist/esm/utils/assert.js +8 -0
  46. package/dist/esm/utils/assert.js.map +6 -0
  47. package/dist/esm/utils/assert.mjs +4 -0
  48. package/dist/esm/utils/assert.native.js +11 -0
  49. package/dist/esm/utils/assert.native.js.map +6 -0
  50. package/dist/esm/utils/getOptimizeDeps.js +118 -0
  51. package/dist/esm/utils/getOptimizeDeps.js.map +6 -0
  52. package/dist/esm/utils/getOptimizeDeps.mjs +18 -0
  53. package/dist/esm/utils/getOptimizeDeps.native.js +152 -0
  54. package/dist/esm/utils/getOptimizeDeps.native.js.map +6 -0
  55. package/package.json +10 -10
  56. package/src/cli.ts +5 -0
  57. package/src/constants.ts +0 -75
  58. package/src/exports/build.ts +118 -76
  59. package/src/exports/dev.ts +28 -21
  60. package/src/utils/assert.ts +5 -0
  61. package/src/utils/getOptimizeDeps.ts +124 -0
  62. package/types/constants.d.ts +0 -9
  63. package/types/exports/build.d.ts +5 -2
  64. package/types/utils/assert.d.ts +2 -0
  65. package/types/utils/getOptimizeDeps.d.ts +13 -0
@@ -1,34 +1,3 @@
1
- function _array_like_to_array(arr, len) {
2
- (len == null || len > arr.length) && (len = arr.length);
3
- for (var i = 0, arr2 = new Array(len); i < len; i++)
4
- arr2[i] = arr[i];
5
- return arr2;
6
- }
7
- function _array_without_holes(arr) {
8
- if (Array.isArray(arr))
9
- return _array_like_to_array(arr);
10
- }
11
- function _iterable_to_array(iter) {
12
- if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
13
- return Array.from(iter);
14
- }
15
- function _non_iterable_spread() {
16
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17
- }
18
- function _to_consumable_array(arr) {
19
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
20
- }
21
- function _unsupported_iterable_to_array(o, minLen) {
22
- if (o) {
23
- if (typeof o == "string")
24
- return _array_like_to_array(o, minLen);
25
- var n = Object.prototype.toString.call(o).slice(8, -1);
26
- if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
27
- return Array.from(n);
28
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
29
- return _array_like_to_array(o, minLen);
30
- }
31
- }
32
1
  var DEFAULT_PORT = 8081, nativeExtensions = [
33
2
  ".native.tsx",
34
3
  ".native.jsx",
@@ -51,81 +20,10 @@ var DEFAULT_PORT = 8081, nativeExtensions = [
51
20
  ".js",
52
21
  ".css",
53
22
  ".json"
54
- ], needsInterop = [
55
- "react",
56
- "react/jsx-runtime",
57
- "react/jsx-dev-runtime",
58
- "react-native-web-internals",
59
- "react-dom",
60
- "react-native-web",
61
- "react-dom/server",
62
- "react-dom/client",
63
- "url-parse",
64
- "@vxrn/safe-area",
65
- "query-string",
66
- "escape-string-regexp",
67
- "use-latest-callback",
68
- "react-is",
69
- "fast-deep-equal",
70
- "@react-navigation/native",
71
- "react-native-svg",
72
- "@supabase/auth-helpers-react",
73
- "parse-numeric-range",
74
- "use-sync-external-store",
75
- "use-sync-external-store/shim"
76
- ], depsToOptimize = _to_consumable_array(needsInterop).concat([
77
- "swr",
78
- "tamagui/linear-gradient",
79
- "@tamagui/linear-gradient",
80
- "@react-native/normalize-color",
81
- "@vxrn/router",
82
- "expo-modules-core",
83
- "expo-status-bar",
84
- "react-native-web",
85
- "react-native-web-lite",
86
- "react-native",
87
- "@tamagui/alert-dialog",
88
- "@tamagui/avatar",
89
- "@tamagui/core",
90
- "@tamagui/dialog",
91
- "@tamagui/group",
92
- "@tamagui/helpers-icon",
93
- "@tamagui/helpers",
94
- "@tamagui/image",
95
- "@tamagui/lucide-icons",
96
- "@tamagui/popover",
97
- "@tamagui/popper",
98
- "@tamagui/scroll-view",
99
- "@tamagui/select",
100
- "@tamagui/sheet",
101
- "@tamagui/switch",
102
- "@tamagui/tabs",
103
- "@tamagui/toast",
104
- "@tamagui/toggle-group",
105
- "@tamagui/tooltip",
106
- "@tamagui/use-window-dimensions",
107
- "@tamagui/web",
108
- "tamagui",
109
- "react-native-web",
110
- "react-native-web-lite",
111
- "reforest"
112
- ]), optimizeDeps = {
113
- include: depsToOptimize,
114
- exclude: [
115
- "util",
116
- "@swc/wasm",
117
- "@swc/core-darwin-arm64"
118
- ],
119
- needsInterop,
120
- esbuildOptions: {
121
- resolveExtensions: webExtensions
122
- }
123
- };
23
+ ];
124
24
  export {
125
25
  DEFAULT_PORT,
126
- depsToOptimize,
127
26
  nativeExtensions,
128
- optimizeDeps,
129
27
  webExtensions
130
28
  };
131
29
  //# sourceMappingURL=constants.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/vxrn/packages/vxrn/src/constants.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,eAAe,MAEfC,mBAAmB;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GAGWC,gBAAgB;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GAGIC,eAAe;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GAGWC,iBACX,qBAAGD,YAAAA,EAAAA,OADyB;EAE5B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,GAEYE,eAAe;EAC1BC,SAASF;EACTG,SAAS;IAAC;IAAQ;IAAa;;EAC/BJ;EACAK,gBAAgB;IACdC,mBAAmBP;EACrB;AACF;",
5
- "names": ["DEFAULT_PORT", "nativeExtensions", "webExtensions", "needsInterop", "depsToOptimize", "optimizeDeps", "include", "exclude", "esbuildOptions", "resolveExtensions"]
4
+ "mappings": "AAAO,IAAMA,eAAe,MAEfC,mBAAmB;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GAGWC,gBAAgB;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;",
5
+ "names": ["DEFAULT_PORT", "nativeExtensions", "webExtensions"]
6
6
  }
@@ -2,22 +2,25 @@ import { build as esbuild } from "esbuild";
2
2
  import { resolve as importMetaResolve } from "import-meta-resolve";
3
3
  import fs from "node:fs";
4
4
  import { tmpdir } from "node:os";
5
- import path from "node:path";
5
+ import Path from "node:path";
6
6
  import { mergeConfig, build as viteBuild } from "vite";
7
7
  import FSExtra from "fs-extra";
8
- import { optimizeDeps } from "../constants";
9
8
  import { getBaseViteConfig } from "../utils/getBaseViteConfig";
10
9
  import { getHtml } from "../utils/getHtml";
10
+ import { getOptimizeDeps } from "../utils/getOptimizeDeps";
11
11
  import { getOptionsFilled } from "../utils/getOptionsFilled";
12
- const resolveFile = (path2) => {
12
+ import { assertIsError } from "../utils/assert";
13
+ Error.stackTraceLimit = 1 / 0;
14
+ const resolveFile = (path) => {
13
15
  try {
14
- return importMetaResolve(path2, import.meta.url).replace("file://", "");
16
+ return importMetaResolve(path, import.meta.url).replace("file://", "");
15
17
  } catch {
16
- return require.resolve(path2);
18
+ return require.resolve(path);
17
19
  }
18
- }, { ensureDir, existsSync, readFile, pathExists } = FSExtra, build = async (optionsIn, { step } = {}) => {
20
+ }, { ensureDir, existsSync, readFile, pathExists } = FSExtra, build = async (optionsIn, buildOptions = {}) => {
19
21
  const options = await getOptionsFilled(optionsIn);
20
22
  process.env.NODE_ENV = "production";
23
+ const { optimizeDeps } = getOptimizeDeps("build");
21
24
  let webBuildConfig = mergeConfig(
22
25
  getBaseViteConfig({
23
26
  mode: "production"
@@ -28,7 +31,7 @@ const resolveFile = (path2) => {
28
31
  optimizeDeps
29
32
  }
30
33
  );
31
- options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), step !== "generate" && (console.info("build client"), await viteBuild(
34
+ options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), buildOptions.step !== "generate" && (console.info("build client"), await viteBuild(
32
35
  mergeConfig(webBuildConfig, {
33
36
  build: {
34
37
  ssrManifest: !0,
@@ -43,10 +46,10 @@ const resolveFile = (path2) => {
43
46
  // format: 'cjs',
44
47
  // },
45
48
  // },
46
- // ssr: {
47
- // noExternal: true,
48
- // optimizeDeps,
49
- // },
49
+ ssr: {
50
+ noExternal: optimizeDeps.include,
51
+ optimizeDeps
52
+ },
50
53
  build: {
51
54
  // we want one big file of css
52
55
  cssCodeSplit: !1,
@@ -61,37 +64,50 @@ const resolveFile = (path2) => {
61
64
  console.info("generating static pages"), await generateStaticPages(options, output);
62
65
  };
63
66
  async function generateStaticPages(options, serverOutput) {
64
- const toAbsolute = (p) => path.resolve(options.root, p), staticDir = toAbsolute("dist/static");
67
+ const toAbsolute = (p) => Path.resolve(options.root, p), staticDir = toAbsolute("dist/static");
65
68
  await ensureDir(staticDir);
66
- const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"), render = (await import(`${options.root}/dist/server/entry-server.js`)).render, assets = [], allRoutes = (await Promise.all(
67
- serverOutput.flatMap(async (output) => {
68
- if (output.type === "asset")
69
- return assets.push(output), [];
70
- const id = output.facadeModuleId || "", file = path.basename(id), name = file.replace(/\.[^/.]+$/, "");
71
- if (!id || file[0] === "_" || file.includes("entry-server"))
72
- return [];
73
- if (id.includes("+api"))
74
- return [];
75
- const exported = await import(path.join(options.root, "dist/server", output.fileName)), paramsList = await exported.generateStaticParams?.() ?? [{}];
76
- return await Promise.all(
77
- paramsList.map(async (params) => {
78
- const path2 = getUrl(params), loaderData = await exported.loader?.({ path: path2, params }) ?? {};
79
- return { path: path2, params, loaderData };
80
- })
81
- );
82
- function getUrl(_params = {}) {
83
- return name === "index" ? "/" : `/${name.split("/").map((part) => {
84
- if (part[0] === "[") {
85
- const found = _params[part.slice(1, part.length - 1)];
86
- return found || console.warn("not found", { _params, part }), found;
87
- }
88
- return part;
89
- }).join("/")}`;
69
+ const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"), render = (await import(`${options.root}/dist/server/entry-server.js`)).render, assets = [], allRoutes = [];
70
+ for (const output of serverOutput) {
71
+ let getUrl = function(_params = {}) {
72
+ if (name === "index")
73
+ return "/";
74
+ if (name.startsWith("[...")) {
75
+ const part = name.replace("[...", "").replace("]", "");
76
+ return `/${_params[part]}`;
90
77
  }
91
- })
92
- )).flat(), cssStringRaw = assets.filter((x) => x.name?.endsWith(".css")).map((x) => x.source).join(`
78
+ return `/${name.split("/").map((part) => {
79
+ if (part[0] === "[") {
80
+ const found = _params[part.slice(1, part.length - 1)];
81
+ return found || console.warn("not found", { _params, part }), found;
82
+ }
83
+ return part;
84
+ }).join("/")}`;
85
+ };
86
+ if (output.type === "asset") {
87
+ assets.push(output);
88
+ continue;
89
+ }
90
+ const id = output.facadeModuleId || "", file = Path.basename(id), name = file.replace(/\.[^/.]+$/, "");
91
+ if (!id || file[0] === "_" || file.includes("entry-server") || id.includes("+api"))
92
+ continue;
93
+ const endpointPath = Path.join(options.root, "dist/server", output.fileName);
94
+ let exported;
95
+ try {
96
+ exported = await import(endpointPath);
97
+ } catch (err) {
98
+ throw console.error("Error importing page (original error)", err), new Error(`Error importing page: ${endpointPath}`, {
99
+ cause: err
100
+ });
101
+ }
102
+ const paramsList = await exported.generateStaticParams?.() ?? [{}];
103
+ for (const params of paramsList) {
104
+ const path = getUrl(params), loaderData = await exported.loader?.({ path, params }) ?? {};
105
+ allRoutes.push({ path, params, loaderData });
106
+ }
107
+ }
108
+ const cssStringRaw = assets.filter((x) => x.name?.endsWith(".css")).map((x) => x.source).join(`
93
109
 
94
- `), tmpCssFile = path.join(tmpdir(), "tmp.css");
110
+ `), tmpCssFile = Path.join(tmpdir(), "tmp.css");
95
111
  await FSExtra.writeFile(tmpCssFile, cssStringRaw, "utf-8"), await esbuild({
96
112
  entryPoints: [tmpCssFile],
97
113
  target: "safari17",
@@ -102,19 +118,29 @@ async function generateStaticPages(options, serverOutput) {
102
118
  loader: { ".css": "css" }
103
119
  });
104
120
  const cssString = await FSExtra.readFile(tmpCssFile, "utf-8");
105
- for (const { path: path2, loaderData, params } of allRoutes) {
106
- const loaderProps = { params };
107
- globalThis.__vxrnLoaderProps__ = loaderProps;
108
- const { appHtml, headHtml } = await render({ path: path2 }), slashFileName = `${path2 === "/" ? "/index" : path2}.html`, clientHtmlPath = toAbsolute(`dist/client${slashFileName}`), clientHtml = existsSync(clientHtmlPath) ? await readFile(clientHtmlPath, "utf-8") : null, html = getHtml({
109
- template: clientHtml || template,
110
- appHtml,
111
- headHtml,
112
- loaderData,
113
- loaderProps,
114
- css: cssString
115
- }), filePath = toAbsolute(`dist/static${slashFileName}`);
116
- fs.writeFileSync(toAbsolute(filePath), html);
117
- }
121
+ for (const { path, loaderData, params } of allRoutes)
122
+ try {
123
+ const loaderProps = { params };
124
+ globalThis.__vxrnLoaderProps__ = loaderProps, console.info("render", path);
125
+ const { appHtml, headHtml } = await render({ path }), slashFileName = `${path === "/" ? "/index" : path}.html`, clientHtmlPath = toAbsolute(`dist/client${slashFileName}`), clientHtml = existsSync(clientHtmlPath) ? await readFile(clientHtmlPath, "utf-8") : null, html = getHtml({
126
+ template: clientHtml || template,
127
+ appHtml,
128
+ headHtml,
129
+ loaderData,
130
+ loaderProps,
131
+ css: cssString
132
+ }), filePath = toAbsolute(`dist/static${slashFileName}`);
133
+ await ensureDir(Path.dirname(filePath)), fs.writeFileSync(toAbsolute(filePath), html);
134
+ } catch (err) {
135
+ throw assertIsError(err), console.error("og error because cause not working", err), new Error(
136
+ `Error building static page: ${path} with:
137
+ loaderData: ${JSON.stringify(loaderData || null)}
138
+ params: ${JSON.stringify(params || null)}`,
139
+ {
140
+ cause: err
141
+ }
142
+ );
143
+ }
118
144
  }
119
145
  export {
120
146
  build,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/exports/build.ts"],
4
- "mappings": "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",
5
- "names": ["path"]
4
+ "mappings": "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",
5
+ "names": []
6
6
  }
@@ -2,18 +2,20 @@ import { build as esbuild } from "esbuild";
2
2
  import { resolve as importMetaResolve } from "import-meta-resolve";
3
3
  import fs from "node:fs";
4
4
  import { tmpdir } from "node:os";
5
- import path from "node:path";
5
+ import Path from "node:path";
6
6
  import { mergeConfig, build as viteBuild } from "vite";
7
7
  import FSExtra from "fs-extra";
8
- import { optimizeDeps } from "../constants.mjs";
9
8
  import { getBaseViteConfig } from "../utils/getBaseViteConfig.mjs";
10
9
  import { getHtml } from "../utils/getHtml.mjs";
10
+ import { getOptimizeDeps } from "../utils/getOptimizeDeps.mjs";
11
11
  import { getOptionsFilled } from "../utils/getOptionsFilled.mjs";
12
- const resolveFile = path2 => {
12
+ import { assertIsError } from "../utils/assert.mjs";
13
+ Error.stackTraceLimit = 1 / 0;
14
+ const resolveFile = path => {
13
15
  try {
14
- return importMetaResolve(path2, import.meta.url).replace("file://", "");
16
+ return importMetaResolve(path, import.meta.url).replace("file://", "");
15
17
  } catch {
16
- return require.resolve(path2);
18
+ return require.resolve(path);
17
19
  }
18
20
  },
19
21
  {
@@ -22,11 +24,12 @@ const resolveFile = path2 => {
22
24
  readFile,
23
25
  pathExists
24
26
  } = FSExtra,
25
- build = async (optionsIn, {
26
- step
27
- } = {}) => {
27
+ build = async (optionsIn, buildOptions = {}) => {
28
28
  const options = await getOptionsFilled(optionsIn);
29
29
  process.env.NODE_ENV = "production";
30
+ const {
31
+ optimizeDeps
32
+ } = getOptimizeDeps("build");
30
33
  let webBuildConfig = mergeConfig(getBaseViteConfig({
31
34
  mode: "production"
32
35
  }), {
@@ -34,7 +37,7 @@ const resolveFile = path2 => {
34
37
  clearScreen: !1,
35
38
  optimizeDeps
36
39
  });
37
- options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), step !== "generate" && (console.info("build client"), await viteBuild(mergeConfig(webBuildConfig, {
40
+ options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), buildOptions.step !== "generate" && (console.info("build client"), await viteBuild(mergeConfig(webBuildConfig, {
38
41
  build: {
39
42
  ssrManifest: !0,
40
43
  outDir: "dist/client"
@@ -48,10 +51,10 @@ const resolveFile = path2 => {
48
51
  // format: 'cjs',
49
52
  // },
50
53
  // },
51
- // ssr: {
52
- // noExternal: true,
53
- // optimizeDeps,
54
- // },
54
+ ssr: {
55
+ noExternal: optimizeDeps.include,
56
+ optimizeDeps
57
+ },
55
58
  build: {
56
59
  // we want one big file of css
57
60
  cssCodeSplit: !1,
@@ -65,50 +68,66 @@ const resolveFile = path2 => {
65
68
  console.info("generating static pages"), await generateStaticPages(options, output);
66
69
  };
67
70
  async function generateStaticPages(options, serverOutput) {
68
- const toAbsolute = p => path.resolve(options.root, p),
71
+ const toAbsolute = p => Path.resolve(options.root, p),
69
72
  staticDir = toAbsolute("dist/static");
70
73
  await ensureDir(staticDir);
71
74
  const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"),
72
75
  render = (await import(`${options.root}/dist/server/entry-server.js`)).render,
73
76
  assets = [],
74
- allRoutes = (await Promise.all(serverOutput.flatMap(async output => {
75
- if (output.type === "asset") return assets.push(output), [];
76
- const id = output.facadeModuleId || "",
77
- file = path.basename(id),
78
- name = file.replace(/\.[^/.]+$/, "");
79
- if (!id || file[0] === "_" || file.includes("entry-server")) return [];
80
- if (id.includes("+api")) return [];
81
- const exported = await import(path.join(options.root, "dist/server", output.fileName)),
82
- paramsList = (await exported.generateStaticParams?.()) ?? [{}];
83
- return await Promise.all(paramsList.map(async params => {
84
- const path2 = getUrl(params),
85
- loaderData = (await exported.loader?.({
86
- path: path2,
87
- params
88
- })) ?? {};
89
- return {
90
- path: path2,
91
- params,
92
- loaderData
93
- };
94
- }));
95
- function getUrl(_params = {}) {
96
- return name === "index" ? "/" : `/${name.split("/").map(part => {
97
- if (part[0] === "[") {
98
- const found = _params[part.slice(1, part.length - 1)];
99
- return found || console.warn("not found", {
100
- _params,
101
- part
102
- }), found;
103
- }
104
- return part;
105
- }).join("/")}`;
77
+ allRoutes = [];
78
+ for (const output of serverOutput) {
79
+ let getUrl = function (_params = {}) {
80
+ if (name === "index") return "/";
81
+ if (name.startsWith("[...")) {
82
+ const part = name.replace("[...", "").replace("]", "");
83
+ return `/${_params[part]}`;
106
84
  }
107
- }))).flat(),
108
- cssStringRaw = assets.filter(x => x.name?.endsWith(".css")).map(x => x.source).join(`
85
+ return `/${name.split("/").map(part => {
86
+ if (part[0] === "[") {
87
+ const found = _params[part.slice(1, part.length - 1)];
88
+ return found || console.warn("not found", {
89
+ _params,
90
+ part
91
+ }), found;
92
+ }
93
+ return part;
94
+ }).join("/")}`;
95
+ };
96
+ if (output.type === "asset") {
97
+ assets.push(output);
98
+ continue;
99
+ }
100
+ const id = output.facadeModuleId || "",
101
+ file = Path.basename(id),
102
+ name = file.replace(/\.[^/.]+$/, "");
103
+ if (!id || file[0] === "_" || file.includes("entry-server") || id.includes("+api")) continue;
104
+ const endpointPath = Path.join(options.root, "dist/server", output.fileName);
105
+ let exported;
106
+ try {
107
+ exported = await import(endpointPath);
108
+ } catch (err) {
109
+ throw console.error("Error importing page (original error)", err), new Error(`Error importing page: ${endpointPath}`, {
110
+ cause: err
111
+ });
112
+ }
113
+ const paramsList = (await exported.generateStaticParams?.()) ?? [{}];
114
+ for (const params of paramsList) {
115
+ const path = getUrl(params),
116
+ loaderData = (await exported.loader?.({
117
+ path,
118
+ params
119
+ })) ?? {};
120
+ allRoutes.push({
121
+ path,
122
+ params,
123
+ loaderData
124
+ });
125
+ }
126
+ }
127
+ const cssStringRaw = assets.filter(x => x.name?.endsWith(".css")).map(x => x.source).join(`
109
128
 
110
129
  `),
111
- tmpCssFile = path.join(tmpdir(), "tmp.css");
130
+ tmpCssFile = Path.join(tmpdir(), "tmp.css");
112
131
  await FSExtra.writeFile(tmpCssFile, cssStringRaw, "utf-8"), await esbuild({
113
132
  entryPoints: [tmpCssFile],
114
133
  target: "safari17",
@@ -122,21 +141,21 @@ async function generateStaticPages(options, serverOutput) {
122
141
  });
123
142
  const cssString = await FSExtra.readFile(tmpCssFile, "utf-8");
124
143
  for (const {
125
- path: path2,
144
+ path,
126
145
  loaderData,
127
146
  params
128
- } of allRoutes) {
147
+ } of allRoutes) try {
129
148
  const loaderProps = {
130
149
  params
131
150
  };
132
- globalThis.__vxrnLoaderProps__ = loaderProps;
151
+ globalThis.__vxrnLoaderProps__ = loaderProps, console.info("render", path);
133
152
  const {
134
153
  appHtml,
135
154
  headHtml
136
155
  } = await render({
137
- path: path2
156
+ path
138
157
  }),
139
- slashFileName = `${path2 === "/" ? "/index" : path2}.html`,
158
+ slashFileName = `${path === "/" ? "/index" : path}.html`,
140
159
  clientHtmlPath = toAbsolute(`dist/client${slashFileName}`),
141
160
  clientHtml = existsSync(clientHtmlPath) ? await readFile(clientHtmlPath, "utf-8") : null,
142
161
  html = getHtml({
@@ -148,7 +167,13 @@ async function generateStaticPages(options, serverOutput) {
148
167
  css: cssString
149
168
  }),
150
169
  filePath = toAbsolute(`dist/static${slashFileName}`);
151
- fs.writeFileSync(toAbsolute(filePath), html);
170
+ await ensureDir(Path.dirname(filePath)), fs.writeFileSync(toAbsolute(filePath), html);
171
+ } catch (err) {
172
+ throw assertIsError(err), console.error("og error because cause not working", err), new Error(`Error building static page: ${path} with:
173
+ loaderData: ${JSON.stringify(loaderData || null)}
174
+ params: ${JSON.stringify(params || null)}`, {
175
+ cause: err
176
+ });
152
177
  }
153
178
  }
154
179
  export { build, resolveFile };