{"version":3,"file":"router-hmr-plugin.cjs","sources":["../../../src/core/router-hmr-plugin.ts"],"sourcesContent":["import { generateFromAst, logDiff, parseAst } from '@tanstack/router-utils'\nimport { routeHmrStatement } from './route-hmr-statement'\nimport { debug } from './utils'\nimport type { Config } from './config'\nimport type { UnpluginFactory } from 'unplugin'\n\n/**\n * This plugin adds HMR support for file routes.\n * It is only added to the composed plugin in dev when autoCodeSplitting is disabled, since the code splitting plugin\n * handles HMR for code-split routes itself.\n */\nexport const unpluginRouterHmrFactory: UnpluginFactory<\n  Partial<Config> | undefined\n> = () => {\n  return {\n    name: 'tanstack-router:hmr',\n    enforce: 'pre',\n    transform: {\n      filter: {\n        // this is necessary for webpack / rspack to avoid matching .html files\n        id: /\\.(m|c)?(j|t)sx?$/,\n        code: 'createFileRoute(',\n      },\n      handler(code, id) {\n        if (!globalThis.TSR_ROUTES_BY_ID_MAP?.has(id)) {\n          return null\n        }\n\n        if (debug) console.info('Adding HMR handling to route ', id)\n\n        const ast = parseAst({ code })\n        ast.program.body.push(routeHmrStatement)\n        const result = generateFromAst(ast, {\n          sourceMaps: true,\n          filename: id,\n          sourceFileName: id,\n        })\n        if (debug) {\n          logDiff(code, result.code)\n          console.log('Output:\\n', result.code + '\\n\\n')\n        }\n        return result\n      },\n    },\n  }\n}\n"],"names":["debug","parseAst","routeHmrStatement","generateFromAst","logDiff"],"mappings":";;;;;AAWO,MAAM,2BAET,MAAM;AACD,SAAA;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,MACT,QAAQ;AAAA;AAAA,QAEN,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,MAAM,IAAI;;AAChB,YAAI,GAAC,gBAAW,yBAAX,mBAAiC,IAAI,MAAK;AACtC,iBAAA;AAAA,QAAA;AAGT,YAAIA,MAAO,MAAA,SAAQ,KAAK,iCAAiC,EAAE;AAE3D,cAAM,MAAMC,YAAAA,SAAS,EAAE,MAAM;AACzB,YAAA,QAAQ,KAAK,KAAKC,kBAAAA,iBAAiB;AACjC,cAAA,SAASC,4BAAgB,KAAK;AAAA,UAClC,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,gBAAgB;AAAA,QAAA,CACjB;AACD,YAAIH,aAAO;AACDI,8BAAA,MAAM,OAAO,IAAI;AACzB,kBAAQ,IAAI,aAAa,OAAO,OAAO,MAAM;AAAA,QAAA;AAExC,eAAA;AAAA,MAAA;AAAA,IACT;AAAA,EAEJ;AACF;;"}