UNPKG

@tanstack/router-plugin

Version:

Modern and scalable routing for React applications

73 lines (72 loc) 2.17 kB
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