UNPKG

@tanstack/router-plugin

Version:

Modern and scalable routing for React applications

84 lines (83 loc) 2.85 kB
require("../_virtual/_rolldown/runtime.cjs"); const require_config = require("./config.cjs"); const require_route_hmr_statement = require("./route-hmr-statement.cjs"); const require_compilers = require("./code-splitter/compilers.cjs"); const require_utils = require("./utils.cjs"); const require_framework_plugins = require("./code-splitter/plugins/framework-plugins.cjs"); let _tanstack_router_utils = require("@tanstack/router-utils"); //#region src/core/router-hmr-plugin.ts /** * This plugin adds HMR support for file routes. * It is only added to the composed plugin in dev when autoCodeSplitting is disabled, since the code splitting plugin * handles HMR for code-split routes itself. */ var includeCode = [ "createFileRoute(", "createRootRoute(", "createRootRouteWithContext(" ]; var unpluginRouterHmrFactory = (options = {}) => { let ROOT = process.cwd(); let userConfig = options; return { name: "tanstack-router:hmr", enforce: "pre", transform: { filter: { id: /\.(m|c)?(j|t)sx?$/, code: { include: includeCode } }, handler(code, id) { const normalizedId = require_utils.normalizePath(id); if (!globalThis.TSR_ROUTES_BY_ID_MAP?.has(normalizedId)) return null; if (require_utils.debug) console.info("Adding HMR handling to route ", normalizedId); if (userConfig.target === "react") { const compiled = require_compilers.compileCodeSplitReferenceRoute({ code, filename: normalizedId, id: normalizedId, addHmr: true, codeSplitGroupings: [], targetFramework: "react", compilerPlugins: require_framework_plugins.getReferenceRouteCompilerPlugins({ targetFramework: "react", addHmr: true }) }); if (compiled) { if (require_utils.debug) { (0, _tanstack_router_utils.logDiff)(code, compiled.code); console.log("Output:\n", compiled.code + "\n\n"); } return compiled; } } const ast = (0, _tanstack_router_utils.parseAst)({ code }); ast.program.body.push(require_route_hmr_statement.routeHmrStatement); const result = (0, _tanstack_router_utils.generateFromAst)(ast, { sourceMaps: true, filename: normalizedId, sourceFileName: normalizedId }); if (require_utils.debug) { (0, _tanstack_router_utils.logDiff)(code, result.code); console.log("Output:\n", result.code + "\n\n"); } return result; } }, vite: { configResolved(config) { ROOT = config.root; userConfig = require_config.getConfig(options, ROOT); }, applyToEnvironment(environment) { if (userConfig.plugin?.vite?.environmentName) return userConfig.plugin.vite.environmentName === environment.name; return true; } } }; }; //#endregion exports.unpluginRouterHmrFactory = unpluginRouterHmrFactory; //# sourceMappingURL=router-hmr-plugin.cjs.map