UNPKG

@router-cli/react-router-dev

Version:

File based routing cli for react-router-dom.

34 lines (33 loc) 1.43 kB
import { template } from "../template"; export const CODE_NAMING = { exportType: "export type", exportConst: "export const", never: "never", empty: "{}", pages: "pageImports", layouts: "layoutImports" }; export function populateTemplate(args) { let content = template; function replaceImportObject(src, type) { if (src.length > 0) { content = content.replaceAll(`${CODE_NAMING.exportConst} ${type} = ${CODE_NAMING.empty};`, `${CODE_NAMING.exportConst} ${type} = { ${src.sort().join(',\n ')} };`); } } replaceImportObject(args.layouts.imports, CODE_NAMING.layouts); replaceImportObject(args.pages.imports, CODE_NAMING.pages); content = content.replace("/*imports*/", args.imports.join("\n")); content = content.replace("/*exports*/", args.exports.join("\n")); content = content.replaceAll("/*{browserType}*/", args.routerType); if (args.appRouteComponents.app) content = content.replace("app: undefined,", `app: App,`); if (args.appRouteComponents.notFound) content = content.replace("notFound: undefined,", `notFound: NotFound,`); if (args.appRouteComponents.error) content = content.replace("error: undefined,", `error: DefaultErrorComponent,`); if (args.appRouteComponents.pending) content = content.replace("pending: undefined,", `pending: DefaultPendingComponent,`); return content; }