one
Version:
One is a new React Framework that makes Vite serve both native and web.
21 lines (20 loc) • 1.1 kB
JavaScript
import FSExtra from "fs-extra";
import { writeFile } from "node:fs/promises";
import { dirname } from "node:path";
import micromatch from "micromatch";
import { globbedRoutesToRouteContext } from "../router/useViteRoutes";
import { globDir } from "../utils/globDir";
import { getTypedRoutesDeclarationFile } from "./getTypedRoutesDeclarationFile";
async function generateRouteTypes(outFile, routerRoot, ignoredRouteFiles) {
let routePaths = globDir(routerRoot);
ignoredRouteFiles && ignoredRouteFiles.length > 0 && (routePaths = micromatch.not(routePaths, ignoredRouteFiles, {
// The path starts with './', such as './foo/bar/baz.test.tsx', and ignoredRouteFiles is like ['**/*.test.*'], so we need matchBase here.
matchBase: !0
}));
const routes = routePaths.reduce((acc, cur) => (acc[cur] = {}, acc), {}), context = globbedRoutesToRouteContext(routes, routerRoot), declarations = getTypedRoutesDeclarationFile(context);
await FSExtra.ensureDir(dirname(outFile)), await writeFile(outFile, declarations);
}
export {
generateRouteTypes
};
//# sourceMappingURL=generateRouteTypes.js.map