@baseplate-dev/react-generators
Version:
React Generators for Baseplate
59 lines • 2.75 kB
JavaScript
import { typescriptFileProvider } from '@baseplate-dev/core-generators';
import { createGeneratorTask, createProviderType } from '@baseplate-dev/sync';
import { reactComponentsImportsProvider } from '#src/generators/core/react-components/generated/ts-import-providers.js';
import { CORE_REACT_ROUTER_PATHS } from './template-paths.js';
import { CORE_REACT_ROUTER_TEMPLATES } from './typed-templates.js';
const coreReactRouterRenderers = createProviderType('core-react-router-renderers');
const coreReactRouterRenderersTask = createGeneratorTask({
dependencies: {
paths: CORE_REACT_ROUTER_PATHS.provider,
reactComponentsImports: reactComponentsImportsProvider,
typescriptFile: typescriptFileProvider,
},
exports: { coreReactRouterRenderers: coreReactRouterRenderers.export() },
run({ paths, reactComponentsImports, typescriptFile }) {
return {
providers: {
coreReactRouterRenderers: {
placeholderIndex: {
render: (options) => typescriptFile.renderTemplateFile({
template: CORE_REACT_ROUTER_TEMPLATES.placeholderIndex,
destination: paths.placeholderIndex,
...options,
}),
},
rootRoute: {
render: (options) => typescriptFile.renderTemplateFile({
template: CORE_REACT_ROUTER_TEMPLATES.rootRoute,
destination: paths.rootRoute,
...options,
}),
},
router: {
render: (options) => typescriptFile.renderTemplateFile({
template: CORE_REACT_ROUTER_TEMPLATES.router,
destination: paths.router,
importMapProviders: {
reactComponentsImports,
},
generatorPaths: paths,
...options,
}),
},
routeTree: {
render: (options) => typescriptFile.renderTemplateFile({
template: CORE_REACT_ROUTER_TEMPLATES.routeTree,
destination: paths.routeTree,
...options,
}),
},
},
},
};
},
});
export const CORE_REACT_ROUTER_RENDERERS = {
provider: coreReactRouterRenderers,
task: coreReactRouterRenderersTask,
};
//# sourceMappingURL=template-renderers.js.map