{"version":3,"file":"watch.cjs","names":[],"sources":["../../src/watch.ts"],"sourcesContent":["import chokidar from 'chokidar'\nimport {\n  Generator,\n  getConfig,\n  resolveConfigPath,\n} from '@tanstack/router-generator'\nimport type { FileEventType } from '@tanstack/router-generator'\n\nexport function watch(root: string) {\n  const configPath = resolveConfigPath({\n    configDirectory: root,\n  })\n  const configWatcher = chokidar.watch(configPath)\n\n  let watcher = new chokidar.FSWatcher({})\n\n  const generatorWatcher = () => {\n    const config = getConfig()\n    const generator = new Generator({ config, root })\n\n    watcher.close()\n\n    console.info(`TSR: Watching routes (${config.routesDirectory})...`)\n    watcher = chokidar.watch(config.routesDirectory)\n\n    watcher.on('ready', async () => {\n      const handle = async () => {\n        try {\n          await generator.run()\n        } catch (err) {\n          console.error(err)\n          console.info()\n        }\n      }\n\n      await handle()\n\n      watcher.on('all', (event, path) => {\n        let type: FileEventType | undefined\n        switch (event) {\n          case 'add':\n            type = 'create'\n            break\n          case 'change':\n            type = 'update'\n            break\n          case 'unlink':\n            type = 'delete'\n            break\n        }\n        if (type) {\n          return generator.run({ path, type })\n        }\n        return generator.run()\n      })\n    })\n  }\n\n  configWatcher.on('ready', generatorWatcher)\n  configWatcher.on('change', generatorWatcher)\n}\n"],"mappings":";;;;;AAQA,SAAgB,MAAM,MAAc;CAClC,MAAM,cAAA,GAAA,2BAAA,mBAA+B,EACnC,iBAAiB,KACnB,CAAC;CACD,MAAM,gBAAgB,SAAA,QAAS,MAAM,UAAU;CAE/C,IAAI,UAAU,IAAI,SAAA,QAAS,UAAU,CAAC,CAAC;CAEvC,MAAM,yBAAyB;EAC7B,MAAM,UAAA,GAAA,2BAAA,WAAmB;EACzB,MAAM,YAAY,IAAI,2BAAA,UAAU;GAAE;GAAQ;EAAK,CAAC;EAEhD,QAAQ,MAAM;EAEd,QAAQ,KAAK,yBAAyB,OAAO,gBAAgB,KAAK;EAClE,UAAU,SAAA,QAAS,MAAM,OAAO,eAAe;EAE/C,QAAQ,GAAG,SAAS,YAAY;GAC9B,MAAM,SAAS,YAAY;IACzB,IAAI;KACF,MAAM,UAAU,IAAI;IACtB,SAAS,KAAK;KACZ,QAAQ,MAAM,GAAG;KACjB,QAAQ,KAAK;IACf;GACF;GAEA,MAAM,OAAO;GAEb,QAAQ,GAAG,QAAQ,OAAO,SAAS;IACjC,IAAI;IACJ,QAAQ,OAAR;KACE,KAAK;MACH,OAAO;MACP;KACF,KAAK;MACH,OAAO;MACP;KACF,KAAK;MACH,OAAO;MACP;IACJ;IACA,IAAI,MACF,OAAO,UAAU,IAAI;KAAE;KAAM;IAAK,CAAC;IAErC,OAAO,UAAU,IAAI;GACvB,CAAC;EACH,CAAC;CACH;CAEA,cAAc,GAAG,SAAS,gBAAgB;CAC1C,cAAc,GAAG,UAAU,gBAAgB;AAC7C"}