@tanstack/router-plugin
Version:
Modern and scalable routing for React applications
73 lines (72 loc) • 2.17 kB
JavaScript
import { configSchema } from "./core/config.js";
import { unpluginRouterCodeSplitterFactory } from "./core/router-code-splitter-plugin.js";
import { unpluginRouterGeneratorFactory } from "./core/router-generator-plugin.js";
import { unpluginRouterComposedFactory } from "./core/router-composed-plugin.js";
import { createRspackPlugin } from "unplugin";
//#region src/rspack.ts
/**
* Rspack uses webpack-compatible `module.hot` / `import.meta.webpackHot` HMR.
* Force `plugin.hmr.style = 'webpack'` so the router HMR adapter emits
* `module.hot`-style accept/dispose code instead of Vite's callback-receive
* variant, regardless of what the user passes (or doesn't pass).
*/
function withWebpackHmrStyle(options) {
const mergeHmrStyle = (config) => ({
...config,
plugin: {
...config?.plugin,
hmr: {
...config?.plugin?.hmr,
style: "webpack"
}
}
});
if (typeof options === "function") return () => mergeHmrStyle(options());
return mergeHmrStyle(options);
}
/**
* @example
* ```ts
* export default defineConfig({
* // ...
* tools: {
* rspack: {
* plugins: [TanStackRouterGeneratorRspack()],
* },
* },
* })
* ```
*/
var TanStackRouterGeneratorRspack = /* @__PURE__ */ createRspackPlugin(unpluginRouterGeneratorFactory);
/**
* @example
* ```ts
* export default defineConfig({
* // ...
* tools: {
* rspack: {
* plugins: [TanStackRouterCodeSplitterRspack()],
* },
* },
* })
* ```
*/
var TanStackRouterCodeSplitterRspack = /* @__PURE__ */ createRspackPlugin((options, meta) => unpluginRouterCodeSplitterFactory(withWebpackHmrStyle(options), meta));
/**
* @example
* ```ts
* export default defineConfig({
* // ...
* tools: {
* rspack: {
* plugins: [tanstackRouter()],
* },
* },
* })
* ```
*/
var TanStackRouterRspack = /* @__PURE__ */ createRspackPlugin((options, meta) => unpluginRouterComposedFactory(withWebpackHmrStyle(options), meta));
var tanstackRouter = TanStackRouterRspack;
//#endregion
export { TanStackRouterCodeSplitterRspack, TanStackRouterGeneratorRspack, TanStackRouterRspack, TanStackRouterRspack as default, configSchema, tanstackRouter };
//# sourceMappingURL=rspack.js.map