Skip to content

Commit 7547978

Browse files
committed
Add -o option to set output file path
1 parent d2d6f55 commit 7547978

File tree

3 files changed

+40
-12
lines changed

3 files changed

+40
-12
lines changed

README.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# next-routes-list
2+
23
Easy generate all available routes in Next.js .
34

45
## Support
6+
57
- [x] App routes
68
- [x] Page routes
79

810
## Install
11+
912
```bash
1013
npm install --save-dev next-routes-list@latest
1114
```
@@ -15,14 +18,17 @@ npm install --save-dev next-routes-list@latest
1518
### 1. Run script
1619

1720
add script to `package.json`:
21+
1822
```json
1923
{
2024
"script": {
2125
"generate-next-routes-list": "generate-next-routes-list"
2226
}
2327
}
2428
```
29+
2530
If you use `src` directory:
31+
2632
```json
2733
{
2834
"script": {
@@ -32,15 +38,17 @@ If you use `src` directory:
3238
```
3339

3440
then run npm script:
41+
3542
```shell
3643
npm run generate-next-routes-list
3744
```
3845

3946
### 2. Import routes
47+
4048
```ts
41-
import { routes } from 'next-routes-list'
49+
import { routes } from "next-routes-list";
4250

43-
console.log(routes)
51+
console.log(routes);
4452
/**
4553
[
4654
'/',
@@ -51,8 +59,16 @@ console.log(routes)
5159
*/
5260
```
5361

62+
## Options
63+
64+
| Option | Type | Description | Example |
65+
| ------ | ------ | ------------------------------- | -------------------------------------------- |
66+
| `-o` | string | set the output routes file path | `npx generate-next-routes-list -o routes.ts` |
67+
5468
## Example
69+
5570
next projct is [here](./test/next-project/), generate result is: [here](./test/routes.js).
5671

5772
## Contribute
73+
5874
feel free to contribute anything or report any issues.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "next-routes-list",
3-
"version": "1.1.5",
3+
"version": "1.2.0",
44
"description": "generate next all routes list",
55
"keywords": [
66
"next",
@@ -25,7 +25,7 @@
2525
"scripts": {
2626
"build": "rm -rf dist && tsc",
2727
"prepublishOnly": "npm run build",
28-
"test": "npm run build && cd test/next-project && node ../../dist/generate.js && node -e 'JSON.stringify(require(\"../routes.js\").routes)===JSON.stringify(require(\"../../dist/routes.js\").routes) ? console.log(\"app route test succeeded\") : throw new Error(\"app route test failed\")'"
28+
"test": "npm run build && cd test/next-project && node ../../dist/generate.js && node -e \"if (JSON.stringify(require('../routes.js').routes) === JSON.stringify(require('../../dist/routes.js').routes)) { console.log('Test succeeded'); } else { throw new Error('Test failed'); }\""
2929
},
3030
"dependencies": {
3131
"list-paths": "1.0.2"

src/generate.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,31 @@ const routes = getNextRoutes();
66

77
// write to file
88
const templatePath = `${process.argv[1]!.replace("/.bin", "")
9-
.replace(/\/next-routes-list\/.*/g, "/next-routes-list")
10-
.replace(
11-
/\/generate-next-routes-list\/*.*/g,
12-
"/next-routes-list"
13-
)}/dist/routes.js`;
9+
.replace(/\/next-routes-list\/.*/g, "/next-routes-list")
10+
.replace(
11+
/\/generate-next-routes-list\/*.*/g,
12+
"/next-routes-list"
13+
)}/dist/routes.js`;
1414

1515
const templateString = fs.readFileSync(templatePath, "utf-8");
1616

1717
const newTemplateString = templateString.replace(
18-
"const routes = [];",
19-
`const routes = ${JSON.stringify(routes)};`
18+
"const routes = [];",
19+
`const routes = ${JSON.stringify(routes)};`
2020
);
2121

2222
fs.writeFileSync(templatePath, newTemplateString);
2323

24-
console.log("Routes list generated successfully!");
24+
console.log("✅ Routes list generated successfully!");
25+
26+
// -o options
27+
if (process.argv[2] === "-o") {
28+
const outputPath = process.argv[3];
29+
if (outputPath) {
30+
fs.writeFileSync(
31+
outputPath,
32+
`export const routes = ${JSON.stringify(routes)};`
33+
);
34+
console.log(`✅ Routes list saved to ${outputPath}`);
35+
}
36+
}

0 commit comments

Comments
 (0)