@tanstack/router-plugin
Version:
Modern and scalable routing for React applications
54 lines (53 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const routerUtils = require("@tanstack/router-utils");
const config = require("./config.cjs");
const routeHmrStatement = require("./route-hmr-statement.cjs");
const utils = require("./utils.cjs");
const unpluginRouterHmrFactory = (options = {}) => {
let ROOT = process.cwd();
return {
name: "tanstack-router:hmr",
enforce: "pre",
transform: {
filter: {
code: "createFileRoute("
},
handler(code, id) {
var _a;
if (!((_a = globalThis.TSR_ROUTES_BY_ID_MAP) == null ? void 0 : _a.has(id))) {
return null;
}
if (utils.debug) console.info("Adding HMR handling to route ", id);
const ast = routerUtils.parseAst({ code });
ast.program.body.push(routeHmrStatement.routeHmrStatement);
const result = routerUtils.generateFromAst(ast, {
sourceMaps: true,
filename: id,
sourceFileName: id
});
if (utils.debug) {
routerUtils.logDiff(code, result.code);
console.log("Output:\n", result.code + "\n\n");
}
return result;
}
},
vite: {
configResolved(config$1) {
ROOT = config$1.root;
config.getConfig(options, ROOT);
}
},
rspack() {
ROOT = process.cwd();
config.getConfig(options, ROOT);
},
webpack() {
ROOT = process.cwd();
config.getConfig(options, ROOT);
}
};
};
exports.unpluginRouterHmrFactory = unpluginRouterHmrFactory;
//# sourceMappingURL=router-hmr-plugin.cjs.map