vxrn 0.1.46 → 0.1.48

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 (85) hide show
  1. package/dist/cjs/cli.js +12 -2
  2. package/dist/cjs/cli.js.map +1 -1
  3. package/dist/cjs/cli.native.js +47 -35
  4. package/dist/cjs/cli.native.js.map +2 -2
  5. package/dist/cjs/constants.js +2 -70
  6. package/dist/cjs/constants.js.map +1 -1
  7. package/dist/cjs/constants.native.js +2 -105
  8. package/dist/cjs/constants.native.js.map +2 -2
  9. package/dist/cjs/exports/build.js +50 -62
  10. package/dist/cjs/exports/build.js.map +1 -1
  11. package/dist/cjs/exports/build.native.js +224 -205
  12. package/dist/cjs/exports/build.native.js.map +2 -2
  13. package/dist/cjs/exports/dev.js +39 -24
  14. package/dist/cjs/exports/dev.js.map +1 -1
  15. package/dist/cjs/exports/dev.native.js +48 -50
  16. package/dist/cjs/exports/dev.native.js.map +2 -2
  17. package/dist/cjs/utils/getHtml.js +9 -6
  18. package/dist/cjs/utils/getHtml.js.map +1 -1
  19. package/dist/cjs/utils/getHtml.native.js +9 -5
  20. package/dist/cjs/utils/getHtml.native.js.map +2 -2
  21. package/dist/cjs/utils/getOptimizeDeps.js +132 -0
  22. package/dist/cjs/utils/getOptimizeDeps.js.map +6 -0
  23. package/dist/cjs/utils/getOptimizeDeps.native.js +171 -0
  24. package/dist/cjs/utils/getOptimizeDeps.native.js.map +6 -0
  25. package/dist/cjs/utils/getVitePath.js +3 -1
  26. package/dist/cjs/utils/getVitePath.js.map +1 -1
  27. package/dist/cjs/utils/getVitePath.native.js +1 -1
  28. package/dist/cjs/utils/getVitePath.native.js.map +1 -1
  29. package/dist/cjs/utils/readVXRNConfig.js +5 -3
  30. package/dist/cjs/utils/readVXRNConfig.js.map +1 -1
  31. package/dist/cjs/utils/readVXRNConfig.native.js +5 -1
  32. package/dist/cjs/utils/readVXRNConfig.native.js.map +2 -2
  33. package/dist/esm/cli.js +12 -2
  34. package/dist/esm/cli.js.map +1 -1
  35. package/dist/esm/cli.mjs +12 -2
  36. package/dist/esm/cli.native.js +47 -35
  37. package/dist/esm/cli.native.js.map +2 -2
  38. package/dist/esm/constants.js +2 -70
  39. package/dist/esm/constants.js.map +1 -1
  40. package/dist/esm/constants.mjs +2 -13
  41. package/dist/esm/constants.native.js +2 -102
  42. package/dist/esm/constants.native.js.map +2 -2
  43. package/dist/esm/exports/build.js +47 -60
  44. package/dist/esm/exports/build.js.map +1 -1
  45. package/dist/esm/exports/build.mjs +64 -63
  46. package/dist/esm/exports/build.native.js +223 -204
  47. package/dist/esm/exports/build.native.js.map +2 -2
  48. package/dist/esm/exports/dev.js +37 -21
  49. package/dist/esm/exports/dev.js.map +1 -1
  50. package/dist/esm/exports/dev.mjs +39 -30
  51. package/dist/esm/exports/dev.native.js +46 -47
  52. package/dist/esm/exports/dev.native.js.map +2 -2
  53. package/dist/esm/utils/getHtml.js +9 -6
  54. package/dist/esm/utils/getHtml.js.map +1 -1
  55. package/dist/esm/utils/getHtml.mjs +11 -4
  56. package/dist/esm/utils/getHtml.native.js +9 -5
  57. package/dist/esm/utils/getHtml.native.js.map +2 -2
  58. package/dist/esm/utils/getOptimizeDeps.js +116 -0
  59. package/dist/esm/utils/getOptimizeDeps.js.map +6 -0
  60. package/dist/esm/utils/getOptimizeDeps.mjs +18 -0
  61. package/dist/esm/utils/getOptimizeDeps.native.js +150 -0
  62. package/dist/esm/utils/getOptimizeDeps.native.js.map +6 -0
  63. package/dist/esm/utils/getVitePath.js +3 -1
  64. package/dist/esm/utils/getVitePath.js.map +1 -1
  65. package/dist/esm/utils/getVitePath.mjs +1 -1
  66. package/dist/esm/utils/getVitePath.native.js +1 -1
  67. package/dist/esm/utils/getVitePath.native.js.map +1 -1
  68. package/dist/esm/utils/readVXRNConfig.js +5 -3
  69. package/dist/esm/utils/readVXRNConfig.js.map +1 -1
  70. package/dist/esm/utils/readVXRNConfig.mjs +5 -1
  71. package/dist/esm/utils/readVXRNConfig.native.js +5 -1
  72. package/dist/esm/utils/readVXRNConfig.native.js.map +2 -2
  73. package/package.json +10 -10
  74. package/src/cli.ts +12 -2
  75. package/src/constants.ts +0 -77
  76. package/src/exports/build.ts +96 -100
  77. package/src/exports/dev.ts +49 -39
  78. package/src/utils/getHtml.ts +21 -6
  79. package/src/utils/getOptimizeDeps.ts +122 -0
  80. package/src/utils/getVitePath.ts +3 -1
  81. package/src/utils/readVXRNConfig.ts +6 -4
  82. package/types/constants.d.ts +0 -10
  83. package/types/exports/build.d.ts +6 -1
  84. package/types/utils/getHtml.d.ts +2 -1
  85. package/types/utils/getOptimizeDeps.d.ts +13 -0
