@tanstack/router-cli 1.19.6 → 1.20.3-alpha.1

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.
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ <img src="https://static.scarf.sh/a.png?x-pxid=d988eb79-b0fc-4a2b-8514-6a1ab932d188" />
2
+
3
+ # TanStack Router CLI
4
+
5
+ See https://tanstack.com/router/latest/docs/framework/react/routing/installation-with-router-cli
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const routerGenerator = require("@tanstack/router-generator");
4
- async function generate(config) {
4
+ async function generate(config, root) {
5
5
  try {
6
- await routerGenerator.generator(config);
6
+ await routerGenerator.generator(config, root);
7
7
  process.exit(0);
8
8
  } catch (err) {
9
9
  console.error(err);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.cjs","sources":["../../src/generate.ts"],"sourcesContent":["import { Config, generator } from '@tanstack/router-generator'\n\nexport async function generate(config: Config) {\n try {\n await generator(config)\n process.exit(0)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n}\n"],"names":["generator"],"mappings":";;;AAEA,eAAsB,SAAS,QAAgB;AACzC,MAAA;AACF,UAAMA,gBAAAA,UAAU,MAAM;AACtB,YAAQ,KAAK,CAAC;AAAA,WACP,KAAK;AACZ,YAAQ,MAAM,GAAG;AACjB,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;"}
1
+ {"version":3,"file":"generate.cjs","sources":["../../src/generate.ts"],"sourcesContent":["import { generator } from '@tanstack/router-generator'\nimport type { Config } from '@tanstack/router-generator'\n\nexport async function generate(config: Config, root: string) {\n try {\n await generator(config, root)\n process.exit(0)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n}\n"],"names":["generator"],"mappings":";;;AAGsB,eAAA,SAAS,QAAgB,MAAc;AACvD,MAAA;AACI,UAAAA,gBAAA,UAAU,QAAQ,IAAI;AAC5B,YAAQ,KAAK,CAAC;AAAA,WACP,KAAK;AACZ,YAAQ,MAAM,GAAG;AACjB,YAAQ,KAAK,CAAC;AAAA,EAAA;AAElB;;"}
@@ -1,2 +1,2 @@
1
1
  import { Config } from '@tanstack/router-generator';
2
- export declare function generate(config: Config): Promise<void>;
2
+ export declare function generate(config: Config, root: string): Promise<void>;
@@ -24,13 +24,13 @@ const yargs__namespace = /* @__PURE__ */ _interopNamespaceDefault(yargs);
24
24
  main();
25
25
  function main() {
26
26
  yargs__namespace.scriptName("tsr").usage("$0 <cmd> [args]").command("generate", "Generate the routes for a project", async () => {
27
- const config = await routerGenerator.getConfig();
28
- await generate.generate(config);
27
+ const config = routerGenerator.getConfig();
28
+ await generate.generate(config, process.cwd());
29
29
  }).command(
30
30
  "watch",
31
31
  "Continuously watch and generate the routes for a project",
32
- async () => {
33
- watch.watch();
32
+ () => {
33
+ watch.watch(process.cwd());
34
34
  }
35
35
  ).help().argv;
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as yargs from 'yargs'\nimport { getConfig } from '@tanstack/router-generator'\nimport { generate } from './generate'\nimport { watch } from './watch'\n\nmain()\n\nexport function main() {\n yargs\n // @ts-expect-error\n .scriptName('tsr')\n .usage('$0 <cmd> [args]')\n .command('generate', 'Generate the routes for a project', async () => {\n const config = await getConfig()\n await generate(config)\n })\n .command(\n 'watch',\n 'Continuously watch and generate the routes for a project',\n async () => {\n watch()\n },\n )\n .help().argv\n}\n"],"names":["yargs","getConfig","generate","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAKA;AAEO,SAAS,OAAO;AAGlBA,mBAAA,WAAW,KAAK,EAChB,MAAM,iBAAiB,EACvB,QAAQ,YAAY,qCAAqC,YAAY;AAC9D,UAAA,SAAS,MAAMC,gBAAAA;AACrB,UAAMC,SAAAA,SAAS,MAAM;AAAA,EACtB,CAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,IACA,YAAY;AACJC,YAAAA;IACR;AAAA,EAAA,EAED,KAAO,EAAA;AACZ;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as yargs from 'yargs'\nimport { getConfig } from '@tanstack/router-generator'\nimport { generate } from './generate'\nimport { watch } from './watch'\n\nmain()\n\nexport function main() {\n yargs\n // @ts-expect-error\n .scriptName('tsr')\n .usage('$0 <cmd> [args]')\n .command('generate', 'Generate the routes for a project', async () => {\n const config = getConfig()\n await generate(config, process.cwd())\n })\n .command(\n 'watch',\n 'Continuously watch and generate the routes for a project',\n () => {\n watch(process.cwd())\n },\n )\n .help().argv\n}\n"],"names":["yargs","getConfig","generate","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAKA,KAAK;AAEE,SAAS,OAAO;AAGlBA,mBAAA,WAAW,KAAK,EAChB,MAAM,iBAAiB,EACvB,QAAQ,YAAY,qCAAqC,YAAY;AACpE,UAAM,SAASC,gBAAAA,UAAU;AACzB,UAAMC,kBAAS,QAAQ,QAAQ,IAAA,CAAK;AAAA,EACrC,CAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,IACA,MAAM;AACEC,kBAAA,QAAQ,KAAK;AAAA,IAAA;AAAA,EACrB,EAED,KAAO,EAAA;AACZ;;"}
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const chokidar = require("chokidar");
4
- const path = require("path");
5
4
  const routerGenerator = require("@tanstack/router-generator");
6
- async function watch() {
7
- const configWatcher = chokidar.watch(
8
- path.resolve(process.cwd(), "tsr.config.json")
9
- );
5
+ function watch(root) {
6
+ const configPath = routerGenerator.resolveConfigPath({
7
+ configDirectory: root
8
+ });
9
+ const configWatcher = chokidar.watch(configPath);
10
10
  let watcher = new chokidar.FSWatcher({});
11
- const generatorWatcher = async () => {
12
- const config = await routerGenerator.getConfig();
11
+ const generatorWatcher = () => {
12
+ const config = routerGenerator.getConfig();
13
13
  watcher.close();
14
14
  console.info(`TSR: Watching routes (${config.routesDirectory})...`);
15
15
  watcher = chokidar.watch(config.routesDirectory);
16
16
  watcher.on("ready", async () => {
17
17
  const handle = async () => {
18
18
  try {
19
- await routerGenerator.generator(config);
19
+ await routerGenerator.generator(config, root);
20
20
  } catch (err) {
21
21
  console.error(err);
22
22
  console.info();
@@ -24,7 +24,7 @@ async function watch() {
24
24
  };
25
25
  await handle();
26
26
  let timeout;
27
- const deduped = (file) => {
27
+ const deduped = (_file) => {
28
28
  if (timeout) {
29
29
  clearTimeout(timeout);
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"watch.cjs","sources":["../../src/watch.ts"],"sourcesContent":["import chokidar from 'chokidar'\nimport path from 'path'\nimport { getConfig, generator } from '@tanstack/router-generator'\n\nexport async function watch() {\n const configWatcher = chokidar.watch(\n path.resolve(process.cwd(), 'tsr.config.json'),\n )\n\n let watcher = new chokidar.FSWatcher({})\n\n const generatorWatcher = async () => {\n const config = await getConfig()\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(config)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n await handle()\n\n let timeout: ReturnType<typeof setTimeout>\n\n const deduped = (file: string) => {\n if (timeout) {\n clearTimeout(timeout)\n }\n\n timeout = setTimeout(handle, 10)\n }\n\n watcher.on('change', deduped)\n watcher.on('add', deduped)\n watcher.on('unlink', deduped)\n })\n }\n\n configWatcher.on('ready', generatorWatcher)\n configWatcher.on('change', generatorWatcher)\n}\n"],"names":["getConfig","generator"],"mappings":";;;;;AAIA,eAAsB,QAAQ;AAC5B,QAAM,gBAAgB,SAAS;AAAA,IAC7B,KAAK,QAAQ,QAAQ,IAAA,GAAO,iBAAiB;AAAA,EAAA;AAG/C,MAAI,UAAU,IAAI,SAAS,UAAU,CAAE,CAAA;AAEvC,QAAM,mBAAmB,YAAY;AAC7B,UAAA,SAAS,MAAMA,gBAAAA;AAErB,YAAQ,MAAM;AAEd,YAAQ,KAAK,yBAAyB,OAAO,eAAe,MAAM;AACxD,cAAA,SAAS,MAAM,OAAO,eAAe;AAEvC,YAAA,GAAG,SAAS,YAAY;AAC9B,YAAM,SAAS,YAAY;AACrB,YAAA;AACF,gBAAMC,gBAAAA,UAAU,MAAM;AAAA,iBACf,KAAK;AACZ,kBAAQ,MAAM,GAAG;AACjB,kBAAQ,KAAK;AAAA,QACf;AAAA,MAAA;AAGF,YAAM,OAAO;AAET,UAAA;AAEE,YAAA,UAAU,CAAC,SAAiB;AAChC,YAAI,SAAS;AACX,uBAAa,OAAO;AAAA,QACtB;AAEU,kBAAA,WAAW,QAAQ,EAAE;AAAA,MAAA;AAGzB,cAAA,GAAG,UAAU,OAAO;AACpB,cAAA,GAAG,OAAO,OAAO;AACjB,cAAA,GAAG,UAAU,OAAO;AAAA,IAAA,CAC7B;AAAA,EAAA;AAGW,gBAAA,GAAG,SAAS,gBAAgB;AAC5B,gBAAA,GAAG,UAAU,gBAAgB;AAC7C;;"}
1
+ {"version":3,"file":"watch.cjs","sources":["../../src/watch.ts"],"sourcesContent":["import chokidar from 'chokidar'\nimport {\n generator,\n getConfig,\n resolveConfigPath,\n} 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\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(config, root)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n await handle()\n\n let timeout: ReturnType<typeof setTimeout> | undefined\n\n const deduped = (_file: string) => {\n if (timeout) {\n clearTimeout(timeout)\n }\n\n timeout = setTimeout(handle, 10)\n }\n\n watcher.on('change', deduped)\n watcher.on('add', deduped)\n watcher.on('unlink', deduped)\n })\n }\n\n configWatcher.on('ready', generatorWatcher)\n configWatcher.on('change', generatorWatcher)\n}\n"],"names":["resolveConfigPath","getConfig","generator"],"mappings":";;;;AAOO,SAAS,MAAM,MAAc;AAClC,QAAM,aAAaA,gBAAAA,kBAAkB;AAAA,IACnC,iBAAiB;AAAA,EAAA,CAClB;AACK,QAAA,gBAAgB,SAAS,MAAM,UAAU;AAE/C,MAAI,UAAU,IAAI,SAAS,UAAU,CAAA,CAAE;AAEvC,QAAM,mBAAmB,MAAM;AAC7B,UAAM,SAASC,gBAAAA,UAAU;AAEzB,YAAQ,MAAM;AAEd,YAAQ,KAAK,yBAAyB,OAAO,eAAe,MAAM;AACxD,cAAA,SAAS,MAAM,OAAO,eAAe;AAEvC,YAAA,GAAG,SAAS,YAAY;AAC9B,YAAM,SAAS,YAAY;AACrB,YAAA;AACI,gBAAAC,gBAAA,UAAU,QAAQ,IAAI;AAAA,iBACrB,KAAK;AACZ,kBAAQ,MAAM,GAAG;AACjB,kBAAQ,KAAK;AAAA,QAAA;AAAA,MAEjB;AAEA,YAAM,OAAO;AAET,UAAA;AAEE,YAAA,UAAU,CAAC,UAAkB;AACjC,YAAI,SAAS;AACX,uBAAa,OAAO;AAAA,QAAA;AAGZ,kBAAA,WAAW,QAAQ,EAAE;AAAA,MACjC;AAEQ,cAAA,GAAG,UAAU,OAAO;AACpB,cAAA,GAAG,OAAO,OAAO;AACjB,cAAA,GAAG,UAAU,OAAO;AAAA,IAAA,CAC7B;AAAA,EACH;AAEc,gBAAA,GAAG,SAAS,gBAAgB;AAC5B,gBAAA,GAAG,UAAU,gBAAgB;AAC7C;;"}
@@ -1 +1 @@
1
- export declare function watch(): Promise<void>;
1
+ export declare function watch(root: string): void;
@@ -1,2 +1,2 @@
1
1
  import { Config } from '@tanstack/router-generator';
2
- export declare function generate(config: Config): Promise<void>;
2
+ export declare function generate(config: Config, root: string): Promise<void>;
@@ -1,7 +1,7 @@
1
1
  import { generator } from "@tanstack/router-generator";
2
- async function generate(config) {
2
+ async function generate(config, root) {
3
3
  try {
4
- await generator(config);
4
+ await generator(config, root);
5
5
  process.exit(0);
6
6
  } catch (err) {
7
7
  console.error(err);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sources":["../../src/generate.ts"],"sourcesContent":["import { Config, generator } from '@tanstack/router-generator'\n\nexport async function generate(config: Config) {\n try {\n await generator(config)\n process.exit(0)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n}\n"],"names":[],"mappings":";AAEA,eAAsB,SAAS,QAAgB;AACzC,MAAA;AACF,UAAM,UAAU,MAAM;AACtB,YAAQ,KAAK,CAAC;AAAA,WACP,KAAK;AACZ,YAAQ,MAAM,GAAG;AACjB,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;"}
1
+ {"version":3,"file":"generate.js","sources":["../../src/generate.ts"],"sourcesContent":["import { generator } from '@tanstack/router-generator'\nimport type { Config } from '@tanstack/router-generator'\n\nexport async function generate(config: Config, root: string) {\n try {\n await generator(config, root)\n process.exit(0)\n } catch (err) {\n console.error(err)\n process.exit(1)\n }\n}\n"],"names":[],"mappings":";AAGsB,eAAA,SAAS,QAAgB,MAAc;AACvD,MAAA;AACI,UAAA,UAAU,QAAQ,IAAI;AAC5B,YAAQ,KAAK,CAAC;AAAA,WACP,KAAK;AACZ,YAAQ,MAAM,GAAG;AACjB,YAAQ,KAAK,CAAC;AAAA,EAAA;AAElB;"}
package/dist/esm/index.js CHANGED
@@ -5,13 +5,13 @@ import { watch } from "./watch.js";
5
5
  main();
6
6
  function main() {
7
7
  yargs.scriptName("tsr").usage("$0 <cmd> [args]").command("generate", "Generate the routes for a project", async () => {
8
- const config = await getConfig();
9
- await generate(config);
8
+ const config = getConfig();
9
+ await generate(config, process.cwd());
10
10
  }).command(
11
11
  "watch",
12
12
  "Continuously watch and generate the routes for a project",
13
- async () => {
14
- watch();
13
+ () => {
14
+ watch(process.cwd());
15
15
  }
16
16
  ).help().argv;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import * as yargs from 'yargs'\nimport { getConfig } from '@tanstack/router-generator'\nimport { generate } from './generate'\nimport { watch } from './watch'\n\nmain()\n\nexport function main() {\n yargs\n // @ts-expect-error\n .scriptName('tsr')\n .usage('$0 <cmd> [args]')\n .command('generate', 'Generate the routes for a project', async () => {\n const config = await getConfig()\n await generate(config)\n })\n .command(\n 'watch',\n 'Continuously watch and generate the routes for a project',\n async () => {\n watch()\n },\n )\n .help().argv\n}\n"],"names":[],"mappings":";;;;AAKA;AAEO,SAAS,OAAO;AAGlB,QAAA,WAAW,KAAK,EAChB,MAAM,iBAAiB,EACvB,QAAQ,YAAY,qCAAqC,YAAY;AAC9D,UAAA,SAAS,MAAM;AACrB,UAAM,SAAS,MAAM;AAAA,EACtB,CAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,IACA,YAAY;AACJ;IACR;AAAA,EAAA,EAED,KAAO,EAAA;AACZ;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import * as yargs from 'yargs'\nimport { getConfig } from '@tanstack/router-generator'\nimport { generate } from './generate'\nimport { watch } from './watch'\n\nmain()\n\nexport function main() {\n yargs\n // @ts-expect-error\n .scriptName('tsr')\n .usage('$0 <cmd> [args]')\n .command('generate', 'Generate the routes for a project', async () => {\n const config = getConfig()\n await generate(config, process.cwd())\n })\n .command(\n 'watch',\n 'Continuously watch and generate the routes for a project',\n () => {\n watch(process.cwd())\n },\n )\n .help().argv\n}\n"],"names":[],"mappings":";;;;AAKA,KAAK;AAEE,SAAS,OAAO;AAGlB,QAAA,WAAW,KAAK,EAChB,MAAM,iBAAiB,EACvB,QAAQ,YAAY,qCAAqC,YAAY;AACpE,UAAM,SAAS,UAAU;AACzB,UAAM,SAAS,QAAQ,QAAQ,IAAA,CAAK;AAAA,EACrC,CAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,IACA,MAAM;AACE,YAAA,QAAQ,KAAK;AAAA,IAAA;AAAA,EACrB,EAED,KAAO,EAAA;AACZ;"}
@@ -1 +1 @@
1
- export declare function watch(): Promise<void>;
1
+ export declare function watch(root: string): void;
package/dist/esm/watch.js CHANGED
@@ -1,20 +1,20 @@
1
1
  import chokidar from "chokidar";
2
- import path from "path";
3
- import { getConfig, generator } from "@tanstack/router-generator";
4
- async function watch() {
5
- const configWatcher = chokidar.watch(
6
- path.resolve(process.cwd(), "tsr.config.json")
7
- );
2
+ import { resolveConfigPath, getConfig, generator } from "@tanstack/router-generator";
3
+ function watch(root) {
4
+ const configPath = resolveConfigPath({
5
+ configDirectory: root
6
+ });
7
+ const configWatcher = chokidar.watch(configPath);
8
8
  let watcher = new chokidar.FSWatcher({});
9
- const generatorWatcher = async () => {
10
- const config = await getConfig();
9
+ const generatorWatcher = () => {
10
+ const config = getConfig();
11
11
  watcher.close();
12
12
  console.info(`TSR: Watching routes (${config.routesDirectory})...`);
13
13
  watcher = chokidar.watch(config.routesDirectory);
14
14
  watcher.on("ready", async () => {
15
15
  const handle = async () => {
16
16
  try {
17
- await generator(config);
17
+ await generator(config, root);
18
18
  } catch (err) {
19
19
  console.error(err);
20
20
  console.info();
@@ -22,7 +22,7 @@ async function watch() {
22
22
  };
23
23
  await handle();
24
24
  let timeout;
25
- const deduped = (file) => {
25
+ const deduped = (_file) => {
26
26
  if (timeout) {
27
27
  clearTimeout(timeout);
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sources":["../../src/watch.ts"],"sourcesContent":["import chokidar from 'chokidar'\nimport path from 'path'\nimport { getConfig, generator } from '@tanstack/router-generator'\n\nexport async function watch() {\n const configWatcher = chokidar.watch(\n path.resolve(process.cwd(), 'tsr.config.json'),\n )\n\n let watcher = new chokidar.FSWatcher({})\n\n const generatorWatcher = async () => {\n const config = await getConfig()\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(config)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n await handle()\n\n let timeout: ReturnType<typeof setTimeout>\n\n const deduped = (file: string) => {\n if (timeout) {\n clearTimeout(timeout)\n }\n\n timeout = setTimeout(handle, 10)\n }\n\n watcher.on('change', deduped)\n watcher.on('add', deduped)\n watcher.on('unlink', deduped)\n })\n }\n\n configWatcher.on('ready', generatorWatcher)\n configWatcher.on('change', generatorWatcher)\n}\n"],"names":[],"mappings":";;;AAIA,eAAsB,QAAQ;AAC5B,QAAM,gBAAgB,SAAS;AAAA,IAC7B,KAAK,QAAQ,QAAQ,IAAA,GAAO,iBAAiB;AAAA,EAAA;AAG/C,MAAI,UAAU,IAAI,SAAS,UAAU,CAAE,CAAA;AAEvC,QAAM,mBAAmB,YAAY;AAC7B,UAAA,SAAS,MAAM;AAErB,YAAQ,MAAM;AAEd,YAAQ,KAAK,yBAAyB,OAAO,eAAe,MAAM;AACxD,cAAA,SAAS,MAAM,OAAO,eAAe;AAEvC,YAAA,GAAG,SAAS,YAAY;AAC9B,YAAM,SAAS,YAAY;AACrB,YAAA;AACF,gBAAM,UAAU,MAAM;AAAA,iBACf,KAAK;AACZ,kBAAQ,MAAM,GAAG;AACjB,kBAAQ,KAAK;AAAA,QACf;AAAA,MAAA;AAGF,YAAM,OAAO;AAET,UAAA;AAEE,YAAA,UAAU,CAAC,SAAiB;AAChC,YAAI,SAAS;AACX,uBAAa,OAAO;AAAA,QACtB;AAEU,kBAAA,WAAW,QAAQ,EAAE;AAAA,MAAA;AAGzB,cAAA,GAAG,UAAU,OAAO;AACpB,cAAA,GAAG,OAAO,OAAO;AACjB,cAAA,GAAG,UAAU,OAAO;AAAA,IAAA,CAC7B;AAAA,EAAA;AAGW,gBAAA,GAAG,SAAS,gBAAgB;AAC5B,gBAAA,GAAG,UAAU,gBAAgB;AAC7C;"}
1
+ {"version":3,"file":"watch.js","sources":["../../src/watch.ts"],"sourcesContent":["import chokidar from 'chokidar'\nimport {\n generator,\n getConfig,\n resolveConfigPath,\n} 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\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(config, root)\n } catch (err) {\n console.error(err)\n console.info()\n }\n }\n\n await handle()\n\n let timeout: ReturnType<typeof setTimeout> | undefined\n\n const deduped = (_file: string) => {\n if (timeout) {\n clearTimeout(timeout)\n }\n\n timeout = setTimeout(handle, 10)\n }\n\n watcher.on('change', deduped)\n watcher.on('add', deduped)\n watcher.on('unlink', deduped)\n })\n }\n\n configWatcher.on('ready', generatorWatcher)\n configWatcher.on('change', generatorWatcher)\n}\n"],"names":[],"mappings":";;AAOO,SAAS,MAAM,MAAc;AAClC,QAAM,aAAa,kBAAkB;AAAA,IACnC,iBAAiB;AAAA,EAAA,CAClB;AACK,QAAA,gBAAgB,SAAS,MAAM,UAAU;AAE/C,MAAI,UAAU,IAAI,SAAS,UAAU,CAAA,CAAE;AAEvC,QAAM,mBAAmB,MAAM;AAC7B,UAAM,SAAS,UAAU;AAEzB,YAAQ,MAAM;AAEd,YAAQ,KAAK,yBAAyB,OAAO,eAAe,MAAM;AACxD,cAAA,SAAS,MAAM,OAAO,eAAe;AAEvC,YAAA,GAAG,SAAS,YAAY;AAC9B,YAAM,SAAS,YAAY;AACrB,YAAA;AACI,gBAAA,UAAU,QAAQ,IAAI;AAAA,iBACrB,KAAK;AACZ,kBAAQ,MAAM,GAAG;AACjB,kBAAQ,KAAK;AAAA,QAAA;AAAA,MAEjB;AAEA,YAAM,OAAO;AAET,UAAA;AAEE,YAAA,UAAU,CAAC,UAAkB;AACjC,YAAI,SAAS;AACX,uBAAa,OAAO;AAAA,QAAA;AAGZ,kBAAA,WAAW,QAAQ,EAAE;AAAA,MACjC;AAEQ,cAAA,GAAG,UAAU,OAAO;AACpB,cAAA,GAAG,OAAO,OAAO;AACjB,cAAA,GAAG,UAAU,OAAO;AAAA,IAAA,CAC7B;AAAA,EACH;AAEc,gBAAA,GAAG,SAAS,gBAAgB;AAC5B,gBAAA,GAAG,UAAU,gBAAgB;AAC7C;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/router-cli",
3
- "version": "1.19.6",
4
- "description": "",
3
+ "version": "1.20.3-alpha.1",
4
+ "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -14,10 +14,17 @@
14
14
  "type": "github",
15
15
  "url": "https://github.com/sponsors/tannerlinsley"
16
16
  },
17
- "bin": {
18
- "tsr": "bin/tsr.cjs"
19
- },
17
+ "keywords": [
18
+ "react",
19
+ "location",
20
+ "router",
21
+ "routing",
22
+ "async",
23
+ "async router",
24
+ "typescript"
25
+ ],
20
26
  "type": "module",
27
+ "types": "dist/esm/index.d.ts",
21
28
  "main": "dist/cjs/index.cjs",
22
29
  "module": "dist/esm/index.js",
23
30
  "exports": {
@@ -33,36 +40,25 @@
33
40
  },
34
41
  "./package.json": "./package.json"
35
42
  },
36
- "sideEffects": false,
37
- "keywords": [
38
- "react",
39
- "location",
40
- "router",
41
- "routing",
42
- "async",
43
- "async router",
44
- "typescript"
45
- ],
46
- "engines": {
47
- "node": ">=12"
43
+ "bin": {
44
+ "tsr": "bin/tsr.cjs"
48
45
  },
46
+ "sideEffects": false,
49
47
  "files": [
50
48
  "dist",
51
49
  "src/**",
52
50
  "bin/**"
53
51
  ],
52
+ "engines": {
53
+ "node": ">=12"
54
+ },
54
55
  "dependencies": {
55
- "chokidar": "^3.5.3",
56
- "yargs": "^17.6.2",
57
- "@tanstack/router-generator": "1.19.6"
56
+ "chokidar": "^3.6.0",
57
+ "yargs": "^17.7.2",
58
+ "@tanstack/router-generator": "^1.20.3-alpha.1"
58
59
  },
59
60
  "devDependencies": {
60
- "@types/yargs": "^17.0.15"
61
+ "@types/yargs": "^17.0.33"
61
62
  },
62
- "scripts": {
63
- "clean": "rimraf ./dist && rimraf ./coverage",
64
- "test:types": "tsc",
65
- "test:build": "publint --strict",
66
- "build": "vite build"
67
- }
63
+ "scripts": {}
68
64
  }
package/src/generate.ts CHANGED
@@ -1,8 +1,9 @@
1
- import { Config, generator } from '@tanstack/router-generator'
1
+ import { generator } from '@tanstack/router-generator'
2
+ import type { Config } from '@tanstack/router-generator'
2
3
 
3
- export async function generate(config: Config) {
4
+ export async function generate(config: Config, root: string) {
4
5
  try {
5
- await generator(config)
6
+ await generator(config, root)
6
7
  process.exit(0)
7
8
  } catch (err) {
8
9
  console.error(err)
package/src/index.ts CHANGED
@@ -11,14 +11,14 @@ export function main() {
11
11
  .scriptName('tsr')
12
12
  .usage('$0 <cmd> [args]')
13
13
  .command('generate', 'Generate the routes for a project', async () => {
14
- const config = await getConfig()
15
- await generate(config)
14
+ const config = getConfig()
15
+ await generate(config, process.cwd())
16
16
  })
17
17
  .command(
18
18
  'watch',
19
19
  'Continuously watch and generate the routes for a project',
20
- async () => {
21
- watch()
20
+ () => {
21
+ watch(process.cwd())
22
22
  },
23
23
  )
24
24
  .help().argv
package/src/watch.ts CHANGED
@@ -1,16 +1,20 @@
1
1
  import chokidar from 'chokidar'
2
- import path from 'path'
3
- import { getConfig, generator } from '@tanstack/router-generator'
4
-
5
- export async function watch() {
6
- const configWatcher = chokidar.watch(
7
- path.resolve(process.cwd(), 'tsr.config.json'),
8
- )
2
+ import {
3
+ generator,
4
+ getConfig,
5
+ resolveConfigPath,
6
+ } from '@tanstack/router-generator'
7
+
8
+ export function watch(root: string) {
9
+ const configPath = resolveConfigPath({
10
+ configDirectory: root,
11
+ })
12
+ const configWatcher = chokidar.watch(configPath)
9
13
 
10
14
  let watcher = new chokidar.FSWatcher({})
11
15
 
12
- const generatorWatcher = async () => {
13
- const config = await getConfig()
16
+ const generatorWatcher = () => {
17
+ const config = getConfig()
14
18
 
15
19
  watcher.close()
16
20
 
@@ -20,7 +24,7 @@ export async function watch() {
20
24
  watcher.on('ready', async () => {
21
25
  const handle = async () => {
22
26
  try {
23
- await generator(config)
27
+ await generator(config, root)
24
28
  } catch (err) {
25
29
  console.error(err)
26
30
  console.info()
@@ -29,9 +33,9 @@ export async function watch() {
29
33
 
30
34
  await handle()
31
35
 
32
- let timeout: ReturnType<typeof setTimeout>
36
+ let timeout: ReturnType<typeof setTimeout> | undefined
33
37
 
34
- const deduped = (file: string) => {
38
+ const deduped = (_file: string) => {
35
39
  if (timeout) {
36
40
  clearTimeout(timeout)
37
41
  }