one
Version:
One is a new React Framework that makes Vite serve both native and web.
53 lines (52 loc) • 1.91 kB
JavaScript
import { existsSync } from "node:fs";
import { join } from "node:path";
import { generateRouteTypes } from "../typed-routes/generateRouteTypes.mjs";
import { getRouterRootFromOneOptions } from "../utils/getRouterRootFromOneOptions.mjs";
import { loadUserOneOptions } from "../vite/loadConfig.mjs";
async function run(args = {}) {
const cwd = process.cwd();
let oneOptions;
let routerRoot;
let ignoredRouteFiles;
try {
const originalStderrWrite = process.stderr.write;
let stderrBuffer = "";
process.stderr.write = chunk => {
stderrBuffer += chunk;
return true;
};
try {
const loaded = await loadUserOneOptions("build");
oneOptions = loaded.oneOptions;
routerRoot = args.appDir || getRouterRootFromOneOptions(oneOptions);
ignoredRouteFiles = oneOptions.router?.ignoredRouteFiles;
} finally {
process.stderr.write = originalStderrWrite;
}
} catch (error) {
routerRoot = args.appDir || "app";
}
const appDir = join(cwd, routerRoot);
if (!existsSync(appDir)) {
console.error(`Error: App directory not found at ${appDir}`);
console.error("You can specify a custom directory with: npx one generate-routes --appDir=<path>");
process.exit(1);
}
const outFile = join(appDir, "routes.d.ts");
let typedRoutesMode;
if (args.typed) {
if (args.typed === "type" || args.typed === "runtime") {
typedRoutesMode = args.typed;
} else {
console.error(`Error: Invalid --typed value "${args.typed}". Must be "type" or "runtime"`);
process.exit(1);
}
} else if (oneOptions) {
typedRoutesMode = oneOptions.router?.experimental?.typedRoutesGeneration || void 0;
}
if (typedRoutesMode) {} else if (!args.typed) {}
await generateRouteTypes(outFile, routerRoot, ignoredRouteFiles, typedRoutesMode);
if (typedRoutesMode) {}
}
export { run };
//# sourceMappingURL=generateRoutes.mjs.map