@teamvelix/velix 5.2.1 → 5.2.3
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/build/index.js +2 -2
- package/dist/{chunk-XXPHGRLC.js → chunk-3LWUS6AC.js} +3 -3
- package/dist/{chunk-XXPHGRLC.js.map → chunk-3LWUS6AC.js.map} +1 -1
- package/dist/{chunk-DTF3KTLR.js → chunk-65A3SPZE.js} +81 -36
- package/dist/chunk-65A3SPZE.js.map +1 -0
- package/dist/{chunk-QIPVMOXL.js → chunk-MLLSS7Y5.js} +3 -3
- package/dist/{chunk-QIPVMOXL.js.map → chunk-MLLSS7Y5.js.map} +1 -1
- package/dist/index.d.ts +4 -7
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/runtime/start-build.js +1 -1
- package/dist/runtime/start-build.js.map +1 -1
- package/dist/runtime/start-dev.js +80 -32
- package/dist/runtime/start-dev.js.map +1 -1
- package/dist/runtime/start-prod.js +79 -31
- package/dist/runtime/start-prod.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/package.json +3 -3
- package/dist/chunk-DTF3KTLR.js.map +0 -1
package/dist/build/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { build, build_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { build, build_default as default } from '../chunk-3LWUS6AC.js';
|
|
2
|
+
import '../chunk-MLLSS7Y5.js';
|
|
3
3
|
import '../chunk-F24Q2MX3.js';
|
|
4
4
|
import '../chunk-4S5YQJHB.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger_default, cleanDir, buildRouteTree, findFiles, ensureDir, VERSION, formatBytes } from './chunk-
|
|
1
|
+
import { logger_default, cleanDir, buildRouteTree, findFiles, ensureDir, VERSION, formatBytes } from './chunk-MLLSS7Y5.js';
|
|
2
2
|
import { loadConfig, resolvePaths } from './chunk-F24Q2MX3.js';
|
|
3
3
|
import esbuild from 'esbuild';
|
|
4
4
|
import fs from 'fs';
|
|
@@ -132,5 +132,5 @@ function getDirSize(dir) {
|
|
|
132
132
|
var build_default = { build };
|
|
133
133
|
|
|
134
134
|
export { build, build_default };
|
|
135
|
-
//# sourceMappingURL=chunk-
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
135
|
+
//# sourceMappingURL=chunk-3LWUS6AC.js.map
|
|
136
|
+
//# sourceMappingURL=chunk-3LWUS6AC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../build/index.ts"],"names":[],"mappings":"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","file":"chunk-XXPHGRLC.js","sourcesContent":["/**\n * Velix v5 Build System\n * Production build using esbuild\n */\n\nimport esbuild from 'esbuild';\nimport fs from 'fs';\nimport path from 'path';\nimport { loadConfig, resolvePaths } from '../config.js';\nimport { buildRouteTree } from '../router/index.js';\nimport { ensureDir, cleanDir, findFiles, formatBytes, formatTime } from '../utils.js';\nimport logger from '../logger.js';\nimport { VERSION } from '../version.js';\n\nexport interface BuildOptions {\n projectRoot?: string;\n outDir?: string;\n minify?: boolean;\n sourcemap?: boolean;\n}\n\n/**\n * Build the Velix application for production\n */\nexport async function build(options: BuildOptions = {}) {\n const projectRoot = options.projectRoot || process.cwd();\n const config = await loadConfig(projectRoot);\n const resolved = resolvePaths(config, projectRoot);\n\n const outDir = options.outDir || resolved.resolvedOutDir;\n const startTime = Date.now();\n\n logger.logo();\n logger.info('Building for production...');\n logger.blank();\n\n // Clean output directory\n cleanDir(outDir);\n\n const appDir = resolved.resolvedAppDir;\n const routes = buildRouteTree(appDir);\n\n // Collect all source files\n const sourceFiles = findFiles(appDir, /\\.(tsx?|jsx?)$/);\n\n if (sourceFiles.length === 0) {\n logger.warn('No source files found in app/ directory');\n return;\n }\n\n // Build server bundle\n try {\n const serverOutDir = path.join(outDir, 'server');\n ensureDir(serverOutDir);\n\n await esbuild.build({\n entryPoints: sourceFiles,\n outdir: serverOutDir,\n bundle: false,\n format: 'esm',\n platform: 'node',\n target: config.build.target,\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n jsx: 'automatic',\n logLevel: 'silent',\n treeShaking: true,\n legalComments: 'none',\n });\n\n logger.success('Server bundle built');\n } catch (err: any) {\n logger.error('Server build failed', err);\n process.exit(1);\n }\n\n // Build client bundle (client components and islands)\n try {\n const clientOutDir = path.join(outDir, 'client');\n ensureDir(clientOutDir);\n\n const clientFiles = sourceFiles.filter(f => {\n const content = fs.readFileSync(f, 'utf-8');\n const firstLine = content.split('\\n')[0]?.trim();\n return firstLine === \"'use client'\" || firstLine === '\"use client\"' ||\n firstLine === \"'use island'\" || firstLine === '\"use island\"';\n });\n\n if (clientFiles.length > 0) {\n await esbuild.build({\n entryPoints: clientFiles,\n outdir: clientOutDir,\n bundle: true,\n format: 'esm',\n platform: 'browser',\n target: ['es2022'],\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n splitting: config.build.splitting,\n jsx: 'automatic',\n logLevel: 'silent',\n external: ['react', 'react-dom'],\n treeShaking: true,\n legalComments: 'none',\n drop: options.minify ?? config.build.minify ? ['console', 'debugger'] : [],\n chunkNames: 'chunks/[name]-[hash]',\n });\n\n logger.success(`Client bundle built (${clientFiles.length} components)`);\n }\n } catch (err: any) {\n logger.error('Client build failed', err);\n process.exit(1);\n }\n\n // Copy public directory\n const publicDir = resolved.resolvedPublicDir;\n if (fs.existsSync(publicDir)) {\n const publicOutDir = path.join(outDir, 'public');\n ensureDir(publicOutDir);\n copyDirRecursive(publicDir, publicOutDir);\n logger.success('Static assets copied');\n }\n\n // Generate build manifest\n const manifest = {\n version: VERSION,\n buildTime: new Date().toISOString(),\n routes: routes.appRoutes.map(r => ({\n path: r.path,\n type: r.path.includes(':') ? 'dynamic' : 'static',\n })),\n api: routes.api.map(r => ({ path: r.path })),\n };\n\n fs.writeFileSync(path.join(outDir, 'manifest.json'), JSON.stringify(manifest, null, 2));\n\n const elapsed = Date.now() - startTime;\n const totalSize = getDirSize(outDir);\n\n logger.blank();\n logger.divider();\n logger.blank();\n\n // Log routes\n routes.appRoutes.forEach(r => {\n const type = r.path.includes(':') || r.path.includes('*') ? 'dynamic' : 'static';\n logger.route(r.path, type);\n });\n routes.api.forEach(r => logger.route(r.path, 'api'));\n\n logger.blank();\n logger.build({ time: elapsed });\n logger.info(`Output: ${outDir} (${formatBytes(totalSize)})`);\n logger.blank();\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction copyDirRecursive(src: string, dest: string) {\n ensureDir(dest);\n const entries = fs.readdirSync(src, { withFileTypes: true });\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name);\n const destPath = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirRecursive(srcPath, destPath);\n else fs.copyFileSync(srcPath, destPath);\n }\n}\n\nfunction getDirSize(dir: string): number {\n let size = 0;\n if (!fs.existsSync(dir)) return size;\n const entries = fs.readdirSync(dir, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n if (entry.isDirectory()) size += getDirSize(fullPath);\n else size += fs.statSync(fullPath).size;\n }\n return size;\n}\n\nexport default { build };\n"]}
|
|
1
|
+
{"version":3,"sources":["../build/index.ts"],"names":[],"mappings":"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","file":"chunk-3LWUS6AC.js","sourcesContent":["/**\n * Velix v5 Build System\n * Production build using esbuild\n */\n\nimport esbuild from 'esbuild';\nimport fs from 'fs';\nimport path from 'path';\nimport { loadConfig, resolvePaths } from '../config.js';\nimport { buildRouteTree } from '../router/index.js';\nimport { ensureDir, cleanDir, findFiles, formatBytes, formatTime } from '../utils.js';\nimport logger from '../logger.js';\nimport { VERSION } from '../version.js';\n\nexport interface BuildOptions {\n projectRoot?: string;\n outDir?: string;\n minify?: boolean;\n sourcemap?: boolean;\n}\n\n/**\n * Build the Velix application for production\n */\nexport async function build(options: BuildOptions = {}) {\n const projectRoot = options.projectRoot || process.cwd();\n const config = await loadConfig(projectRoot);\n const resolved = resolvePaths(config, projectRoot);\n\n const outDir = options.outDir || resolved.resolvedOutDir;\n const startTime = Date.now();\n\n logger.logo();\n logger.info('Building for production...');\n logger.blank();\n\n // Clean output directory\n cleanDir(outDir);\n\n const appDir = resolved.resolvedAppDir;\n const routes = buildRouteTree(appDir);\n\n // Collect all source files\n const sourceFiles = findFiles(appDir, /\\.(tsx?|jsx?)$/);\n\n if (sourceFiles.length === 0) {\n logger.warn('No source files found in app/ directory');\n return;\n }\n\n // Build server bundle\n try {\n const serverOutDir = path.join(outDir, 'server');\n ensureDir(serverOutDir);\n\n await esbuild.build({\n entryPoints: sourceFiles,\n outdir: serverOutDir,\n bundle: false,\n format: 'esm',\n platform: 'node',\n target: config.build.target,\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n jsx: 'automatic',\n logLevel: 'silent',\n treeShaking: true,\n legalComments: 'none',\n });\n\n logger.success('Server bundle built');\n } catch (err: any) {\n logger.error('Server build failed', err);\n process.exit(1);\n }\n\n // Build client bundle (client components and islands)\n try {\n const clientOutDir = path.join(outDir, 'client');\n ensureDir(clientOutDir);\n\n const clientFiles = sourceFiles.filter(f => {\n const content = fs.readFileSync(f, 'utf-8');\n const firstLine = content.split('\\n')[0]?.trim();\n return firstLine === \"'use client'\" || firstLine === '\"use client\"' ||\n firstLine === \"'use island'\" || firstLine === '\"use island\"';\n });\n\n if (clientFiles.length > 0) {\n await esbuild.build({\n entryPoints: clientFiles,\n outdir: clientOutDir,\n bundle: true,\n format: 'esm',\n platform: 'browser',\n target: ['es2022'],\n minify: options.minify ?? config.build.minify,\n sourcemap: options.sourcemap ?? config.build.sourcemap,\n splitting: config.build.splitting,\n jsx: 'automatic',\n logLevel: 'silent',\n external: ['react', 'react-dom'],\n treeShaking: true,\n legalComments: 'none',\n drop: options.minify ?? config.build.minify ? ['console', 'debugger'] : [],\n chunkNames: 'chunks/[name]-[hash]',\n });\n\n logger.success(`Client bundle built (${clientFiles.length} components)`);\n }\n } catch (err: any) {\n logger.error('Client build failed', err);\n process.exit(1);\n }\n\n // Copy public directory\n const publicDir = resolved.resolvedPublicDir;\n if (fs.existsSync(publicDir)) {\n const publicOutDir = path.join(outDir, 'public');\n ensureDir(publicOutDir);\n copyDirRecursive(publicDir, publicOutDir);\n logger.success('Static assets copied');\n }\n\n // Generate build manifest\n const manifest = {\n version: VERSION,\n buildTime: new Date().toISOString(),\n routes: routes.appRoutes.map(r => ({\n path: r.path,\n type: r.path.includes(':') ? 'dynamic' : 'static',\n })),\n api: routes.api.map(r => ({ path: r.path })),\n };\n\n fs.writeFileSync(path.join(outDir, 'manifest.json'), JSON.stringify(manifest, null, 2));\n\n const elapsed = Date.now() - startTime;\n const totalSize = getDirSize(outDir);\n\n logger.blank();\n logger.divider();\n logger.blank();\n\n // Log routes\n routes.appRoutes.forEach(r => {\n const type = r.path.includes(':') || r.path.includes('*') ? 'dynamic' : 'static';\n logger.route(r.path, type);\n });\n routes.api.forEach(r => logger.route(r.path, 'api'));\n\n logger.blank();\n logger.build({ time: elapsed });\n logger.info(`Output: ${outDir} (${formatBytes(totalSize)})`);\n logger.blank();\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction copyDirRecursive(src: string, dest: string) {\n ensureDir(dest);\n const entries = fs.readdirSync(src, { withFileTypes: true });\n for (const entry of entries) {\n const srcPath = path.join(src, entry.name);\n const destPath = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirRecursive(srcPath, destPath);\n else fs.copyFileSync(srcPath, destPath);\n }\n}\n\nfunction getDirSize(dir: string): number {\n let size = 0;\n if (!fs.existsSync(dir)) return size;\n const entries = fs.readdirSync(dir, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n if (entry.isDirectory()) size += getDirSize(fullPath);\n else size += fs.statSync(fullPath).size;\n }\n return size;\n}\n\nexport default { build };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger_default, buildRouteTree, matchRoute, VERSION } from './chunk-
|
|
1
|
+
import { logger_default, buildRouteTree, matchRoute, VERSION } from './chunk-MLLSS7Y5.js';
|
|
2
2
|
import { loadConfig, resolvePaths } from './chunk-F24Q2MX3.js';
|
|
3
3
|
import { getRegisteredIslands, generateAdvancedHydrationScript } from './chunk-JI2HJFUT.js';
|
|
4
4
|
import { __dirname as __dirname$1 } from './chunk-4S5YQJHB.js';
|
|
@@ -12,8 +12,9 @@ export { useActionState, useOptimistic } from 'react';
|
|
|
12
12
|
import { renderToString } from 'react-dom/server';
|
|
13
13
|
import { spawnSync, spawn } from 'child_process';
|
|
14
14
|
export { useFormStatus } from 'react-dom';
|
|
15
|
+
import { NotFoundError } from '@teamvelix/velix-core';
|
|
16
|
+
export { NotFoundError, VelixHttpError, buildApiManifest, defineLoader, defineRoute, handleApiRequest, serverAction as serverAction2 } from '@teamvelix/velix-core';
|
|
15
17
|
import esbuild from 'esbuild';
|
|
16
|
-
export { VelixHttpError, buildApiManifest, defineLoader, defineRoute, handleApiRequest, serverAction as serverAction2 } from '@teamvelix/velix-core';
|
|
17
18
|
|
|
18
19
|
var middlewares = {
|
|
19
20
|
cors(options = {}) {
|
|
@@ -640,8 +641,6 @@ function generateViewportContent(viewport) {
|
|
|
640
641
|
if (viewport.userScalable !== void 0) parts.push(`user-scalable=${viewport.userScalable ? "yes" : "no"}`);
|
|
641
642
|
return parts.join(", ") || "width=device-width, initial-scale=1";
|
|
642
643
|
}
|
|
643
|
-
|
|
644
|
-
// helpers.ts
|
|
645
644
|
var RedirectError = class extends Error {
|
|
646
645
|
url;
|
|
647
646
|
statusCode;
|
|
@@ -653,13 +652,6 @@ var RedirectError = class extends Error {
|
|
|
653
652
|
this.statusCode = statusCode;
|
|
654
653
|
}
|
|
655
654
|
};
|
|
656
|
-
var NotFoundError = class extends Error {
|
|
657
|
-
type = "notFound";
|
|
658
|
-
constructor(message = "Page not found") {
|
|
659
|
-
super(message);
|
|
660
|
-
this.name = "NotFoundError";
|
|
661
|
-
}
|
|
662
|
-
};
|
|
663
655
|
function redirect(url, type = "replace") {
|
|
664
656
|
const statusCode = type === "permanent" ? 308 : 307;
|
|
665
657
|
throw new RedirectError(url, statusCode);
|
|
@@ -994,7 +986,7 @@ var ICON_TERM = `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" str
|
|
|
994
986
|
var ICON_LOGO = `<img src="/__velix/logo.webp" alt="Velix Logo" width="14" height="14" style="border-radius:2px; object-fit:cover;" onerror="this.style.display='none'" />`;
|
|
995
987
|
function generateDevToolsHtml(isDev, ctx = {}) {
|
|
996
988
|
if (!isDev) return "";
|
|
997
|
-
const version = ctx.version ??
|
|
989
|
+
const version = ctx.version ?? VERSION;
|
|
998
990
|
const port = ctx.port ?? 3e3;
|
|
999
991
|
const host = ctx.host ?? "localhost";
|
|
1000
992
|
const nodeVersion = ctx.nodeVersion ?? process.version.replace("v", "");
|
|
@@ -1279,33 +1271,41 @@ function generateDevToolsHtml(isDev, ctx = {}) {
|
|
|
1279
1271
|
if(connText) connText.style.color = ok ? '#10b981' : '#ef4444';
|
|
1280
1272
|
}
|
|
1281
1273
|
|
|
1282
|
-
var
|
|
1274
|
+
var ws = new WebSocket('ws://' + window.location.host + '/__velix_hmr');
|
|
1283
1275
|
|
|
1284
|
-
|
|
1276
|
+
ws.onopen = function(){ setConn(true); };
|
|
1285
1277
|
|
|
1286
|
-
|
|
1287
|
-
var data
|
|
1288
|
-
|
|
1278
|
+
ws.onmessage = function(e){
|
|
1279
|
+
var data;
|
|
1280
|
+
try {
|
|
1281
|
+
data = JSON.parse(e.data);
|
|
1282
|
+
} catch(err) { return; }
|
|
1283
|
+
|
|
1284
|
+
if(data.type === 'full-reload'){
|
|
1289
1285
|
setStatus('navigating');
|
|
1290
1286
|
setTimeout(function(){ location.reload(); }, 120);
|
|
1291
|
-
} else if(data === '
|
|
1287
|
+
} else if(data.type === 'compile-start'){
|
|
1292
1288
|
setStatus('compiling');
|
|
1293
|
-
} else if(data === '
|
|
1289
|
+
} else if(data.type === 'compile-done'){
|
|
1294
1290
|
setStatus('idle');
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
} else if(data.startsWith('error:')){
|
|
1291
|
+
var btel = document.getElementById('__vdt-build-time');
|
|
1292
|
+
if(btel) btel.textContent = data.duration + 'ms';
|
|
1293
|
+
} else if(data.type === 'compile-error'){
|
|
1299
1294
|
setStatus('error');
|
|
1300
1295
|
}
|
|
1301
1296
|
};
|
|
1302
1297
|
|
|
1303
|
-
|
|
1304
|
-
if(
|
|
1298
|
+
ws.onerror = function(){
|
|
1299
|
+
if(ws.readyState === 2 || ws.readyState === 3){
|
|
1305
1300
|
setStatus('error');
|
|
1306
1301
|
setConn(false);
|
|
1307
1302
|
}
|
|
1308
1303
|
};
|
|
1304
|
+
|
|
1305
|
+
ws.onclose = function(){
|
|
1306
|
+
setStatus('error');
|
|
1307
|
+
setConn(false);
|
|
1308
|
+
};
|
|
1309
1309
|
|
|
1310
1310
|
setStatus('idle');
|
|
1311
1311
|
})();
|
|
@@ -1945,13 +1945,13 @@ async function createServer(options = {}) {
|
|
|
1945
1945
|
}
|
|
1946
1946
|
}
|
|
1947
1947
|
});
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
}
|
|
1948
|
+
if (isDev) {
|
|
1949
|
+
const { createHMRServer } = await import('@teamvelix/velix-core');
|
|
1950
|
+
const hmr = createHMRServer(server, projectRoot);
|
|
1951
|
+
server.broadcastHMR = (msg) => {
|
|
1952
|
+
hmr.broadcast(msg);
|
|
1953
|
+
};
|
|
1954
|
+
}
|
|
1955
1955
|
const port = config.server.port;
|
|
1956
1956
|
const host = config.server.host;
|
|
1957
1957
|
server.listen(port, host, () => {
|
|
@@ -2162,8 +2162,53 @@ async function handlePageRoute(route, routes, req, res, url, config, isDev, proj
|
|
|
2162
2162
|
${config.favicon ? `<link rel="icon" href="${config.favicon}">` : ""}
|
|
2163
2163
|
${config.styles.map((s) => `<link rel="stylesheet" href="${s}">`).join("\n ")}
|
|
2164
2164
|
`;
|
|
2165
|
+
const { resolveErrorBoundary, getErrorBoundaryType } = await import('@teamvelix/velix-core');
|
|
2166
|
+
const { VelixErrorBoundary, VelixDefaultErrorPage } = await import('@teamvelix/velix-react');
|
|
2167
|
+
const errorBoundary = resolveErrorBoundary(route.filePath, appDir, "error");
|
|
2168
|
+
const notFoundBoundary = resolveErrorBoundary(route.filePath, appDir, "not-found");
|
|
2169
|
+
let ErrorComponent = null;
|
|
2170
|
+
let NotFoundComponent = null;
|
|
2171
|
+
if (errorBoundary) {
|
|
2172
|
+
try {
|
|
2173
|
+
const mod2 = await import(`${pathToFileURL(errorBoundary.filePath).href}?t=${Date.now()}`);
|
|
2174
|
+
ErrorComponent = mod2.default;
|
|
2175
|
+
} catch (e) {
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
if (notFoundBoundary) {
|
|
2179
|
+
try {
|
|
2180
|
+
const mod2 = await import(`${pathToFileURL(notFoundBoundary.filePath).href}?t=${Date.now()}`);
|
|
2181
|
+
NotFoundComponent = mod2.default;
|
|
2182
|
+
} catch (e) {
|
|
2183
|
+
}
|
|
2184
|
+
}
|
|
2165
2185
|
const searchParams = Object.fromEntries(url.searchParams.entries());
|
|
2166
|
-
let pageElement
|
|
2186
|
+
let pageElement;
|
|
2187
|
+
try {
|
|
2188
|
+
pageElement = await renderComponentAsync(PageComponent, { params: route.params, searchParams, query: searchParams });
|
|
2189
|
+
} catch (ssrError) {
|
|
2190
|
+
const err = ssrError;
|
|
2191
|
+
const errorType = getErrorBoundaryType(err);
|
|
2192
|
+
res.statusCode = err.status || (errorType === "not-found" ? 404 : 500);
|
|
2193
|
+
if (errorType === "not-found" && NotFoundComponent) {
|
|
2194
|
+
pageElement = React.createElement(NotFoundComponent);
|
|
2195
|
+
} else if (ErrorComponent) {
|
|
2196
|
+
pageElement = React.createElement(ErrorComponent, { error: err, reset: () => {
|
|
2197
|
+
} });
|
|
2198
|
+
} else {
|
|
2199
|
+
pageElement = React.createElement(VelixDefaultErrorPage, { error: err, reset: () => {
|
|
2200
|
+
} });
|
|
2201
|
+
}
|
|
2202
|
+
}
|
|
2203
|
+
pageElement = React.createElement(
|
|
2204
|
+
VelixErrorBoundary,
|
|
2205
|
+
{
|
|
2206
|
+
errorComponent: ErrorComponent,
|
|
2207
|
+
notFoundComponent: NotFoundComponent,
|
|
2208
|
+
routePath: route.filePath
|
|
2209
|
+
},
|
|
2210
|
+
pageElement
|
|
2211
|
+
);
|
|
2167
2212
|
let layoutElement = pageElement;
|
|
2168
2213
|
for (let i = layoutModules.length - 1; i >= 0; i--) {
|
|
2169
2214
|
const layoutMod = layoutModules[i];
|
|
@@ -2405,6 +2450,6 @@ function parseRawBody(req) {
|
|
|
2405
2450
|
}
|
|
2406
2451
|
var server_default = { createServer, tailwindPlugin };
|
|
2407
2452
|
|
|
2408
|
-
export {
|
|
2409
|
-
//# sourceMappingURL=chunk-
|
|
2410
|
-
//# sourceMappingURL=chunk-
|
|
2453
|
+
export { PluginHooks, PluginManager, RedirectError, bindArgs, callServerAction, composeMiddleware, cookies, createServer, definePlugin, deserializeArgs, executeAction, formAction, generateJsonLd, generateMetadataTags, generateRobotsTxt, generateSitemap, getAction, getMethod, getPathname, headers, html, isMethod, json, jsonLd, loadMiddleware, loadPlugins, mergeMetadata, middlewares, notFound, parseFormData, parseJson, parseSearchParams, pluginManager, redirect, registerAction, runMiddleware, serverAction, server_default, tailwindPlugin, text, useActionContext, useVelixAction };
|
|
2454
|
+
//# sourceMappingURL=chunk-65A3SPZE.js.map
|
|
2455
|
+
//# sourceMappingURL=chunk-65A3SPZE.js.map
|