@@ -1,4 +1,4 @@
1
- const DEFAULT_PORT = 8081, EMPTY_LOADER_STRING = "function loader() {/* \u2737\u2737\u2737 */};", nativeExtensions = [
1
+ const DEFAULT_PORT = 8081, nativeExtensions = [
2
2
  ".native.tsx",
3
3
  ".native.jsx",
4
4
  ".native.js",
@@ -20,78 +20,10 @@ const DEFAULT_PORT = 8081, EMPTY_LOADER_STRING = "function loader() {/* \u2737\u
20
20
  ".js",
21
21
  ".css",
22
22
  ".json"
23
- ], needsInterop = [
24
- "react",
25
- "react/jsx-runtime",
26
- "react/jsx-dev-runtime",
27
- "react-native-web-internals",
28
- "react-dom",
29
- "react-native-web",
30
- "react-dom/server",
31
- "react-dom/client",
32
- "url-parse",
33
- "@vxrn/safe-area",
34
- "query-string",
35
- "escape-string-regexp",
36
- "use-latest-callback",
37
- "react-is",
38
- "fast-deep-equal",
39
- "@react-navigation/native",
40
- "tamagui/linear-gradient",
41
- "react-native-svg",
42
- "@supabase/auth-helpers-react",
43
- "parse-numeric-range",
44
- "use-sync-external-store",
45
- "use-sync-external-store/shim",
46
- "swr"
47
- ], depsToOptimize = [
48
- ...needsInterop,
49
- "@react-native/normalize-color",
50
- "@vxrn/router",
51
- "expo-modules-core",
52
- "expo-status-bar",
53
- "react-native-web",
54
- "react-native-web-lite",
55
- "react-native",
56
- "@tamagui/alert-dialog",
57
- "@tamagui/avatar",
58
- "@tamagui/core",
59
- "@tamagui/dialog",
60
- "@tamagui/group",
61
- "@tamagui/helpers-icon",
62
- "@tamagui/helpers",
63
- "@tamagui/image",
64
- "@tamagui/lucide-icons",
65
- "@tamagui/popover",
66
- "@tamagui/popper",
67
- "@tamagui/scroll-view",
68
- "@tamagui/select",
69
- "@tamagui/sheet",
70
- "@tamagui/switch",
71
- "@tamagui/tabs",
72
- "@tamagui/toast",
73
- "@tamagui/toggle-group",
74
- "@tamagui/tooltip",
75
- "@tamagui/use-window-dimensions",
76
- "@tamagui/web",
77
- "tamagui",
78
- "react-native-web",
79
- "react-native-web-lite",
80
- "reforest"
81
- ], optimizeDeps = {
82
- include: depsToOptimize,
83
- needsInterop,
84
- exclude: ["util"],
85
- esbuildOptions: {
86
- resolveExtensions: webExtensions
87
- }
88
- };
23
+ ];
89
24
  export {
90
25
  DEFAULT_PORT,
91
- EMPTY_LOADER_STRING,
92
- depsToOptimize,
93
26
  nativeExtensions,
94
- optimizeDeps,
95
27
  webExtensions
96
28
  };
