UNPKG

@tanstack/router-plugin

Version:

Modern and scalable routing for React applications

66 lines (65 loc) 2.19 kB
import { configSchema } from "./core/config.js"; import { createRouterPluginContext } from "./core/router-plugin-context.js"; import { createRouterCodeSplitterPlugin } from "./core/router-code-splitter-plugin.js"; import { createRouterGeneratorPlugin } from "./core/router-generator-plugin.js"; import { unpluginRouterComposedFactory } from "./core/router-composed-plugin.js"; import { createWebpackPlugin } from "unplugin"; //#region src/webpack.ts var defaultRouterPluginContext = createRouterPluginContext(); /** * Webpack uses `module.hot` / `import.meta.webpackHot` HMR. Force * `plugin.hmr.style = 'webpack'` so the router HMR adapter emits the correct * accept/dispose shape regardless of user config. */ function withWebpackHmrStyle(options) { return { ...options, plugin: { ...options?.plugin, hmr: { ...options?.plugin?.hmr, style: "webpack" } } }; } /** * @example * ```ts * export default { * // ... * plugins: [TanStackRouterGeneratorWebpack()], * } * ``` */ var TanStackRouterGeneratorWebpack = (options, routerPluginContext) => { const pluginContext = routerPluginContext ?? defaultRouterPluginContext; return createWebpackPlugin((pluginOptions) => createRouterGeneratorPlugin(pluginOptions, pluginContext))(options); }; /** * @example * ```ts * export default { * // ... * plugins: [TanStackRouterCodeSplitterWebpack()], * } * ``` */ var TanStackRouterCodeSplitterWebpack = (options, routerPluginContext) => { const pluginContext = routerPluginContext ?? defaultRouterPluginContext; return createWebpackPlugin((pluginOptions) => createRouterCodeSplitterPlugin(withWebpackHmrStyle(pluginOptions), pluginContext))(options); }; /** * @example * ```ts * export default { * // ... * plugins: [tanstackRouter()], * } * ``` */ var TanStackRouterWebpack = /* @__PURE__ */ createWebpackPlugin((options, meta) => unpluginRouterComposedFactory(withWebpackHmrStyle(options), meta)); var tanstackRouter = TanStackRouterWebpack; //#endregion export { TanStackRouterCodeSplitterWebpack, TanStackRouterGeneratorWebpack, TanStackRouterWebpack, TanStackRouterWebpack as default, configSchema, tanstackRouter }; //# sourceMappingURL=webpack.js.map