@chuckcchen/vite-plugin 1.0.4 → 1.0.6
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/bundler.d.ts +3 -1
- package/dist/bundler.d.ts.map +1 -1
- package/dist/bundler.js +4 -5
- package/dist/bundler.js.map +1 -1
- package/dist/core.d.ts +0 -8
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +16 -56
- package/dist/core.js.map +1 -1
- package/dist/factory.d.ts +44 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +191 -95
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/route-parser.d.ts +141 -0
- package/dist/route-parser.d.ts.map +1 -0
- package/dist/route-parser.js +293 -0
- package/dist/route-parser.js.map +1 -0
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +9 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +53 -3
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/factory.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import path from "path";
|
|
7
7
|
import { pathExists, readFile, detectConfigFile, detectBuildDir, detectServerEntry, generateServerWrapperCode, createDefaultMeta, logBuildArtifacts, } from "./utils.js";
|
|
8
|
+
import { parseRoutesFromSources, } from "./route-parser.js";
|
|
8
9
|
/**
|
|
9
10
|
* Built-in server wrapper presets
|
|
10
11
|
*/
|
|
@@ -90,111 +91,205 @@ async function handleSSRRequest(request) {
|
|
|
90
91
|
handlerCall: "handleSSRRequest(webRequest)",
|
|
91
92
|
},
|
|
92
93
|
};
|
|
94
|
+
// ============================================================================
|
|
95
|
+
// Internal Helper Functions
|
|
96
|
+
// ============================================================================
|
|
93
97
|
/**
|
|
94
|
-
* Create
|
|
98
|
+
* Create default detect function based on config files
|
|
95
99
|
*/
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
100
|
+
function createDefaultDetector(configFiles) {
|
|
101
|
+
return async (context) => {
|
|
102
|
+
const configPath = await detectConfigFile(context.projectRoot, configFiles);
|
|
103
|
+
return configPath !== null;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create default getBuildArtifacts function
|
|
108
|
+
*/
|
|
109
|
+
function createDefaultBuildArtifactsGetter(name, buildDirs, serverEntryFiles, options) {
|
|
110
|
+
const { clientBuildDir, serverBuildDir, serverEntry } = options;
|
|
111
|
+
return async (context) => {
|
|
112
|
+
const { projectRoot, isSSR, logger } = context;
|
|
113
|
+
let clientDir = null;
|
|
114
|
+
if (clientBuildDir) {
|
|
115
|
+
clientDir = path.join(projectRoot, clientBuildDir);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
clientDir = await detectBuildDir(projectRoot, buildDirs.client);
|
|
119
|
+
}
|
|
120
|
+
let serverDir = null;
|
|
121
|
+
let serverEntryPath = null;
|
|
122
|
+
if (isSSR && buildDirs.server) {
|
|
123
|
+
if (serverBuildDir) {
|
|
124
|
+
serverDir = path.join(projectRoot, serverBuildDir);
|
|
113
125
|
}
|
|
114
126
|
else {
|
|
115
|
-
|
|
127
|
+
serverDir = await detectBuildDir(projectRoot, buildDirs.server);
|
|
116
128
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
if (serverEntry) {
|
|
130
|
+
serverEntryPath = path.join(projectRoot, serverEntry);
|
|
131
|
+
}
|
|
132
|
+
else if (serverDir) {
|
|
133
|
+
serverEntryPath = await detectServerEntry(serverDir, serverEntryFiles);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
logBuildArtifacts(logger, name, {
|
|
137
|
+
clientDir,
|
|
138
|
+
serverDir,
|
|
139
|
+
serverEntry: serverEntryPath,
|
|
140
|
+
});
|
|
141
|
+
return {
|
|
142
|
+
clientDir,
|
|
143
|
+
serverDir,
|
|
144
|
+
serverEntry: serverEntryPath,
|
|
145
|
+
assetsDir: clientDir,
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create generateRoutes hook
|
|
151
|
+
*/
|
|
152
|
+
function createGenerateRoutesHook(effectiveRouteConfig, fallbackRoutes) {
|
|
153
|
+
return async (context) => {
|
|
154
|
+
const { projectRoot, isSSR, logger } = context;
|
|
155
|
+
// Try declarative route sources first
|
|
156
|
+
if (effectiveRouteConfig.sources && effectiveRouteConfig.sources.length > 0) {
|
|
157
|
+
let parsedRoutes = await parseRoutesFromSources(projectRoot, effectiveRouteConfig.sources, { isSSR, logger });
|
|
158
|
+
if (parsedRoutes.length > 0) {
|
|
159
|
+
// Apply transform if provided
|
|
160
|
+
if (effectiveRouteConfig.transform) {
|
|
161
|
+
parsedRoutes = effectiveRouteConfig.transform(parsedRoutes, context);
|
|
128
162
|
}
|
|
129
|
-
|
|
130
|
-
|
|
163
|
+
// Add SSR extra routes
|
|
164
|
+
if (isSSR && effectiveRouteConfig.ssrExtraRoutes) {
|
|
165
|
+
effectiveRouteConfig.ssrExtraRoutes.forEach((route) => {
|
|
166
|
+
parsedRoutes.push({ path: route, isStatic: false, srcRoute: route });
|
|
167
|
+
});
|
|
131
168
|
}
|
|
169
|
+
return parsedRoutes;
|
|
132
170
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
171
|
+
}
|
|
172
|
+
// Fallback to static route list
|
|
173
|
+
const routeList = fallbackRoutes.map((route) => ({
|
|
174
|
+
path: route,
|
|
175
|
+
isStatic: !isSSR,
|
|
176
|
+
srcRoute: route,
|
|
177
|
+
}));
|
|
178
|
+
if (isSSR && effectiveRouteConfig.ssrExtraRoutes) {
|
|
179
|
+
effectiveRouteConfig.ssrExtraRoutes.forEach((route) => {
|
|
180
|
+
routeList.push({ path: route, isStatic: false, srcRoute: route });
|
|
137
181
|
});
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (!htmlTemplate) {
|
|
185
|
-
logger.warn("HTML template not found, using default template");
|
|
186
|
-
htmlTemplate = "<!DOCTYPE html><html><head><!--app-head--></head><body><div id=\"app\"><!--app-html--></div></body></html>";
|
|
187
|
-
}
|
|
188
|
-
const escapedTemplate = JSON.stringify(htmlTemplate);
|
|
189
|
-
handlerSetup = `const __HTML_TEMPLATE__ = ${escapedTemplate};\n\n${handlerSetup}`;
|
|
182
|
+
}
|
|
183
|
+
return routeList;
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Create generateMeta hook
|
|
188
|
+
*/
|
|
189
|
+
function createGenerateMetaHook(ssr404) {
|
|
190
|
+
return async (context, routeList) => {
|
|
191
|
+
const meta = createDefaultMeta(routeList, { isSSR: context.isSSR });
|
|
192
|
+
if (ssr404 !== undefined) {
|
|
193
|
+
meta.conf.ssr404 = typeof ssr404 === "function"
|
|
194
|
+
? ssr404(context.isSSR)
|
|
195
|
+
: ssr404;
|
|
196
|
+
}
|
|
197
|
+
return meta;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Create generateServerWrapper hook
|
|
202
|
+
*/
|
|
203
|
+
function createGenerateServerWrapperHook(wrapperConfig, serverWrapperMode, htmlTemplatePaths) {
|
|
204
|
+
return async (context, wrapperCfg) => {
|
|
205
|
+
// Use serverWrapperMode if provided
|
|
206
|
+
if (serverWrapperMode) {
|
|
207
|
+
return generateServerWrapperCode({
|
|
208
|
+
serverEntryPath: wrapperCfg.serverEntryPath,
|
|
209
|
+
handlerCall: serverWrapperMode.handlerCall || wrapperConfig.handlerCall,
|
|
210
|
+
mode: serverWrapperMode.mode,
|
|
211
|
+
additionalExports: serverWrapperMode.additionalExports,
|
|
212
|
+
needsNodeRequestConversion: true,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
let handlerSetup = wrapperConfig.handlerSetup;
|
|
216
|
+
if (wrapperConfig.requiresHtmlTemplate) {
|
|
217
|
+
const { projectRoot, outputDir, logger } = context;
|
|
218
|
+
let htmlTemplate = "";
|
|
219
|
+
const templateCandidates = [
|
|
220
|
+
...htmlTemplatePaths.map(p => path.join(projectRoot, p)),
|
|
221
|
+
path.join(projectRoot, outputDir, "assets/index.html"),
|
|
222
|
+
];
|
|
223
|
+
for (const templatePath of templateCandidates) {
|
|
224
|
+
if (await pathExists(templatePath)) {
|
|
225
|
+
htmlTemplate = await readFile(templatePath);
|
|
226
|
+
logger.verbose(`Found HTML template: ${templatePath}`);
|
|
227
|
+
break;
|
|
190
228
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
229
|
+
}
|
|
230
|
+
if (!htmlTemplate) {
|
|
231
|
+
logger.warn("HTML template not found, using default template");
|
|
232
|
+
htmlTemplate = "<!DOCTYPE html><html><head><!--app-head--></head><body><div id=\"app\"><!--app-html--></div></body></html>";
|
|
233
|
+
}
|
|
234
|
+
const escapedTemplate = JSON.stringify(htmlTemplate);
|
|
235
|
+
handlerSetup = `const __HTML_TEMPLATE__ = ${escapedTemplate};\n\n${handlerSetup}`;
|
|
236
|
+
}
|
|
237
|
+
return generateServerWrapperCode({
|
|
238
|
+
serverEntryPath: wrapperCfg.serverEntryPath,
|
|
239
|
+
imports: wrapperConfig.imports,
|
|
240
|
+
handlerSetup,
|
|
241
|
+
handlerCall: wrapperConfig.handlerCall,
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Create beforeBundle hook if esbuildConfig is provided
|
|
247
|
+
*/
|
|
248
|
+
function createBeforeBundleHook(esbuildConfig) {
|
|
249
|
+
return async (context, bundleConfig) => {
|
|
250
|
+
const absWorkingDir = typeof esbuildConfig.absWorkingDir === "function"
|
|
251
|
+
? esbuildConfig.absWorkingDir(context)
|
|
252
|
+
: esbuildConfig.absWorkingDir;
|
|
253
|
+
return {
|
|
254
|
+
...bundleConfig,
|
|
255
|
+
external: esbuildConfig.external || bundleConfig.external,
|
|
256
|
+
esbuildOptions: {
|
|
257
|
+
...bundleConfig.esbuildOptions,
|
|
258
|
+
...esbuildConfig.options,
|
|
259
|
+
...(absWorkingDir ? { absWorkingDir } : {}),
|
|
197
260
|
},
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
// ============================================================================
|
|
265
|
+
// Main Factory Function
|
|
266
|
+
// ============================================================================
|
|
267
|
+
/**
|
|
268
|
+
* Create a framework adapter
|
|
269
|
+
*/
|
|
270
|
+
export function createFrameworkAdapter(config, options = {}, overrides) {
|
|
271
|
+
const { name, configFiles, buildDirs, serverEntryFiles = ["index.js", "index.mjs", "entry.js", "main.js"], serverWrapper = "generic", serverWrapperMode, routeConfig, defaultRoutes = ["/"], ssrExtraRoutes = [], ssr404, htmlTemplatePaths = ["dist/client/index.html", "dist/index.html"], esbuildConfig, } = config;
|
|
272
|
+
const { routes = routeConfig?.defaultRoutes || defaultRoutes } = options;
|
|
273
|
+
// Merge route config with legacy options
|
|
274
|
+
const effectiveRouteConfig = {
|
|
275
|
+
sources: routeConfig?.sources,
|
|
276
|
+
defaultRoutes: routeConfig?.defaultRoutes || defaultRoutes,
|
|
277
|
+
ssrExtraRoutes: routeConfig?.ssrExtraRoutes || ssrExtraRoutes,
|
|
278
|
+
transform: routeConfig?.transform,
|
|
279
|
+
};
|
|
280
|
+
const wrapperConfig = typeof serverWrapper === "string"
|
|
281
|
+
? SERVER_WRAPPER_PRESETS[serverWrapper]
|
|
282
|
+
: serverWrapper;
|
|
283
|
+
// Build adapter using helper functions
|
|
284
|
+
const baseAdapter = {
|
|
285
|
+
name,
|
|
286
|
+
detect: createDefaultDetector(configFiles),
|
|
287
|
+
getBuildArtifacts: createDefaultBuildArtifactsGetter(name, buildDirs, serverEntryFiles, options),
|
|
288
|
+
hooks: {
|
|
289
|
+
generateRoutes: createGenerateRoutesHook(effectiveRouteConfig, routes),
|
|
290
|
+
generateMeta: createGenerateMetaHook(ssr404),
|
|
291
|
+
generateServerWrapper: createGenerateServerWrapperHook(wrapperConfig, serverWrapperMode, htmlTemplatePaths),
|
|
292
|
+
...(esbuildConfig ? { beforeBundle: createBeforeBundleHook(esbuildConfig) } : {}),
|
|
198
293
|
},
|
|
199
294
|
};
|
|
200
295
|
if (overrides) {
|
|
@@ -256,7 +351,8 @@ export function createDependencyDetector(dependencies) {
|
|
|
256
351
|
const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
|
257
352
|
return dependencies.some((dep) => dep in deps);
|
|
258
353
|
}
|
|
259
|
-
catch {
|
|
354
|
+
catch (error) {
|
|
355
|
+
context.logger?.verbose?.(`Failed to parse package.json: ${error instanceof Error ? error.message : String(error)}`);
|
|
260
356
|
return false;
|
|
261
357
|
}
|
|
262
358
|
};
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ export { createCoreAdapter, default } from "./core.js";
|
|
|
6
6
|
export { bundleServerCode, createServerWrapper, cleanupWrapper, } from "./bundler.js";
|
|
7
7
|
export { createLogger, logBuildArtifacts, pathExists, copyDirectory, ensureDirectory, readFile, writeFile, deleteFile, listFiles, detectConfigFile, detectBuildDir, detectServerEntry, loadConfigFile, normalizeRoutePath, createDefaultMeta, NODE_REQUEST_CONVERTER_CODE, generateServerWrapperCode, } from "./utils.js";
|
|
8
8
|
export { createFrameworkAdapter, createStatefulAdapter, combineDetectors, createConfigDetector, createBuildDirDetector, createDependencyDetector, SERVER_WRAPPER_PRESETS, } from "./factory.js";
|
|
9
|
+
export { parseRouteTreeContent, parseRouteTreeFile, scanRoutesDirectory, scanRoutesFromDirectories, loadServerBuildRoutes, flattenRouteTree, parseRoutesFromSources, toRouteInfo, toRouteInfoArray, } from "./route-parser.js";
|
|
9
10
|
export type { RouteInfo, MetaConfig, HeaderRule, RedirectRule, RewriteRule, CacheRule, BuildContext, Logger, BuildArtifacts, ServerWrapperConfig, ServerBundleConfig, BeforeBuildHook, AfterBuildHook, BeforeBundleHook, AfterBundleHook, GenerateRoutesHook, GenerateMetaHook, GenerateServerWrapperHook, AdapterHooks, FrameworkAdapter, CoreAdapterOptions, ViteAdapterOptions, ReactRouterAdapterOptions, TanStackStartAdapterOptions, CreateAdapterPlugin, } from "./types.js";
|
|
10
11
|
export type { ServerWrapperGeneratorOptions } from "./utils.js";
|
|
11
|
-
export type { ServerWrapperPreset, BuildDirConfig, AdapterFactoryConfig, AdapterFactoryOptions, } from "./factory.js";
|
|
12
|
+
export type { ServerWrapperPreset, BuildDirConfig, AdapterFactoryConfig, AdapterFactoryOptions, RouteSourceConfig, ServerWrapperModeConfig, EsbuildConfig, } from "./factory.js";
|
|
13
|
+
export type { RouteNode, RouteParserConfig, RouteTreeParserOptions, ServerBuildRouteSource, RouteTreeFileSource, DirectoryScanSource, RouteSource, InternalRouteInfo, } from "./route-parser.js";
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EAET,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc,EAEd,kBAAkB,EAElB,iBAAiB,EAEjB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEhE,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EAET,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc,EAEd,kBAAkB,EAElB,iBAAiB,EAEjB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EAEtB,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEhE,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -22,4 +22,10 @@ createDefaultMeta,
|
|
|
22
22
|
NODE_REQUEST_CONVERTER_CODE, generateServerWrapperCode, } from "./utils.js";
|
|
23
23
|
// Factory
|
|
24
24
|
export { createFrameworkAdapter, createStatefulAdapter, combineDetectors, createConfigDetector, createBuildDirDetector, createDependencyDetector, SERVER_WRAPPER_PRESETS, } from "./factory.js";
|
|
25
|
+
// Route Parser
|
|
26
|
+
export {
|
|
27
|
+
// Parsing functions
|
|
28
|
+
parseRouteTreeContent, parseRouteTreeFile, scanRoutesDirectory, scanRoutesFromDirectories, loadServerBuildRoutes, flattenRouteTree, parseRoutesFromSources,
|
|
29
|
+
// Type conversion utilities
|
|
30
|
+
toRouteInfo, toRouteInfoArray, } from "./route-parser.js";
|
|
25
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACP,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEvD,UAAU;AACV,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,iCAAiC;AACjC,OAAO;AACL,UAAU;AACV,YAAY,EACZ,iBAAiB;AACjB,cAAc;AACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS;AACT,YAAY;AACZ,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,OAAO;AACP,iBAAiB;AACjB,iBAAiB;AACjB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,UAAU;AACV,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACP,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEvD,UAAU;AACV,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,iCAAiC;AACjC,OAAO;AACL,UAAU;AACV,YAAY,EACZ,iBAAiB;AACjB,cAAc;AACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS;AACT,YAAY;AACZ,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,OAAO;AACP,iBAAiB;AACjB,iBAAiB;AACjB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,UAAU;AACV,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,eAAe;AACf,OAAO;AACL,oBAAoB;AACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB;AACtB,4BAA4B;AAC5B,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route Parser - Common route parsing utilities for framework adapters
|
|
3
|
+
*
|
|
4
|
+
* This module provides reusable route parsing tools that can be used by
|
|
5
|
+
* different framework adapters to extract and process route information.
|
|
6
|
+
*/
|
|
7
|
+
import type { RouteInfo, Logger } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Generic route node structure
|
|
10
|
+
*/
|
|
11
|
+
export interface RouteNode {
|
|
12
|
+
id: string;
|
|
13
|
+
path?: string;
|
|
14
|
+
index?: boolean;
|
|
15
|
+
parentId?: string;
|
|
16
|
+
children?: RouteNode[];
|
|
17
|
+
hasLoader?: boolean;
|
|
18
|
+
hasAction?: boolean;
|
|
19
|
+
hasClientLoader?: boolean;
|
|
20
|
+
hasClientAction?: boolean;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Route parser configuration
|
|
25
|
+
*/
|
|
26
|
+
export interface RouteParserConfig {
|
|
27
|
+
/** Convert file path patterns to route paths (e.g., $id -> :id) */
|
|
28
|
+
paramPattern?: RegExp;
|
|
29
|
+
/** Replacement for param pattern */
|
|
30
|
+
paramReplacement?: string;
|
|
31
|
+
/** Index route file names */
|
|
32
|
+
indexFiles?: string[];
|
|
33
|
+
/** Layout/root route file names to skip */
|
|
34
|
+
layoutFiles?: string[];
|
|
35
|
+
/** File extensions to include */
|
|
36
|
+
extensions?: string[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Route tree parser options
|
|
40
|
+
*/
|
|
41
|
+
export interface RouteTreeParserOptions {
|
|
42
|
+
/** Path pattern regex to extract routes */
|
|
43
|
+
pathPattern?: RegExp;
|
|
44
|
+
/** Full path pattern regex */
|
|
45
|
+
fullPathPattern?: RegExp;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Server build route source configuration
|
|
49
|
+
*/
|
|
50
|
+
export interface ServerBuildRouteSource {
|
|
51
|
+
type: "serverBuild";
|
|
52
|
+
/** Server entry path */
|
|
53
|
+
serverEntry: string;
|
|
54
|
+
/** Property path to routes object (e.g., "routes") */
|
|
55
|
+
routesProperty?: string;
|
|
56
|
+
/** Transform function for route nodes */
|
|
57
|
+
transform?: (routes: Record<string, RouteNode>) => RouteInfo[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Route tree file source configuration
|
|
61
|
+
*/
|
|
62
|
+
export interface RouteTreeFileSource {
|
|
63
|
+
type: "routeTree";
|
|
64
|
+
/** Candidate paths for route tree file */
|
|
65
|
+
paths: string[];
|
|
66
|
+
/** Parser options */
|
|
67
|
+
parserOptions?: RouteTreeParserOptions;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Directory scan source configuration
|
|
71
|
+
*/
|
|
72
|
+
export interface DirectoryScanSource {
|
|
73
|
+
type: "directory";
|
|
74
|
+
/** Candidate directories to scan */
|
|
75
|
+
paths: string[];
|
|
76
|
+
/** Parser configuration */
|
|
77
|
+
config?: RouteParserConfig;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Route source configuration union type
|
|
81
|
+
*/
|
|
82
|
+
export type RouteSource = ServerBuildRouteSource | RouteTreeFileSource | DirectoryScanSource;
|
|
83
|
+
/**
|
|
84
|
+
* Parse routes from route tree file content
|
|
85
|
+
*/
|
|
86
|
+
export declare function parseRouteTreeContent(content: string, options?: RouteTreeParserOptions): InternalRouteInfo[];
|
|
87
|
+
/**
|
|
88
|
+
* Load and parse route tree from file
|
|
89
|
+
*/
|
|
90
|
+
export declare function parseRouteTreeFile(projectRoot: string, candidatePaths: string[], options?: RouteTreeParserOptions, logger?: Logger): Promise<InternalRouteInfo[]>;
|
|
91
|
+
/**
|
|
92
|
+
* Scan directory for route files
|
|
93
|
+
*/
|
|
94
|
+
export declare function scanRoutesDirectory(dir: string, basePath?: string, config?: RouteParserConfig): Promise<InternalRouteInfo[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Scan multiple candidate directories for routes
|
|
97
|
+
*/
|
|
98
|
+
export declare function scanRoutesFromDirectories(projectRoot: string, candidateDirs: string[], config?: RouteParserConfig, logger?: Logger): Promise<InternalRouteInfo[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Load server build module and extract routes
|
|
101
|
+
*/
|
|
102
|
+
export declare function loadServerBuildRoutes<T = unknown>(serverEntryPath: string, logger?: Logger): Promise<T | null>;
|
|
103
|
+
/**
|
|
104
|
+
* Flatten nested route tree to flat route list
|
|
105
|
+
*/
|
|
106
|
+
export declare function flattenRouteTree(routes: Record<string, RouteNode>, options?: {
|
|
107
|
+
parentPath?: string;
|
|
108
|
+
isSSR?: boolean;
|
|
109
|
+
isSpaMode?: boolean;
|
|
110
|
+
skipRootId?: string;
|
|
111
|
+
generateDataRoutes?: boolean;
|
|
112
|
+
}): RouteInfo[];
|
|
113
|
+
/**
|
|
114
|
+
* Parse routes from multiple sources with fallback
|
|
115
|
+
*/
|
|
116
|
+
export declare function parseRoutesFromSources(projectRoot: string, sources: RouteSource[], options?: {
|
|
117
|
+
isSSR?: boolean;
|
|
118
|
+
logger?: Logger;
|
|
119
|
+
}): Promise<RouteInfo[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Internal route info with additional properties for parsing
|
|
122
|
+
* This extends RouteInfo with optional properties used during route parsing
|
|
123
|
+
*/
|
|
124
|
+
export interface InternalRouteInfo extends RouteInfo {
|
|
125
|
+
/** Route identifier */
|
|
126
|
+
id?: string;
|
|
127
|
+
/** Full path including parent paths */
|
|
128
|
+
fullPath?: string;
|
|
129
|
+
/** Source file path */
|
|
130
|
+
filePath?: string;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Convert internal route info to standard RouteInfo
|
|
134
|
+
* Strips internal-only properties
|
|
135
|
+
*/
|
|
136
|
+
export declare function toRouteInfo(internal: InternalRouteInfo): RouteInfo;
|
|
137
|
+
/**
|
|
138
|
+
* Convert array of internal route info to standard RouteInfo array
|
|
139
|
+
*/
|
|
140
|
+
export declare function toRouteInfoArray(internals: InternalRouteInfo[]): RouteInfo[];
|
|
141
|
+
//# sourceMappingURL=route-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-parser.d.ts","sourceRoot":"","sources":["../src/route-parser.ts"],"names":[],"mappings":"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"}
|