@router-cli/react-router-dev
Version:
File based routing cli for react-router-dom.
29 lines (27 loc) • 929 B
text/typescript
import { Plugin } from 'vite'
import { RouterCliConfig } from './schema'
import { Generator } from './generator'
export default function RouteGenerator(config: RouterCliConfig, verbose: boolean = false): Plugin {
const generator = new Generator(config, verbose);
return {
name: 'router-cli',
enforce: 'pre',
configureServer(server) {
const listener = (path: string) => {
if (
path.includes(config.source)
&& (
path.endsWith('.page.tsx')
|| path.endsWith('_layout.tsx')
)) {
generator.generate();
}
}
server.watcher.on('add', listener)
server.watcher.on('unlink', listener)
},
buildStart() {
generator.generate();
},
}
}