one
Version:
One is a new React Framework that makes Vite serve both native and web.
35 lines (34 loc) • 1.7 kB
JavaScript
import { existsSync } from "node:fs";
import { join } from "node:path";
import { generateRouteTypes } from "../typed-routes/generateRouteTypes";
import { getRouterRootFromOneOptions } from "../utils/getRouterRootFromOneOptions";
import { loadUserOneOptions } from "../vite/loadConfig";
async function run(args = {}) {
const cwd = process.cwd();
let oneOptions, routerRoot, ignoredRouteFiles;
try {
const originalStderrWrite = process.stderr.write;
let stderrBuffer = "";
process.stderr.write = ((chunk) => (stderrBuffer += chunk, !0));
try {
oneOptions = (await loadUserOneOptions("build")).oneOptions, routerRoot = args.appDir || getRouterRootFromOneOptions(oneOptions), ignoredRouteFiles = oneOptions.router?.ignoredRouteFiles;
} finally {
process.stderr.write = originalStderrWrite;
}
} catch {
routerRoot = args.appDir || "app";
}
const appDir = join(cwd, routerRoot);
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;
args.typed ? args.typed === "type" || args.typed === "runtime" ? typedRoutesMode = args.typed : (console.error(
`Error: Invalid --typed value "${args.typed}". Must be "type" or "runtime"`
), process.exit(1)) : oneOptions && (typedRoutesMode = oneOptions.router?.experimental?.typedRoutesGeneration || void 0), typedRoutesMode || args.typed, await generateRouteTypes(outFile, routerRoot, ignoredRouteFiles, typedRoutesMode);
}
export {
run
};
//# sourceMappingURL=generateRoutes.js.map