97
29
  //# sourceMappingURL=constants.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.ts"],
4
- "mappings": "AAEO,MAAM,eAAe,MAGf,sBAAsB,iDAEtB,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,iBAAiB;AAAA,EAC5B,GAAG;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,eAAe;AAAA,EAC1B,SAAS;AAAA,EACT;AAAA,EACA,SAAS,CAAC,MAAM;AAAA,EAChB,gBAAgB;AAAA,IACd,mBAAmB;AAAA,EACrB;AACF;",
4
+ "mappings": "AAAO,MAAM,eAAe,MAEf,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,15 +1,4 @@
1
1
  const DEFAULT_PORT = 8081,
2
- EMPTY_LOADER_STRING = "function loader() {/* \u2737\u2737\u2737 */};",
3
2
  nativeExtensions = [".native.tsx", ".native.jsx", ".native.js", ".tsx", ".ts", ".js", ".css", ".json"],
4
- webExtensions = [".web.tsx", ".tsx", ".web.ts", ".ts", ".web.jsx", ".jsx", ".web.js", ".web.mjs", ".mjs", ".js", ".css", ".json"],
5
- needsInterop = ["react", "react/jsx-runtime", "react/jsx-dev-runtime", "react-native-web-internals", "react-dom", "react-native-web", "react-dom/server", "react-dom/client", "url-parse", "@vxrn/safe-area", "query-string", "escape-string-regexp", "use-latest-callback", "react-is", "fast-deep-equal", "@react-navigation/native", "tamagui/linear-gradient", "react-native-svg", "@supabase/auth-helpers-react", "parse-numeric-range", "use-sync-external-store", "use-sync-external-store/shim", "swr"],
6
- depsToOptimize = [...needsInterop, "@react-native/normalize-color", "@vxrn/router", "expo-modules-core", "expo-status-bar", "react-native-web", "react-native-web-lite", "react-native", "@tamagui/alert-dialog", "@tamagui/avatar", "@tamagui/core", "@tamagui/dialog", "@tamagui/group", "@tamagui/helpers-icon", "@tamagui/helpers", "@tamagui/image", "@tamagui/lucide-icons", "@tamagui/popover", "@tamagui/popper", "@tamagui/scroll-view", "@tamagui/select", "@tamagui/sheet", "@tamagui/switch", "@tamagui/tabs", "@tamagui/toast", "@tamagui/toggle-group", "@tamagui/tooltip", "@tamagui/use-window-dimensions", "@tamagui/web", "tamagui", "react-native-web", "react-native-web-lite", "reforest"],
7
- optimizeDeps = {
8
- include: depsToOptimize,
9
- needsInterop,
10
- exclude: ["util"],
11
- esbuildOptions: {
12
- resolveExtensions: webExtensions
13
- }
14
- };
15
- export { DEFAULT_PORT, EMPTY_LOADER_STRING, depsToOptimize, nativeExtensions, optimizeDeps, webExtensions };
3
+ webExtensions = [".web.tsx", ".tsx", ".web.ts", ".ts", ".web.jsx", ".jsx", ".web.js", ".web.mjs", ".mjs", ".js", ".css", ".json"];
4
+ export { DEFAULT_PORT, nativeExtensions, webExtensions };
@@ -1,35 +1,4 @@
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
- var DEFAULT_PORT = 8081, EMPTY_LOADER_STRING = "function loader() {/* \u2737\u2737\u2737 */};", nativeExtensions = [
1
+ var DEFAULT_PORT = 8081, nativeExtensions = [
33
2
  ".native.tsx",
34
3
  ".native.jsx",
35
4
  ".native.js",
@@ -51,79 +20,10 @@ var DEFAULT_PORT = 8081, EMPTY_LOADER_STRING = "function loader() {/* \u2737\u27
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
- "tamagui/linear-gradient",
72
- "react-native-svg",
73
- "@supabase/auth-helpers-react",
74
- "parse-numeric-range",
75
- "use-sync-external-store",
76
- "use-sync-external-store/shim",
77
- "swr"
78
- ], depsToOptimize = _to_consumable_array(needsInterop).concat([
79
- "@react-native/normalize-color",
80
- "@vxrn/router",
81
- "expo-modules-core",
82
- "expo-status-bar",
83
- "react-native-web",
84
- "react-native-web-lite",
85
- "react-native",
86
- "@tamagui/alert-dialog",
87
- "@tamagui/avatar",
88
- "@tamagui/core",
89
- "@tamagui/dialog",
90
- "@tamagui/group",
91
- "@tamagui/helpers-icon",
92
- "@tamagui/helpers",
93
- "@tamagui/image",
94
- "@tamagui/lucide-icons",
95
- "@tamagui/popover",
96
- "@tamagui/popper",
97
- "@tamagui/scroll-view",
98
- "@tamagui/select",
99
- "@tamagui/sheet",
100
- "@tamagui/switch",
101
- "@tamagui/tabs",
102
- "@tamagui/toast",
103
- "@tamagui/toggle-group",
104
- "@tamagui/tooltip",
105
- "@tamagui/use-window-dimensions",
106
- "@tamagui/web",
107
- "tamagui",
108
- "react-native-web",
109
- "react-native-web-lite",
110
- "reforest"
111
- ]), optimizeDeps = {
112
- include: depsToOptimize,
113
- needsInterop,
114
- exclude: [
115
- "util"
116
- ],
117
- esbuildOptions: {
118
- resolveExtensions: webExtensions
119
- }
120
- };
23
+ ];
121
24
  export {
122
25
  DEFAULT_PORT,
123
- EMPTY_LOADER_STRING,
124
- depsToOptimize,
125
26
  nativeExtensions,
126
- optimizeDeps,
127
27
  webExtensions
128
28
  };
