@tanstack/router-vite-plugin 1.5.5 → 1.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,11 +51,12 @@ function TanStackRouterVite(inlineConfig = {}) {
51
51
  handleHotUpdate: async ({
52
52
  file
53
53
  }) => {
54
- if (file === path.join(ROOT, CONFIG_FILE_NAME)) {
54
+ const filePath = path.normalize(file);
55
+ if (filePath === path.join(ROOT, CONFIG_FILE_NAME)) {
55
56
  userConfig = await buildConfig(inlineConfig, ROOT);
56
57
  return;
57
58
  }
58
- if (file.startsWith(path.join(ROOT, userConfig.routesDirectory))) {
59
+ if (filePath.startsWith(path.join(ROOT, userConfig.routesDirectory))) {
59
60
  await generate();
60
61
  }
61
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { Plugin } from 'vite'\nimport { join } from 'path'\nimport { readFile } from 'fs/promises'\nimport {\n type Config,\n configSchema,\n generator,\n} from '@tanstack/router-generator'\n\nconst CONFIG_FILE_NAME = 'tsr.config.json'\n\ntype UserConfig = Partial<Config>\n\nasync function readConfigFile(path: string): Promise<UserConfig> {\n try {\n const raw = await readFile(path, 'utf-8')\n return JSON.parse(raw) as UserConfig\n } catch {\n return {} as UserConfig\n }\n}\n\nasync function buildConfig(config: UserConfig, root: string): Promise<Config> {\n const fileConfig = await readConfigFile(join(root, CONFIG_FILE_NAME))\n return configSchema.parse({\n ...fileConfig,\n ...config,\n })\n}\n\nexport function TanStackRouterVite(inlineConfig: UserConfig = {}): Plugin {\n let ROOT: string\n let userConfig: Config\n\n const generate = async () => {\n try {\n await generator(userConfig)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n return {\n name: 'vite-plugin-tanstack-router',\n configResolved: async (vite) => {\n ROOT = vite.root\n userConfig = await buildConfig(inlineConfig, ROOT)\n await generate()\n },\n handleHotUpdate: async ({ file }) => {\n if (file === join(ROOT, CONFIG_FILE_NAME)) {\n userConfig = await buildConfig(inlineConfig, ROOT)\n return\n }\n if (file.startsWith(join(ROOT, userConfig.routesDirectory))) {\n await generate()\n }\n },\n }\n}\n"],"names":["CONFIG_FILE_NAME","readConfigFile","path","raw","readFile","JSON","parse","buildConfig","config","root","fileConfig","join","configSchema","TanStackRouterVite","inlineConfig","ROOT","userConfig","generate","generator","err","console","error","info","name","configResolved","vite","handleHotUpdate","file","startsWith","routesDirectory"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAMA,gBAAgB,GAAG,iBAAiB,CAAA;AAI1C,eAAeC,cAAcA,CAACC,IAAY,EAAuB;EAC/D,IAAI;IACF,MAAMC,GAAG,GAAG,MAAMC,iBAAQ,CAACF,IAAI,EAAE,OAAO,CAAC,CAAA;AACzC,IAAA,OAAOG,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,CAAA;AACxB,GAAC,CAAC,MAAM;AACN,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAA;AAEA,eAAeI,WAAWA,CAACC,MAAkB,EAAEC,IAAY,EAAmB;EAC5E,MAAMC,UAAU,GAAG,MAAMT,cAAc,CAACU,SAAI,CAACF,IAAI,EAAET,gBAAgB,CAAC,CAAC,CAAA;EACrE,OAAOY,4BAAY,CAACN,KAAK,CAAC;AACxB,IAAA,GAAGI,UAAU;IACb,GAAGF,MAAAA;AACL,GAAC,CAAC,CAAA;AACJ,CAAA;AAEO,SAASK,kBAAkBA,CAACC,YAAwB,GAAG,EAAE,EAAU;AACxE,EAAA,IAAIC,IAAY,CAAA;AAChB,EAAA,IAAIC,UAAkB,CAAA;AAEtB,EAAA,MAAMC,QAAQ,GAAG,YAAY;IAC3B,IAAI;MACF,MAAMC,yBAAS,CAACF,UAAU,CAAC,CAAA;KAC5B,CAAC,OAAOG,GAAG,EAAE;AACZC,MAAAA,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC,CAAA;MAClBC,OAAO,CAACE,IAAI,EAAE,CAAA;AAChB,KAAA;GACD,CAAA;EAED,OAAO;AACLC,IAAAA,IAAI,EAAE,6BAA6B;IACnCC,cAAc,EAAE,MAAOC,IAAI,IAAK;MAC9BV,IAAI,GAAGU,IAAI,CAAChB,IAAI,CAAA;AAChBO,MAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;MAClD,MAAME,QAAQ,EAAE,CAAA;KACjB;IACDS,eAAe,EAAE,OAAO;AAAEC,MAAAA,IAAAA;AAAK,KAAC,KAAK;MACnC,IAAIA,IAAI,KAAKhB,SAAI,CAACI,IAAI,EAAEf,gBAAgB,CAAC,EAAE;AACzCgB,QAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;AAClD,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAIY,IAAI,CAACC,UAAU,CAACjB,SAAI,CAACI,IAAI,EAAEC,UAAU,CAACa,eAAe,CAAC,CAAC,EAAE;QAC3D,MAAMZ,QAAQ,EAAE,CAAA;AAClB,OAAA;AACF,KAAA;GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { Plugin } from 'vite'\nimport { join, normalize } from 'path'\nimport { readFile } from 'fs/promises'\nimport {\n type Config,\n configSchema,\n generator,\n} from '@tanstack/router-generator'\n\nconst CONFIG_FILE_NAME = 'tsr.config.json'\n\ntype UserConfig = Partial<Config>\n\nasync function readConfigFile(path: string): Promise<UserConfig> {\n try {\n const raw = await readFile(path, 'utf-8')\n return JSON.parse(raw) as UserConfig\n } catch {\n return {} as UserConfig\n }\n}\n\nasync function buildConfig(config: UserConfig, root: string): Promise<Config> {\n const fileConfig = await readConfigFile(join(root, CONFIG_FILE_NAME))\n return configSchema.parse({\n ...fileConfig,\n ...config,\n })\n}\n\nexport function TanStackRouterVite(inlineConfig: UserConfig = {}): Plugin {\n let ROOT: string\n let userConfig: Config\n\n const generate = async () => {\n try {\n await generator(userConfig)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n return {\n name: 'vite-plugin-tanstack-router',\n configResolved: async (vite) => {\n ROOT = vite.root\n userConfig = await buildConfig(inlineConfig, ROOT)\n await generate()\n },\n handleHotUpdate: async ({ file }) => {\n const filePath = normalize(file)\n if (filePath === join(ROOT, CONFIG_FILE_NAME)) {\n userConfig = await buildConfig(inlineConfig, ROOT)\n return\n }\n if (filePath.startsWith(join(ROOT, userConfig.routesDirectory))) {\n await generate()\n }\n },\n }\n}\n"],"names":["CONFIG_FILE_NAME","readConfigFile","path","raw","readFile","JSON","parse","buildConfig","config","root","fileConfig","join","configSchema","TanStackRouterVite","inlineConfig","ROOT","userConfig","generate","generator","err","console","error","info","name","configResolved","vite","handleHotUpdate","file","filePath","normalize","startsWith","routesDirectory"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAMA,gBAAgB,GAAG,iBAAiB,CAAA;AAI1C,eAAeC,cAAcA,CAACC,IAAY,EAAuB;EAC/D,IAAI;IACF,MAAMC,GAAG,GAAG,MAAMC,iBAAQ,CAACF,IAAI,EAAE,OAAO,CAAC,CAAA;AACzC,IAAA,OAAOG,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,CAAA;AACxB,GAAC,CAAC,MAAM;AACN,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAA;AAEA,eAAeI,WAAWA,CAACC,MAAkB,EAAEC,IAAY,EAAmB;EAC5E,MAAMC,UAAU,GAAG,MAAMT,cAAc,CAACU,SAAI,CAACF,IAAI,EAAET,gBAAgB,CAAC,CAAC,CAAA;EACrE,OAAOY,4BAAY,CAACN,KAAK,CAAC;AACxB,IAAA,GAAGI,UAAU;IACb,GAAGF,MAAAA;AACL,GAAC,CAAC,CAAA;AACJ,CAAA;AAEO,SAASK,kBAAkBA,CAACC,YAAwB,GAAG,EAAE,EAAU;AACxE,EAAA,IAAIC,IAAY,CAAA;AAChB,EAAA,IAAIC,UAAkB,CAAA;AAEtB,EAAA,MAAMC,QAAQ,GAAG,YAAY;IAC3B,IAAI;MACF,MAAMC,yBAAS,CAACF,UAAU,CAAC,CAAA;KAC5B,CAAC,OAAOG,GAAG,EAAE;AACZC,MAAAA,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC,CAAA;MAClBC,OAAO,CAACE,IAAI,EAAE,CAAA;AAChB,KAAA;GACD,CAAA;EAED,OAAO;AACLC,IAAAA,IAAI,EAAE,6BAA6B;IACnCC,cAAc,EAAE,MAAOC,IAAI,IAAK;MAC9BV,IAAI,GAAGU,IAAI,CAAChB,IAAI,CAAA;AAChBO,MAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;MAClD,MAAME,QAAQ,EAAE,CAAA;KACjB;IACDS,eAAe,EAAE,OAAO;AAAEC,MAAAA,IAAAA;AAAK,KAAC,KAAK;AACnC,MAAA,MAAMC,QAAQ,GAAGC,cAAS,CAACF,IAAI,CAAC,CAAA;MAChC,IAAIC,QAAQ,KAAKjB,SAAI,CAACI,IAAI,EAAEf,gBAAgB,CAAC,EAAE;AAC7CgB,QAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;AAClD,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAIa,QAAQ,CAACE,UAAU,CAACnB,SAAI,CAACI,IAAI,EAAEC,UAAU,CAACe,eAAe,CAAC,CAAC,EAAE;QAC/D,MAAMd,QAAQ,EAAE,CAAA;AAClB,OAAA;AACF,KAAA;GACD,CAAA;AACH;;;;"}
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
- import { join } from 'path';
11
+ import { normalize, join } from 'path';
12
12
  import { readFile } from 'fs/promises';
13
13
  import { configSchema, generator } from '@tanstack/router-generator';
14
14
 
@@ -49,11 +49,12 @@ function TanStackRouterVite(inlineConfig = {}) {
49
49
  handleHotUpdate: async ({
50
50
  file
51
51
  }) => {
52
- if (file === join(ROOT, CONFIG_FILE_NAME)) {
52
+ const filePath = normalize(file);
53
+ if (filePath === join(ROOT, CONFIG_FILE_NAME)) {
53
54
  userConfig = await buildConfig(inlineConfig, ROOT);
54
55
  return;
55
56
  }
56
- if (file.startsWith(join(ROOT, userConfig.routesDirectory))) {
57
+ if (filePath.startsWith(join(ROOT, userConfig.routesDirectory))) {
57
58
  await generate();
58
59
  }
59
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { Plugin } from 'vite'\nimport { join } from 'path'\nimport { readFile } from 'fs/promises'\nimport {\n type Config,\n configSchema,\n generator,\n} from '@tanstack/router-generator'\n\nconst CONFIG_FILE_NAME = 'tsr.config.json'\n\ntype UserConfig = Partial<Config>\n\nasync function readConfigFile(path: string): Promise<UserConfig> {\n try {\n const raw = await readFile(path, 'utf-8')\n return JSON.parse(raw) as UserConfig\n } catch {\n return {} as UserConfig\n }\n}\n\nasync function buildConfig(config: UserConfig, root: string): Promise<Config> {\n const fileConfig = await readConfigFile(join(root, CONFIG_FILE_NAME))\n return configSchema.parse({\n ...fileConfig,\n ...config,\n })\n}\n\nexport function TanStackRouterVite(inlineConfig: UserConfig = {}): Plugin {\n let ROOT: string\n let userConfig: Config\n\n const generate = async () => {\n try {\n await generator(userConfig)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n return {\n name: 'vite-plugin-tanstack-router',\n configResolved: async (vite) => {\n ROOT = vite.root\n userConfig = await buildConfig(inlineConfig, ROOT)\n await generate()\n },\n handleHotUpdate: async ({ file }) => {\n if (file === join(ROOT, CONFIG_FILE_NAME)) {\n userConfig = await buildConfig(inlineConfig, ROOT)\n return\n }\n if (file.startsWith(join(ROOT, userConfig.routesDirectory))) {\n await generate()\n }\n },\n }\n}\n"],"names":["CONFIG_FILE_NAME","readConfigFile","path","raw","readFile","JSON","parse","buildConfig","config","root","fileConfig","join","configSchema","TanStackRouterVite","inlineConfig","ROOT","userConfig","generate","generator","err","console","error","info","name","configResolved","vite","handleHotUpdate","file","startsWith","routesDirectory"],"mappings":";;;;;;;;;;;;;;AASA,MAAMA,gBAAgB,GAAG,iBAAiB,CAAA;AAI1C,eAAeC,cAAcA,CAACC,IAAY,EAAuB;EAC/D,IAAI;IACF,MAAMC,GAAG,GAAG,MAAMC,QAAQ,CAACF,IAAI,EAAE,OAAO,CAAC,CAAA;AACzC,IAAA,OAAOG,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,CAAA;AACxB,GAAC,CAAC,MAAM;AACN,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAA;AAEA,eAAeI,WAAWA,CAACC,MAAkB,EAAEC,IAAY,EAAmB;EAC5E,MAAMC,UAAU,GAAG,MAAMT,cAAc,CAACU,IAAI,CAACF,IAAI,EAAET,gBAAgB,CAAC,CAAC,CAAA;EACrE,OAAOY,YAAY,CAACN,KAAK,CAAC;AACxB,IAAA,GAAGI,UAAU;IACb,GAAGF,MAAAA;AACL,GAAC,CAAC,CAAA;AACJ,CAAA;AAEO,SAASK,kBAAkBA,CAACC,YAAwB,GAAG,EAAE,EAAU;AACxE,EAAA,IAAIC,IAAY,CAAA;AAChB,EAAA,IAAIC,UAAkB,CAAA;AAEtB,EAAA,MAAMC,QAAQ,GAAG,YAAY;IAC3B,IAAI;MACF,MAAMC,SAAS,CAACF,UAAU,CAAC,CAAA;KAC5B,CAAC,OAAOG,GAAG,EAAE;AACZC,MAAAA,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC,CAAA;MAClBC,OAAO,CAACE,IAAI,EAAE,CAAA;AAChB,KAAA;GACD,CAAA;EAED,OAAO;AACLC,IAAAA,IAAI,EAAE,6BAA6B;IACnCC,cAAc,EAAE,MAAOC,IAAI,IAAK;MAC9BV,IAAI,GAAGU,IAAI,CAAChB,IAAI,CAAA;AAChBO,MAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;MAClD,MAAME,QAAQ,EAAE,CAAA;KACjB;IACDS,eAAe,EAAE,OAAO;AAAEC,MAAAA,IAAAA;AAAK,KAAC,KAAK;MACnC,IAAIA,IAAI,KAAKhB,IAAI,CAACI,IAAI,EAAEf,gBAAgB,CAAC,EAAE;AACzCgB,QAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;AAClD,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAIY,IAAI,CAACC,UAAU,CAACjB,IAAI,CAACI,IAAI,EAAEC,UAAU,CAACa,eAAe,CAAC,CAAC,EAAE;QAC3D,MAAMZ,QAAQ,EAAE,CAAA;AAClB,OAAA;AACF,KAAA;GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { Plugin } from 'vite'\nimport { join, normalize } from 'path'\nimport { readFile } from 'fs/promises'\nimport {\n type Config,\n configSchema,\n generator,\n} from '@tanstack/router-generator'\n\nconst CONFIG_FILE_NAME = 'tsr.config.json'\n\ntype UserConfig = Partial<Config>\n\nasync function readConfigFile(path: string): Promise<UserConfig> {\n try {\n const raw = await readFile(path, 'utf-8')\n return JSON.parse(raw) as UserConfig\n } catch {\n return {} as UserConfig\n }\n}\n\nasync function buildConfig(config: UserConfig, root: string): Promise<Config> {\n const fileConfig = await readConfigFile(join(root, CONFIG_FILE_NAME))\n return configSchema.parse({\n ...fileConfig,\n ...config,\n })\n}\n\nexport function TanStackRouterVite(inlineConfig: UserConfig = {}): Plugin {\n let ROOT: string\n let userConfig: Config\n\n const generate = async () => {\n try {\n await generator(userConfig)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n return {\n name: 'vite-plugin-tanstack-router',\n configResolved: async (vite) => {\n ROOT = vite.root\n userConfig = await buildConfig(inlineConfig, ROOT)\n await generate()\n },\n handleHotUpdate: async ({ file }) => {\n const filePath = normalize(file)\n if (filePath === join(ROOT, CONFIG_FILE_NAME)) {\n userConfig = await buildConfig(inlineConfig, ROOT)\n return\n }\n if (filePath.startsWith(join(ROOT, userConfig.routesDirectory))) {\n await generate()\n }\n },\n }\n}\n"],"names":["CONFIG_FILE_NAME","readConfigFile","path","raw","readFile","JSON","parse","buildConfig","config","root","fileConfig","join","configSchema","TanStackRouterVite","inlineConfig","ROOT","userConfig","generate","generator","err","console","error","info","name","configResolved","vite","handleHotUpdate","file","filePath","normalize","startsWith","routesDirectory"],"mappings":";;;;;;;;;;;;;;AASA,MAAMA,gBAAgB,GAAG,iBAAiB,CAAA;AAI1C,eAAeC,cAAcA,CAACC,IAAY,EAAuB;EAC/D,IAAI;IACF,MAAMC,GAAG,GAAG,MAAMC,QAAQ,CAACF,IAAI,EAAE,OAAO,CAAC,CAAA;AACzC,IAAA,OAAOG,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC,CAAA;AACxB,GAAC,CAAC,MAAM;AACN,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAA;AAEA,eAAeI,WAAWA,CAACC,MAAkB,EAAEC,IAAY,EAAmB;EAC5E,MAAMC,UAAU,GAAG,MAAMT,cAAc,CAACU,IAAI,CAACF,IAAI,EAAET,gBAAgB,CAAC,CAAC,CAAA;EACrE,OAAOY,YAAY,CAACN,KAAK,CAAC;AACxB,IAAA,GAAGI,UAAU;IACb,GAAGF,MAAAA;AACL,GAAC,CAAC,CAAA;AACJ,CAAA;AAEO,SAASK,kBAAkBA,CAACC,YAAwB,GAAG,EAAE,EAAU;AACxE,EAAA,IAAIC,IAAY,CAAA;AAChB,EAAA,IAAIC,UAAkB,CAAA;AAEtB,EAAA,MAAMC,QAAQ,GAAG,YAAY;IAC3B,IAAI;MACF,MAAMC,SAAS,CAACF,UAAU,CAAC,CAAA;KAC5B,CAAC,OAAOG,GAAG,EAAE;AACZC,MAAAA,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC,CAAA;MAClBC,OAAO,CAACE,IAAI,EAAE,CAAA;AAChB,KAAA;GACD,CAAA;EAED,OAAO;AACLC,IAAAA,IAAI,EAAE,6BAA6B;IACnCC,cAAc,EAAE,MAAOC,IAAI,IAAK;MAC9BV,IAAI,GAAGU,IAAI,CAAChB,IAAI,CAAA;AAChBO,MAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;MAClD,MAAME,QAAQ,EAAE,CAAA;KACjB;IACDS,eAAe,EAAE,OAAO;AAAEC,MAAAA,IAAAA;AAAK,KAAC,KAAK;AACnC,MAAA,MAAMC,QAAQ,GAAGC,SAAS,CAACF,IAAI,CAAC,CAAA;MAChC,IAAIC,QAAQ,KAAKjB,IAAI,CAACI,IAAI,EAAEf,gBAAgB,CAAC,EAAE;AAC7CgB,QAAAA,UAAU,GAAG,MAAMT,WAAW,CAACO,YAAY,EAAEC,IAAI,CAAC,CAAA;AAClD,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAIa,QAAQ,CAACE,UAAU,CAACnB,IAAI,CAACI,IAAI,EAAEC,UAAU,CAACe,eAAe,CAAC,CAAC,EAAE;QAC/D,MAAMd,QAAQ,EAAE,CAAA;AAClB,OAAA;AACF,KAAA;GACD,CAAA;AACH;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/router-vite-plugin",
3
3
  "author": "Tanner Linsley",
4
- "version": "1.5.5",
4
+ "version": "1.5.7",
5
5
  "license": "MIT",
6
6
  "repository": "tanstack/router",
7
7
  "homepage": "https://tanstack.com/router",
@@ -34,7 +34,7 @@
34
34
  "main": "build/cjs/index.js",
35
35
  "types": "build/types/index.d.ts",
36
36
  "dependencies": {
37
- "@tanstack/router-generator": "1.5.5"
37
+ "@tanstack/router-generator": "1.5.7"
38
38
  },
39
39
  "scripts": {
40
40
  "build": "rollup --config rollup.config.js"
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'vite'
2
- import { join } from 'path'
2
+ import { join, normalize } from 'path'
3
3
  import { readFile } from 'fs/promises'
4
4
  import {
5
5
  type Config,
@@ -49,11 +49,12 @@ export function TanStackRouterVite(inlineConfig: UserConfig = {}): Plugin {
49
49
  await generate()
50
50
  },
51
51
  handleHotUpdate: async ({ file }) => {
52
- if (file === join(ROOT, CONFIG_FILE_NAME)) {
52
+ const filePath = normalize(file)
53
+ if (filePath === join(ROOT, CONFIG_FILE_NAME)) {
53
54
  userConfig = await buildConfig(inlineConfig, ROOT)
54
55
  return
55
56
  }
56
- if (file.startsWith(join(ROOT, userConfig.routesDirectory))) {
57
+ if (filePath.startsWith(join(ROOT, userConfig.routesDirectory))) {
57
58
  await generate()
58
59
  }
59
60
  },