one 1.21.2 → 1.21.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli/build.cjs +17 -6
- package/dist/cjs/cli/build.native.js +25 -14
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +6 -1
- package/dist/cjs/cli/buildPage.native.js +6 -1
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/router/getRouteArtifactPath.cjs +52 -0
- package/dist/cjs/router/getRouteArtifactPath.native.js +57 -0
- package/dist/cjs/router/getRouteArtifactPath.native.js.map +1 -0
- package/dist/cjs/router/getRouteArtifactPath.test.cjs +91 -0
- package/dist/cjs/router/getRouteArtifactPath.test.native.js +106 -0
- package/dist/cjs/router/getRouteArtifactPath.test.native.js.map +1 -0
- package/dist/cjs/router/getRoutes.cjs +1 -2
- package/dist/cjs/router/getRoutes.native.js +1 -2
- package/dist/cjs/router/getRoutes.native.js.map +1 -1
- package/dist/cjs/router/matchers.cjs +7 -0
- package/dist/cjs/router/matchers.native.js +8 -0
- package/dist/cjs/router/matchers.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +5 -3
- package/dist/cjs/router/router.native.js +1 -0
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/utils/getPathnameFromFilePath.cjs +3 -14
- package/dist/cjs/utils/getPathnameFromFilePath.native.js +3 -14
- package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +1 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.cjs +8 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +11 -1
- package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +43 -2
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +78 -8
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.cjs +58 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js +62 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +17 -6
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +25 -14
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +6 -1
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +6 -1
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/router/getRouteArtifactPath.mjs +27 -0
- package/dist/esm/router/getRouteArtifactPath.mjs.map +1 -0
- package/dist/esm/router/getRouteArtifactPath.native.js +29 -0
- package/dist/esm/router/getRouteArtifactPath.native.js.map +1 -0
- package/dist/esm/router/getRouteArtifactPath.test.mjs +92 -0
- package/dist/esm/router/getRouteArtifactPath.test.mjs.map +1 -0
- package/dist/esm/router/getRouteArtifactPath.test.native.js +104 -0
- package/dist/esm/router/getRouteArtifactPath.test.native.js.map +1 -0
- package/dist/esm/router/getRoutes.mjs +2 -3
- package/dist/esm/router/getRoutes.mjs.map +1 -1
- package/dist/esm/router/getRoutes.native.js +2 -3
- package/dist/esm/router/getRoutes.native.js.map +1 -1
- package/dist/esm/router/matchers.mjs +7 -1
- package/dist/esm/router/matchers.mjs.map +1 -1
- package/dist/esm/router/matchers.native.js +8 -1
- package/dist/esm/router/matchers.native.js.map +1 -1
- package/dist/esm/router/router.mjs +5 -3
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/utils/getPathnameFromFilePath.mjs +3 -3
- package/dist/esm/utils/getPathnameFromFilePath.mjs.map +1 -1
- package/dist/esm/utils/getPathnameFromFilePath.native.js +3 -3
- package/dist/esm/utils/getPathnameFromFilePath.native.js.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs +8 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +11 -1
- package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +32 -2
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +67 -8
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs +58 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js +62 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/package.json +14 -9
- package/src/cli/build.ts +25 -12
- package/src/cli/buildPage.ts +7 -1
- package/src/router/getRouteArtifactPath.test.ts +126 -0
- package/src/router/getRouteArtifactPath.ts +33 -0
- package/src/router/getRoutes.ts +2 -3
- package/src/router/matchers.ts +10 -0
- package/src/router/router.ts +5 -3
- package/src/utils/getPathnameFromFilePath.ts +3 -4
- package/src/vercel/build/buildVercelOutputDirectory.ts +8 -0
- package/src/vite/plugins/virtualEntryPlugin.test.ts +70 -0
- package/src/vite/plugins/virtualEntryPlugin.ts +58 -2
- package/src/vite/types.ts +9 -0
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/router/getRouteArtifactPath.d.ts +9 -0
- package/types/router/getRouteArtifactPath.d.ts.map +1 -0
- package/types/router/getRouteArtifactPath.test.d.ts +2 -0
- package/types/router/getRouteArtifactPath.test.d.ts.map +1 -0
- package/types/router/getRoutes.d.ts.map +1 -1
- package/types/router/matchers.d.ts +2 -0
- package/types/router/matchers.d.ts.map +1 -1
- package/types/router/router.d.ts.map +1 -1
- package/types/utils/getPathnameFromFilePath.d.ts.map +1 -1
- package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/types.d.ts +8 -0
- package/types/vite/types.d.ts.map +1 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
3
|
import { configuration } from "@vxrn/compiler";
|
|
4
|
+
import Glob from "fast-glob";
|
|
4
5
|
import { isNativeEnvironment } from "vxrn";
|
|
5
6
|
import { API_ROUTE_GLOB_PATTERN, ROUTE_GLOB_PATTERN, ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS } from "../../router/glob-patterns.mjs";
|
|
7
|
+
import { matchDirectoryRenderMode, matchFileRenderMode } from "../../router/matchers.mjs";
|
|
6
8
|
import { resolvedVirtualEntryId, resolvedVirtualEntryIdNative, virtualEntryId, virtualEntryIdNative } from "./virtualEntryConstants.mjs";
|
|
7
9
|
function normalizeSetupFile(setupFile) {
|
|
8
10
|
if (!setupFile) return {};
|
|
@@ -88,6 +90,27 @@ function createVirtualEntry(options) {
|
|
|
88
90
|
if (id === resolvedVirtualEntryId) {
|
|
89
91
|
const isNative = isNativeEnvironment(this.environment);
|
|
90
92
|
const isSSR = this.environment.name === "ssr";
|
|
93
|
+
const serverSpaRouteFiles = isSSR ? Glob.sync("**/*.{ts,tsx}", {
|
|
94
|
+
cwd: resolve(viteRoot, options.root),
|
|
95
|
+
ignore: [...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS, ...(options.router?.ignoredRouteFiles || [])]
|
|
96
|
+
}).map(file => file.replaceAll("\\", "/")).filter(file => {
|
|
97
|
+
const parts = file.split("/");
|
|
98
|
+
const filename = parts.at(-1) || "";
|
|
99
|
+
if (filename.startsWith("_layout") || filename.startsWith("_middleware")) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
const fileMode = matchFileRenderMode(filename);
|
|
103
|
+
if (fileMode) return fileMode === "spa";
|
|
104
|
+
let parentMode;
|
|
105
|
+
for (const directory of parts.slice(0, -1)) {
|
|
106
|
+
parentMode = matchDirectoryRenderMode(directory)?.renderMode ?? parentMode;
|
|
107
|
+
}
|
|
108
|
+
return parentMode === "spa";
|
|
109
|
+
}) : [];
|
|
110
|
+
const serverSpaRouteStubs = serverSpaRouteFiles.map(file => `${JSON.stringify(`/${options.root}/${file}`)}: () => Promise.resolve({})`).join(",\n ");
|
|
111
|
+
const serverSpaBuildGlobs = serverSpaRouteFiles.map(file => `/${options.root}/${file}`);
|
|
112
|
+
const serverSpaBuildRoutes = serverSpaBuildGlobs.length ? `import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true })` : "{}";
|
|
113
|
+
const webRouteGlobs = [...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(pattern => `!${pattern}`), ...serverSpaRouteFiles.map(file => `!/${options.root}/${file}`)];
|
|
91
114
|
const useStaticImport = isNative || isSSR && isDevMode;
|
|
92
115
|
const setupResult = getSetupFileImport(this.environment.name, setupFiles, useStaticImport, viteRoot);
|
|
93
116
|
const nativewindImport = configuration.enableNativewind ? `import 'react-native-css-interop/dist/runtime/components'` : "";
|
|
@@ -111,10 +134,17 @@ if (typeof window !== 'undefined') {
|
|
|
111
134
|
window.__oneRegisterPreloadedRoute = registerPreloadedRoute
|
|
112
135
|
}
|
|
113
136
|
|
|
114
|
-
//
|
|
137
|
+
// build-only spa modules stay out of the runtime route map, but their chunks
|
|
138
|
+
// are used to generate route-specific html and loader artifacts.
|
|
139
|
+
export const oneBuildOnlySpaRoutes = ${serverSpaBuildRoutes}
|
|
140
|
+
|
|
141
|
+
// globbing ${JSON.stringify(webRouteGlobs)}
|
|
115
142
|
export default createApp({
|
|
116
143
|
${setupPromiseArg}
|
|
117
|
-
routes:
|
|
144
|
+
routes: {
|
|
145
|
+
...import.meta.glob(${JSON.stringify(webRouteGlobs)}, { exhaustive: true }),
|
|
146
|
+
${serverSpaRouteStubs}
|
|
147
|
+
},
|
|
118
148
|
routerRoot: ${JSON.stringify(options.root)},
|
|
119
149
|
flags: ${JSON.stringify(options.flags)},
|
|
120
150
|
${linkingArg}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolve","pathToFileURL","configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","href","JSON","stringify","createVirtualEntry","options","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","load","isNative","environment","isSSR","setupResult","nativewindImport","enableNativewind","setupPromiseArg","linkingArg","linking","
|
|
1
|
+
{"version":3,"names":["resolve","pathToFileURL","configuration","Glob","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","matchDirectoryRenderMode","matchFileRenderMode","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","href","JSON","stringify","createVirtualEntry","options","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","load","isNative","environment","isSSR","serverSpaRouteFiles","sync","cwd","ignore","file","replaceAll","filter","parts","split","filename","at","startsWith","fileMode","parentMode","directory","slice","renderMode","serverSpaRouteStubs","join","serverSpaBuildGlobs","serverSpaBuildRoutes","length","webRouteGlobs","setupResult","nativewindImport","enableNativewind","setupPromiseArg","linkingArg","linking","flags","p"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { resolve } from "path";
|
|
2
2
|
import { pathToFileURL } from "url";
|
|
3
3
|
import { configuration } from "@vxrn/compiler";
|
|
4
|
+
import Glob from "fast-glob";
|
|
4
5
|
import { isNativeEnvironment } from "vxrn";
|
|
5
6
|
import { API_ROUTE_GLOB_PATTERN, ROUTE_GLOB_PATTERN, ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS } from "../../router/glob-patterns.native.js";
|
|
7
|
+
import { matchDirectoryRenderMode, matchFileRenderMode } from "../../router/matchers.native.js";
|
|
6
8
|
import { resolvedVirtualEntryId, resolvedVirtualEntryIdNative, virtualEntryId, virtualEntryIdNative } from "./virtualEntryConstants.native.js";
|
|
7
9
|
function normalizeSetupFile(setupFile) {
|
|
8
10
|
if (!setupFile) return {};
|
|
@@ -89,14 +91,66 @@ function createVirtualEntry(options) {
|
|
|
89
91
|
},
|
|
90
92
|
load(id) {
|
|
91
93
|
if (id === resolvedVirtualEntryId) {
|
|
92
|
-
var _options_router2;
|
|
94
|
+
var _options_router2, _options_router1;
|
|
93
95
|
var isNative = isNativeEnvironment(this.environment);
|
|
94
96
|
var isSSR = this.environment.name === "ssr";
|
|
97
|
+
var serverSpaRouteFiles = isSSR ? Glob.sync("**/*.{ts,tsx}", {
|
|
98
|
+
cwd: resolve(viteRoot, options.root),
|
|
99
|
+
ignore: [...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS, ...(((_options_router2 = options.router) === null || _options_router2 === void 0 ? void 0 : _options_router2.ignoredRouteFiles) || [])]
|
|
100
|
+
}).map(function (file) {
|
|
101
|
+
return file.replaceAll("\\", "/");
|
|
102
|
+
}).filter(function (file) {
|
|
103
|
+
var parts = file.split("/");
|
|
104
|
+
var filename = parts.at(-1) || "";
|
|
105
|
+
if (filename.startsWith("_layout") || filename.startsWith("_middleware")) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
var fileMode = matchFileRenderMode(filename);
|
|
109
|
+
if (fileMode) return fileMode === "spa";
|
|
110
|
+
var parentMode;
|
|
111
|
+
var _iteratorNormalCompletion = true,
|
|
112
|
+
_didIteratorError = false,
|
|
113
|
+
_iteratorError = void 0;
|
|
114
|
+
try {
|
|
115
|
+
for (var _iterator = parts.slice(0, -1)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
116
|
+
var directory = _step.value;
|
|
117
|
+
var _ref;
|
|
118
|
+
var _matchDirectoryRenderMode;
|
|
119
|
+
parentMode = (_ref = (_matchDirectoryRenderMode = matchDirectoryRenderMode(directory)) === null || _matchDirectoryRenderMode === void 0 ? void 0 : _matchDirectoryRenderMode.renderMode) !== null && _ref !== void 0 ? _ref : parentMode;
|
|
120
|
+
}
|
|
121
|
+
} catch (err) {
|
|
122
|
+
_didIteratorError = true;
|
|
123
|
+
_iteratorError = err;
|
|
124
|
+
} finally {
|
|
125
|
+
try {
|
|
126
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
127
|
+
_iterator.return();
|
|
128
|
+
}
|
|
129
|
+
} finally {
|
|
130
|
+
if (_didIteratorError) {
|
|
131
|
+
throw _iteratorError;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return parentMode === "spa";
|
|
136
|
+
}) : [];
|
|
137
|
+
var serverSpaRouteStubs = serverSpaRouteFiles.map(function (file) {
|
|
138
|
+
return `${JSON.stringify(`/${options.root}/${file}`)}: () => Promise.resolve({})`;
|
|
139
|
+
}).join(",\n ");
|
|
140
|
+
var serverSpaBuildGlobs = serverSpaRouteFiles.map(function (file) {
|
|
141
|
+
return `/${options.root}/${file}`;
|
|
142
|
+
});
|
|
143
|
+
var serverSpaBuildRoutes = serverSpaBuildGlobs.length ? `import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true })` : "{}";
|
|
144
|
+
var webRouteGlobs = [...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(function (pattern) {
|
|
145
|
+
return `!${pattern}`;
|
|
146
|
+
}), ...serverSpaRouteFiles.map(function (file) {
|
|
147
|
+
return `!/${options.root}/${file}`;
|
|
148
|
+
})];
|
|
95
149
|
var useStaticImport = isNative || isSSR && isDevMode;
|
|
96
150
|
var setupResult = getSetupFileImport(this.environment.name, setupFiles, useStaticImport, viteRoot);
|
|
97
151
|
var nativewindImport = configuration.enableNativewind ? `import 'react-native-css-interop/dist/runtime/components'` : "";
|
|
98
152
|
var setupPromiseArg = setupResult.promiseVarName ? `getSetupPromise: ${setupResult.promiseVarName},` : "";
|
|
99
|
-
var linkingArg = ((
|
|
153
|
+
var linkingArg = ((_options_router1 = options.router) === null || _options_router1 === void 0 ? void 0 : _options_router1.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
|
|
100
154
|
return `
|
|
101
155
|
${setupResult.promiseDeclaration}
|
|
102
156
|
${nativewindImport}
|
|
@@ -115,12 +169,17 @@ if (typeof window !== 'undefined') {
|
|
|
115
169
|
window.__oneRegisterPreloadedRoute = registerPreloadedRoute
|
|
116
170
|
}
|
|
117
171
|
|
|
118
|
-
//
|
|
172
|
+
// build-only spa modules stay out of the runtime route map, but their chunks
|
|
173
|
+
// are used to generate route-specific html and loader artifacts.
|
|
174
|
+
export const oneBuildOnlySpaRoutes = ${serverSpaBuildRoutes}
|
|
175
|
+
|
|
176
|
+
// globbing ${JSON.stringify(webRouteGlobs)}
|
|
119
177
|
export default createApp({
|
|
120
178
|
${setupPromiseArg}
|
|
121
|
-
routes:
|
|
122
|
-
|
|
123
|
-
|
|
179
|
+
routes: {
|
|
180
|
+
...import.meta.glob(${JSON.stringify(webRouteGlobs)}, { exhaustive: true }),
|
|
181
|
+
${serverSpaRouteStubs}
|
|
182
|
+
},
|
|
124
183
|
routerRoot: ${JSON.stringify(options.root)},
|
|
125
184
|
flags: ${JSON.stringify(options.flags)},
|
|
126
185
|
${linkingArg}
|
|
@@ -128,10 +187,10 @@ export default createApp({
|
|
|
128
187
|
`;
|
|
129
188
|
}
|
|
130
189
|
if (id === resolvedVirtualEntryIdNative) {
|
|
131
|
-
var
|
|
190
|
+
var _options_router22;
|
|
132
191
|
var isNative1 = isNativeEnvironment(this.environment);
|
|
133
192
|
var setupResult1 = getSetupFileImport(this.environment.name, setupFiles, isNative1, viteRoot);
|
|
134
|
-
var linkingArg1 = ((
|
|
193
|
+
var linkingArg1 = ((_options_router22 = options.router) === null || _options_router22 === void 0 ? void 0 : _options_router22.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
|
|
135
194
|
return `
|
|
136
195
|
import { createApp } from 'one'
|
|
137
196
|
${setupResult1.importStatement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolve","pathToFileURL","configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","href","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","load","_options_router2","isNative","environment","isSSR","setupResult","nativewindImport","enableNativewind","setupPromiseArg","linkingArg","linking","
|
|
1
|
+
{"version":3,"names":["resolve","pathToFileURL","configuration","Glob","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","matchDirectoryRenderMode","matchFileRenderMode","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","href","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","load","_options_router2","_options_router1","isNative","environment","isSSR","serverSpaRouteFiles","sync","cwd","ignore","file","replaceAll","filter","parts","split","filename","at","startsWith","fileMode","parentMode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","slice","Symbol","iterator","_step","next","done","directory","value","_ref","_matchDirectoryRenderMode","renderMode","err","return","serverSpaRouteStubs","join","serverSpaBuildGlobs","serverSpaBuildRoutes","length","webRouteGlobs","setupResult","nativewindImport","enableNativewind","setupPromiseArg","linkingArg","linking","flags","_options_router22","isNative1","setupResult1","linkingArg1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join, resolve } from "node:path";
|
|
1
5
|
import { describe, expect, it, vi } from "vitest";
|
|
6
|
+
import { build } from "vite";
|
|
2
7
|
import { createVirtualEntry } from "./virtualEntryPlugin.mjs";
|
|
3
8
|
vi.mock("vxrn", () => ({
|
|
4
9
|
isNativeEnvironment: env => {
|
|
@@ -23,6 +28,59 @@ function loadEntry(plugin, envName, command = "build") {
|
|
|
23
28
|
return plugin.load.call(ctx, "\0virtual:one-entry");
|
|
24
29
|
}
|
|
25
30
|
describe("virtualEntryPlugin", () => {
|
|
31
|
+
it("keeps spa route matching without bundling the client module on the server", async () => {
|
|
32
|
+
const root = mkdtempSync(join(tmpdir(), "one-spa-server-"));
|
|
33
|
+
const appDir = join(root, "app");
|
|
34
|
+
mkdirSync(appDir);
|
|
35
|
+
const spaRoute = join(appDir, "client-only+spa.tsx");
|
|
36
|
+
writeFileSync(spaRoute, `export const browserPayload = 'must-not-enter-server-graph'
|
|
37
|
+
export default function ClientOnlyPage() { return null }
|
|
38
|
+
`);
|
|
39
|
+
try {
|
|
40
|
+
const result = await build({
|
|
41
|
+
root,
|
|
42
|
+
configFile: false,
|
|
43
|
+
logLevel: "silent",
|
|
44
|
+
plugins: [{
|
|
45
|
+
name: "test-one-entry",
|
|
46
|
+
enforce: "pre",
|
|
47
|
+
resolveId(id) {
|
|
48
|
+
if (id === "one") return "\0test-one-entry";
|
|
49
|
+
},
|
|
50
|
+
load(id) {
|
|
51
|
+
if (id === "\0test-one-entry") {
|
|
52
|
+
return `export const createApp = (options) => options
|
|
53
|
+
export const registerPreloadedRoute = () => {}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}, createVirtualEntry({
|
|
57
|
+
root: "app",
|
|
58
|
+
flags: {}
|
|
59
|
+
})],
|
|
60
|
+
build: {
|
|
61
|
+
ssr: true,
|
|
62
|
+
write: false,
|
|
63
|
+
rolldownOptions: {
|
|
64
|
+
input: "virtual:one-entry"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
if (Array.isArray(result)) throw new Error("expected one server build output");
|
|
69
|
+
if (!("output" in result)) throw new Error("expected completed server build");
|
|
70
|
+
const moduleIds = result.output.flatMap(output => output.type === "chunk" ? output.moduleIds : []);
|
|
71
|
+
expect(moduleIds).not.toContain(resolve(spaRoute));
|
|
72
|
+
const entry = result.output.find(output => output.type === "chunk" && output.isEntry);
|
|
73
|
+
if (!entry || entry.type !== "chunk") throw new Error("missing server entry chunk");
|
|
74
|
+
const built = await import(`data:text/javascript;base64,${Buffer.from(entry.code).toString("base64")}`);
|
|
75
|
+
expect(Object.keys(built.default.routes)).toContain("/app/client-only+spa.tsx");
|
|
76
|
+
await expect(built.default.routes["/app/client-only+spa.tsx"]()).resolves.toEqual({});
|
|
77
|
+
} finally {
|
|
78
|
+
rmSync(root, {
|
|
79
|
+
recursive: true,
|
|
80
|
+
force: true
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
});
|
|
26
84
|
describe("setupFile", () => {
|
|
27
85
|
const base = {
|
|
28
86
|
root: "app",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","vi","createVirtualEntry","mock","isNativeEnvironment","env","name","configuration","enableNativewind","loadEntry","plugin","envName","command","configResolved","root","ctx","environment","load","call","
|
|
1
|
+
{"version":3,"names":["Buffer","mkdirSync","mkdtempSync","rmSync","writeFileSync","tmpdir","join","resolve","describe","expect","it","vi","build","createVirtualEntry","mock","isNativeEnvironment","env","name","configuration","enableNativewind","loadEntry","plugin","envName","command","configResolved","root","ctx","environment","load","call","appDir","spaRoute","result","configFile","logLevel","plugins","enforce","resolveId","id","flags","ssr","write","rolldownOptions","input","Array","isArray","Error","moduleIds","output","flatMap","type","not","toContain","entry","find","isEntry","built","from","code","toString","Object","keys","default","routes","resolves","toEqual","recursive","force","base","setupFile","client","server","native","ssrCode","clientCode","iosCode","router","linking","scheme","prefixes"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { Buffer } from "buffer";
|
|
2
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "fs";
|
|
3
|
+
import { tmpdir } from "os";
|
|
4
|
+
import { join, resolve } from "path";
|
|
1
5
|
import { describe, expect, it, vi } from "vitest";
|
|
6
|
+
import { build } from "vite";
|
|
2
7
|
import { createVirtualEntry } from "./virtualEntryPlugin.native.js";
|
|
3
8
|
vi.mock("vxrn", function () {
|
|
4
9
|
return {
|
|
@@ -29,6 +34,63 @@ function loadEntry(plugin, envName) {
|
|
|
29
34
|
return plugin.load.call(ctx, "\0virtual:one-entry");
|
|
30
35
|
}
|
|
31
36
|
describe("virtualEntryPlugin", function () {
|
|
37
|
+
it("keeps spa route matching without bundling the client module on the server", async function () {
|
|
38
|
+
var root = mkdtempSync(join(tmpdir(), "one-spa-server-"));
|
|
39
|
+
var appDir = join(root, "app");
|
|
40
|
+
mkdirSync(appDir);
|
|
41
|
+
var spaRoute = join(appDir, "client-only+spa.tsx");
|
|
42
|
+
writeFileSync(spaRoute, `export const browserPayload = 'must-not-enter-server-graph'
|
|
43
|
+
export default function ClientOnlyPage() { return null }
|
|
44
|
+
`);
|
|
45
|
+
try {
|
|
46
|
+
var result = await build({
|
|
47
|
+
root,
|
|
48
|
+
configFile: false,
|
|
49
|
+
logLevel: "silent",
|
|
50
|
+
plugins: [{
|
|
51
|
+
name: "test-one-entry",
|
|
52
|
+
enforce: "pre",
|
|
53
|
+
resolveId(id) {
|
|
54
|
+
if (id === "one") return "\0test-one-entry";
|
|
55
|
+
},
|
|
56
|
+
load(id) {
|
|
57
|
+
if (id === "\0test-one-entry") {
|
|
58
|
+
return `export const createApp = (options) => options
|
|
59
|
+
export const registerPreloadedRoute = () => {}`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}, createVirtualEntry({
|
|
63
|
+
root: "app",
|
|
64
|
+
flags: {}
|
|
65
|
+
})],
|
|
66
|
+
build: {
|
|
67
|
+
ssr: true,
|
|
68
|
+
write: false,
|
|
69
|
+
rolldownOptions: {
|
|
70
|
+
input: "virtual:one-entry"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
if (Array.isArray(result)) throw new Error("expected one server build output");
|
|
75
|
+
if (!("output" in result)) throw new Error("expected completed server build");
|
|
76
|
+
var moduleIds = result.output.flatMap(function (output) {
|
|
77
|
+
return output.type === "chunk" ? output.moduleIds : [];
|
|
78
|
+
});
|
|
79
|
+
expect(moduleIds).not.toContain(resolve(spaRoute));
|
|
80
|
+
var entry = result.output.find(function (output) {
|
|
81
|
+
return output.type === "chunk" && output.isEntry;
|
|
82
|
+
});
|
|
83
|
+
if (!entry || entry.type !== "chunk") throw new Error("missing server entry chunk");
|
|
84
|
+
var built = await import(`data:text/javascript;base64,${Buffer.from(entry.code).toString("base64")}`);
|
|
85
|
+
expect(Object.keys(built.default.routes)).toContain("/app/client-only+spa.tsx");
|
|
86
|
+
await expect(built.default.routes["/app/client-only+spa.tsx"]()).resolves.toEqual({});
|
|
87
|
+
} finally {
|
|
88
|
+
rmSync(root, {
|
|
89
|
+
recursive: true,
|
|
90
|
+
force: true
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
32
94
|
describe("setupFile", function () {
|
|
33
95
|
var base = {
|
|
34
96
|
root: "app",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","vi","createVirtualEntry","mock","isNativeEnvironment","env","name","configuration","enableNativewind","loadEntry","plugin","envName","command","arguments","length","_plugin_configResolved","configResolved","call","root","ctx","environment","load","
|
|
1
|
+
{"version":3,"names":["Buffer","mkdirSync","mkdtempSync","rmSync","writeFileSync","tmpdir","join","resolve","describe","expect","it","vi","build","createVirtualEntry","mock","isNativeEnvironment","env","name","configuration","enableNativewind","loadEntry","plugin","envName","command","arguments","length","_plugin_configResolved","configResolved","call","root","ctx","environment","load","appDir","spaRoute","result","configFile","logLevel","plugins","enforce","resolveId","id","flags","ssr","write","rolldownOptions","input","Array","isArray","Error","moduleIds","output","flatMap","type","not","toContain","entry","find","isEntry","built","from","code","toString","Object","keys","default","routes","resolves","toEqual","recursive","force","base","setupFile","client","server","native","ssrCode","clientCode","iosCode"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.21.
|
|
3
|
+
"version": "1.21.5",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -181,18 +181,18 @@
|
|
|
181
181
|
"@cloudflare/vite-plugin": "^1.33.1",
|
|
182
182
|
"@swc/core": "^1.14.0",
|
|
183
183
|
"@ungap/structured-clone": "^1.2.0",
|
|
184
|
-
"@vxrn/color-scheme": "1.21.
|
|
185
|
-
"@vxrn/compiler": "1.21.
|
|
186
|
-
"@vxrn/resolve": "1.21.
|
|
187
|
-
"@vxrn/tslib-lite": "1.21.
|
|
188
|
-
"@vxrn/use-isomorphic-layout-effect": "1.21.
|
|
189
|
-
"@vxrn/vite-plugin-metro": "1.21.
|
|
184
|
+
"@vxrn/color-scheme": "1.21.5",
|
|
185
|
+
"@vxrn/compiler": "1.21.5",
|
|
186
|
+
"@vxrn/resolve": "1.21.5",
|
|
187
|
+
"@vxrn/tslib-lite": "1.21.5",
|
|
188
|
+
"@vxrn/use-isomorphic-layout-effect": "1.21.5",
|
|
189
|
+
"@vxrn/vite-plugin-metro": "1.21.5",
|
|
190
190
|
"babel-dead-code-elimination": "1.0.10",
|
|
191
191
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
192
192
|
"babel-preset-expo": "~55.0.0",
|
|
193
193
|
"citty": "^0.1.6",
|
|
194
194
|
"core-js": "^3.38.1",
|
|
195
|
-
"create-vxrn": "1.21.
|
|
195
|
+
"create-vxrn": "1.21.5",
|
|
196
196
|
"escape-string-regexp": "^5.0.0",
|
|
197
197
|
"expo-linking": "~55.0.7",
|
|
198
198
|
"expo-modules-core": "~55.0.16",
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
"tsconfig-paths": "^4",
|
|
213
213
|
"use-latest-callback": "^0.2.3",
|
|
214
214
|
"vite": "^8.0.13",
|
|
215
|
-
"vxrn": "1.21.
|
|
215
|
+
"vxrn": "1.21.5",
|
|
216
216
|
"ws": "^8.21.0",
|
|
217
217
|
"xxhashjs": "^0.2.2"
|
|
218
218
|
},
|
|
@@ -305,5 +305,10 @@
|
|
|
305
305
|
"better-auth",
|
|
306
306
|
"@better-auth/*"
|
|
307
307
|
]
|
|
308
|
+
},
|
|
309
|
+
"repository": {
|
|
310
|
+
"type": "git",
|
|
311
|
+
"url": "https://github.com/onejs/one.git",
|
|
312
|
+
"directory": "packages/one"
|
|
308
313
|
}
|
|
309
314
|
}
|
package/src/cli/build.ts
CHANGED
|
@@ -287,16 +287,9 @@ async function getCloudflareProjectName(root: string): Promise<string> {
|
|
|
287
287
|
return 'one-app'
|
|
288
288
|
}
|
|
289
289
|
|
|
290
|
-
// concurrency limit for parallel page builds
|
|
291
|
-
// can be overridden with ONE_BUILD_CONCURRENCY env var
|
|
292
|
-
// default based on CPU count for I/O parallelism benefits
|
|
293
290
|
// ensure worker threads inherit the same CACHE_KEY as the main process
|
|
294
291
|
process.env.ONE_CACHE_KEY = constants.CACHE_KEY
|
|
295
292
|
|
|
296
|
-
const BUILD_CONCURRENCY = process.env.ONE_BUILD_CONCURRENCY
|
|
297
|
-
? Math.max(1, parseInt(process.env.ONE_BUILD_CONCURRENCY, 10))
|
|
298
|
-
: Math.max(1, Math.min(cpus().length, 8))
|
|
299
|
-
|
|
300
293
|
// worker threads enabled by default, can be disabled via config or env var
|
|
301
294
|
function shouldUseWorkers(oneOptions?: { build?: { workers?: boolean } }) {
|
|
302
295
|
// env var takes precedence (ONE_BUILD_WORKERS=0 to disable, =1 to force enable)
|
|
@@ -401,6 +394,20 @@ export async function build(args: {
|
|
|
401
394
|
const { oneOptions, config: viteLoadedConfig } = await loadUserOneOptions('build')
|
|
402
395
|
const routerRoot = getRouterRootFromOneOptions(oneOptions)
|
|
403
396
|
|
|
397
|
+
const configuredBuildConcurrency =
|
|
398
|
+
process.env.ONE_BUILD_CONCURRENCY ?? oneOptions.build?.concurrency
|
|
399
|
+
const buildConcurrency =
|
|
400
|
+
configuredBuildConcurrency === undefined
|
|
401
|
+
? Math.max(1, Math.min(cpus().length, 8))
|
|
402
|
+
: Number(configuredBuildConcurrency)
|
|
403
|
+
if (!Number.isInteger(buildConcurrency) || buildConcurrency < 1) {
|
|
404
|
+
throw new Error(
|
|
405
|
+
`build.concurrency must be a positive integer, received ${JSON.stringify(
|
|
406
|
+
configuredBuildConcurrency
|
|
407
|
+
)}`
|
|
408
|
+
)
|
|
409
|
+
}
|
|
410
|
+
|
|
404
411
|
// Set defaultRenderMode env var so getManifest knows the correct route types
|
|
405
412
|
if (oneOptions.web?.defaultRenderMode) {
|
|
406
413
|
process.env.ONE_DEFAULT_RENDER_MODE = oneOptions.web.defaultRenderMode
|
|
@@ -679,11 +686,11 @@ export async function build(args: {
|
|
|
679
686
|
const criticalCSSOutputPaths = getCriticalCSSOutputPaths(vxrnOutput.clientManifest)
|
|
680
687
|
|
|
681
688
|
// concurrency limiter for parallel page builds
|
|
682
|
-
const limit = pLimit(
|
|
689
|
+
const limit = pLimit(buildConcurrency)
|
|
683
690
|
|
|
684
691
|
// initialize worker pool if enabled (default: true)
|
|
685
692
|
const useWorkers = shouldUseWorkers(oneOptions)
|
|
686
|
-
const workerPool = useWorkers ? getWorkerPool(
|
|
693
|
+
const workerPool = useWorkers ? getWorkerPool(buildConcurrency) : null
|
|
687
694
|
if (workerPool) {
|
|
688
695
|
// strip non-cloneable values so workers skip re-loading vite config
|
|
689
696
|
const serializableOptions = JSON.parse(
|
|
@@ -697,7 +704,7 @@ export async function build(args: {
|
|
|
697
704
|
const staticStartTime = performance.now()
|
|
698
705
|
const modeLabel = useWorkers
|
|
699
706
|
? `workers: ${workerPool?.size}`
|
|
700
|
-
: `concurrency: ${
|
|
707
|
+
: `concurrency: ${buildConcurrency}`
|
|
701
708
|
console.info(`\n 🔨 build static routes (${modeLabel})\n`)
|
|
702
709
|
|
|
703
710
|
const staticDir = join(`${outDir}/static`)
|
|
@@ -787,9 +794,8 @@ export async function build(args: {
|
|
|
787
794
|
// find the server chunk containing this route
|
|
788
795
|
const serverFileName = moduleIdToServerChunk.get(routeModulePath)
|
|
789
796
|
if (!serverFileName) {
|
|
790
|
-
// SPA routes may not have server chunks - that's expected
|
|
791
797
|
if (foundRoute.type === 'spa') {
|
|
792
|
-
|
|
798
|
+
throw new Error(`[one] No build-only server chunk for SPA route: ${foundRoute.file}`)
|
|
793
799
|
}
|
|
794
800
|
console.warn(`[one] No server chunk found for route: ${foundRoute.file}`)
|
|
795
801
|
continue
|
|
@@ -1593,6 +1599,13 @@ export default {
|
|
|
1593
1599
|
// native-only symbols from react-native can still bundle against
|
|
1594
1600
|
// the react-native-web alias in the worker graph.
|
|
1595
1601
|
shimMissingExports: true,
|
|
1602
|
+
// cloudflare's module worker can contain circular shared chunks
|
|
1603
|
+
// when one package is used by both browser-facing SSR code and API
|
|
1604
|
+
// routes. preserve source import order so a dependent chunk cannot
|
|
1605
|
+
// evaluate against partially initialized exports.
|
|
1606
|
+
output: {
|
|
1607
|
+
strictExecutionOrder: true,
|
|
1608
|
+
},
|
|
1596
1609
|
},
|
|
1597
1610
|
},
|
|
1598
1611
|
})
|