129
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,MAGfC,sBAAuB,iDAEvBC,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;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;CACD,GAEYE,eAAe;EAC1BC,SAASF;EACTD;EACAI,SAAS;IAAC;;EACVC,gBAAgB;IACdC,mBAAmBP;EACrB;AACF;",
5
- "names": ["DEFAULT_PORT", "EMPTY_LOADER_STRING", "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,24 @@ 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, { dirname, resolve } 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
8
  import { getBaseViteConfig } from "../utils/getBaseViteConfig";
9
9
  import { getHtml } from "../utils/getHtml";
10
+ import { getOptimizeDeps } from "../utils/getOptimizeDeps";
10
11
  import { getOptionsFilled } from "../utils/getOptionsFilled";
11
- import { optimizeDeps } from "../constants";
12
+ Error.stackTraceLimit = 1 / 0;
12
13
  const resolveFile = (path2) => {
13
14
  try {
14
15
  return importMetaResolve(path2, import.meta.url).replace("file://", "");
15
16
  } catch {
16
17
  return require.resolve(path2);
17
18
  }
18
- }, { ensureDir, existsSync, readFile, pathExists } = FSExtra, build = async (optionsIn) => {
19
+ }, { ensureDir, existsSync, readFile, pathExists } = FSExtra, build = async (optionsIn, buildOptions = {}) => {
19
20
  const options = await getOptionsFilled(optionsIn);
20
21
  process.env.NODE_ENV = "production";
22
+ const { optimizeDeps } = getOptimizeDeps("build");
21
23
  let webBuildConfig = mergeConfig(
22
24
  getBaseViteConfig({
23
25
  mode: "production"
@@ -28,45 +30,23 @@ const resolveFile = (path2) => {
28
30
  optimizeDeps
29
31
  }
30
32
  );
31
- options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), console.info("build client"), await viteBuild(
33
+ options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), buildOptions.step !== "generate" && (console.info("build client"), await viteBuild(
32
34
  mergeConfig(webBuildConfig, {
33
35
  build: {
34
36
  ssrManifest: !0,
35
37
  outDir: "dist/client"
36
38
  }
37
39
  })
38
- ), console.info("build server");
40
+ )), console.info("build server");
39
41
  const { output } = await viteBuild(
40
42
  mergeConfig(webBuildConfig, {
41
- plugins: [
42
- {
43
- name: "test",
44
- enforce: "pre",
45
- async resolveId(id, importer = "") {
46
- if (id[0] === ".") {
47
- const absolutePath = resolve(dirname(importer), id), webPath = absolutePath.replace(/(.m?js)/, "") + ".web.js";
48
- if (webPath === id)
49
- return;
50
- try {
51
- const directoryPath = absolutePath + "/index.web.js";
52
- if (await pathExists(directoryPath))
53
- return console.info(`temp fix found ${directoryPath}`), directoryPath;
54
- if (await pathExists(webPath))
55
- return console.info(`temp fix found ${webPath}`), webPath;
56
- } catch (err) {
57
- console.warn("error probably fine", err);
58
- }
59
- }
60
- }
61
- }
62
- ],
63
- optimizeDeps: {
64
- esbuildOptions: {
65
- format: "cjs"
66
- }
67
- },
43
+ // optimizeDeps: {
44
+ // esbuildOptions: {
45
+ // format: 'cjs',
46
+ // },
47
+ // },
68
48
  ssr: {
69
- noExternal: !0,
49
+ noExternal: optimizeDeps.include,
70
50
  optimizeDeps
71
51
  },
72
52
  build: {
@@ -85,33 +65,37 @@ const resolveFile = (path2) => {
85
65
  async function generateStaticPages(options, serverOutput) {
86
66
  const toAbsolute = (p) => path.resolve(options.root, p), staticDir = toAbsolute("dist/static");
87
67
  await ensureDir(staticDir);
88
- 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(
89
- serverOutput.flatMap(async (output) => {
90
- if (output.type === "asset")
91
- return assets.push(output), [];
92
- const id = output.facadeModuleId || "", file = path.basename(id), name = file.replace(/\.[^/.]+$/, "");
93
- if (!id || file[0] === "_" || file.includes("entry-server"))
94
- return [];
95
- if (id.includes("+api"))
96
- return [];
97
- const exported = await import(path.join(options.root, "dist/server", output.fileName)), paramsList = await exported.generateStaticParams?.() ?? [{}];
98
- return await Promise.all(
99
- paramsList.map(async (params) => {
100
- const path2 = getUrl(params), loaderData = await exported.loader?.({ path: getUrl(params), params }) ?? {};
101
- return { path: path2, loaderData };
102
- })
103
- );
104
- function getUrl(_params = {}) {
105
- return name === "index" ? "/" : `/${name.split("/").map((part) => {
106
- if (part[0] === "[") {
107
- const found = _params[part.slice(1, part.length - 1)];
108
- return found || console.warn("not found", { _params, part }), found;
109
- }
110
- return part;
111
- }).join("/")}`;
68
+ const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"), render = (await import(`${options.root}/dist/server/entry-server.js`)).render, assets = [], allRoutes = [];
69
+ for (const output of serverOutput) {
70
+ let getUrl = function(_params = {}) {
71
+ if (name === "index")
72
+ return "/";
73
+ if (name.startsWith("[...")) {
74
+ const part = name.replace("[...", "").replace("]", "");
75
+ return `/${_params[part]}`;
112
76
  }
113
- })
114
- )).flat(), cssStringRaw = assets.filter((x) => x.name?.endsWith(".css")).map((x) => x.source).join(`
77
+ return `/${name.split("/").map((part) => {
78
+ if (part[0] === "[") {
79
+ const found = _params[part.slice(1, part.length - 1)];
80
+ return found || console.warn("not found", { _params, part }), found;
81
+ }
82
+ return part;
83
+ }).join("/")}`;
84
+ };
85
+ if (output.type === "asset") {
86
+ assets.push(output);
87
+ continue;
88
+ }
89
+ const id = output.facadeModuleId || "", file = path.basename(id), name = file.replace(/\.[^/.]+$/, "");
90
+ if (!id || file[0] === "_" || file.includes("entry-server") || id.includes("+api"))
91
+ continue;
92
+ const exported = await import(path.join(options.root, "dist/server", output.fileName)), paramsList = await exported.generateStaticParams?.() ?? [{}];
93
+ for (const params of paramsList) {
94
+ const path2 = getUrl(params), loaderData = await exported.loader?.({ path: path2, params }) ?? {};
95
+ allRoutes.push({ path: path2, params, loaderData });
96
+ }
97
+ }
98
+ const cssStringRaw = assets.filter((x) => x.name?.endsWith(".css")).map((x) => x.source).join(`
115
99
 
116
100
  `), tmpCssFile = path.join(tmpdir(), "tmp.css");
117
101
  await FSExtra.writeFile(tmpCssFile, cssStringRaw, "utf-8"), await esbuild({
@@ -124,12 +108,15 @@ async function generateStaticPages(options, serverOutput) {
124
108
  loader: { ".css": "css" }
125
109
  });
126
110
  const cssString = await FSExtra.readFile(tmpCssFile, "utf-8");
127
- for (const { path: path2, loaderData } of allRoutes) {
111
+ for (const { path: path2, loaderData, params } of allRoutes) {
112
+ const loaderProps = { params };
113
+ globalThis.__vxrnLoaderProps__ = loaderProps, console.info("render", path2);
128
114
  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({
129
115
  template: clientHtml || template,
130
116
  appHtml,
131
117
  headHtml,
132
118
  loaderData,
119
+ loaderProps,
133
120
  css: cssString
134
121
  }), filePath = toAbsolute(`dist/static${slashFileName}`);
135
122
  fs.writeFileSync(toAbsolute(filePath), html);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/exports/build.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["path"]
6
6
  }
@@ -2,13 +2,14 @@ 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, { dirname, resolve } 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
8
  import { getBaseViteConfig } from "../utils/getBaseViteConfig.mjs";
9
9
  import { getHtml } from "../utils/getHtml.mjs";
10
+ import { getOptimizeDeps } from "../utils/getOptimizeDeps.mjs";
10
11
  import { getOptionsFilled } from "../utils/getOptionsFilled.mjs";
11
- import { optimizeDeps } from "../constants.mjs";
12
+ Error.stackTraceLimit = 1 / 0;
12
13
  const resolveFile = path2 => {
13
14
  try {
14
15
  return importMetaResolve(path2, import.meta.url).replace("file://", "");
@@ -22,9 +23,12 @@ const resolveFile = path2 => {
22
23
  readFile,
23
24
  pathExists
24
25
  } = FSExtra,
25
- build = async optionsIn => {
26
+ build = async (optionsIn, buildOptions = {}) => {
26
27
  const options = await getOptionsFilled(optionsIn);
27
28
  process.env.NODE_ENV = "production";
29
+ const {
30
+ optimizeDeps
31
+ } = getOptimizeDeps("build");
28
32
  let webBuildConfig = mergeConfig(getBaseViteConfig({
29
33
  mode: "production"
30
34
  }), {
@@ -32,40 +36,22 @@ const resolveFile = path2 => {
32
36
  clearScreen: !1,
33
37
  optimizeDeps
34
38
  });
35
- options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), console.info("build client"), await viteBuild(mergeConfig(webBuildConfig, {
39
+ options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), buildOptions.step !== "generate" && (console.info("build client"), await viteBuild(mergeConfig(webBuildConfig, {
36
40
  build: {
37
41
  ssrManifest: !0,
38
42
  outDir: "dist/client"
39
43
  }
40
- })), console.info("build server");
44
+ }))), console.info("build server");
41
45
  const {
42
46
  output
43
47
  } = await viteBuild(mergeConfig(webBuildConfig, {
44
- plugins: [{
45
- name: "test",
46
- enforce: "pre",
47
- async resolveId(id, importer = "") {
48
- if (id[0] === ".") {
49
- const absolutePath = resolve(dirname(importer), id),
50
- webPath = absolutePath.replace(/(.m?js)/, "") + ".web.js";
51
- if (webPath === id) return;
52
- try {
53
- const directoryPath = absolutePath + "/index.web.js";
54
- if (await pathExists(directoryPath)) return console.info(`temp fix found ${directoryPath}`), directoryPath;
55
- if (await pathExists(webPath)) return console.info(`temp fix found ${webPath}`), webPath;
56
- } catch (err) {
57
- console.warn("error probably fine", err);
58
- }
59
- }
60
- }
61
- }],
62
- optimizeDeps: {
63
- esbuildOptions: {
64
- format: "cjs"
65
- }
66
- },
48
+ // optimizeDeps: {
49
+ // esbuildOptions: {
50
+ // format: 'cjs',
51
+ // },
52
+ // },
67
53
  ssr: {
68
- noExternal: !0,
54
+ noExternal: optimizeDeps.include,
69
55
  optimizeDeps
70
56
  },
71
57
  build: {
@@ -87,40 +73,49 @@ async function generateStaticPages(options, serverOutput) {
87
73
  const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"),
88
74
  render = (await import(`${options.root}/dist/server/entry-server.js`)).render,
89
75
  assets = [],
90
- allRoutes = (await Promise.all(serverOutput.flatMap(async output => {
91
- if (output.type === "asset") return assets.push(output), [];
92
- const id = output.facadeModuleId || "",
93
- file = path.basename(id),
94
- name = file.replace(/\.[^/.]+$/, "");
95
- if (!id || file[0] === "_" || file.includes("entry-server")) return [];
96
- if (id.includes("+api")) return [];
97
- const exported = await import(path.join(options.root, "dist/server", output.fileName)),
98
- paramsList = (await exported.generateStaticParams?.()) ?? [{}];
99
- return await Promise.all(paramsList.map(async params => {
100
- const path2 = getUrl(params),
101
- loaderData = (await exported.loader?.({
102
- path: getUrl(params),
103
- params
104
- })) ?? {};
105
- return {
106
- path: path2,
107
- loaderData
108
- };
109
- }));
110
- function getUrl(_params = {}) {
111
- return name === "index" ? "/" : `/${name.split("/").map(part => {
112
- if (part[0] === "[") {
113
- const found = _params[part.slice(1, part.length - 1)];
114
- return found || console.warn("not found", {
115
- _params,
116
- part
117
- }), found;
118
- }
119
- return part;
120
- }).join("/")}`;
76
+ allRoutes = [];
77
+ for (const output of serverOutput) {
78
+ let getUrl = function (_params = {}) {
79
+ if (name === "index") return "/";
80
+ if (name.startsWith("[...")) {
81
+ const part = name.replace("[...", "").replace("]", "");
82
+ return `/${_params[part]}`;
121
83
  }
122
- }))).flat(),
123
- cssStringRaw = assets.filter(x => x.name?.endsWith(".css")).map(x => x.source).join(`
84
+ return `/${name.split("/").map(part => {
85
+ if (part[0] === "[") {
86
+ const found = _params[part.slice(1, part.length - 1)];
87
+ return found || console.warn("not found", {
88
+ _params,
89
+ part
90
+ }), found;
91
+ }
92
+ return part;
93
+ }).join("/")}`;
94
+ };
95
+ if (output.type === "asset") {
96
+ assets.push(output);
97
+ continue;
98
+ }
99
+ const id = output.facadeModuleId || "",
100
+ file = path.basename(id),
101
+ name = file.replace(/\.[^/.]+$/, "");
102
+ if (!id || file[0] === "_" || file.includes("entry-server") || id.includes("+api")) continue;
103
+ const exported = await import(path.join(options.root, "dist/server", output.fileName)),
104
+ paramsList = (await exported.generateStaticParams?.()) ?? [{}];
105
+ for (const params of paramsList) {
106
+ const path2 = getUrl(params),
107
+ loaderData = (await exported.loader?.({
108
+ path: path2,
109
+ params
110
+ })) ?? {};
111
+ allRoutes.push({
112
+ path: path2,
113
+ params,
114
+ loaderData
115
+ });
116
+ }
117
+ }
118
+ const cssStringRaw = assets.filter(x => x.name?.endsWith(".css")).map(x => x.source).join(`
124
119
 
125
120
  `),
126
121
  tmpCssFile = path.join(tmpdir(), "tmp.css");
@@ -138,8 +133,13 @@ async function generateStaticPages(options, serverOutput) {
138
133
  const cssString = await FSExtra.readFile(tmpCssFile, "utf-8");
139
134
  for (const {
140
135
  path: path2,
141
- loaderData
136
+ loaderData,
137
+ params
142
138
  } of allRoutes) {
139
+ const loaderProps = {
140
+ params
141
+ };
142
+ globalThis.__vxrnLoaderProps__ = loaderProps, console.info("render", path2);
143
143
  const {
144
144
  appHtml,
145
145
  headHtml
@@ -154,6 +154,7 @@ async function generateStaticPages(options, serverOutput) {
154
154
  appHtml,
155
155
  headHtml,
156
156
  loaderData,
157
+ loaderProps,
157
158
  css: cssString
158
159
  }),
159
160
  filePath = toAbsolute(`dist/static${slashFileName}`);