Skip to content

Commit d8f1c7a

Browse files
committed
docs: add doc
1 parent a572202 commit d8f1c7a

File tree

19 files changed

+494
-192
lines changed

19 files changed

+494
-192
lines changed

packages/core/src/node/route/RouteService.test.ts

Lines changed: 72 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ describe('RouteService', async () => {
4141
"version": "",
4242
},
4343
},
44+
"/guide/__e" => RoutePage {
45+
"routeMeta": {
46+
"absolutePath": "<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx",
47+
"lang": "",
48+
"pageName": "guide___e",
49+
"relativePath": "guide/__e.mdx",
50+
"routePath": "/guide/__e",
51+
"version": "",
52+
},
53+
},
4454
"/guide/b" => RoutePage {
4555
"routeMeta": {
4656
"absolutePath": "<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx",
@@ -89,29 +99,34 @@ describe('RouteService', async () => {
8999
import React from 'react';
90100
import { lazyWithPreload } from "react-lazy-with-preload";
91101
const Route0 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/a.mdx'))
92-
const Route1 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx'))
93-
const Route2 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx'))
94-
const Route3 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md'))
95-
const Route4 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx'))
102+
const Route1 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx'))
103+
const Route2 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx'))
104+
const Route3 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx'))
105+
const Route4 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md'))
106+
const Route5 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx'))
96107
export const routes = [
97108
{ path: '/a', element: React.createElement(Route0), filePath: 'a.mdx', preload: async () => {
98109
await Route0.preload();
99110
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/a.mdx");
100111
}, lang: '', version: '' },
101-
{ path: '/guide/b', element: React.createElement(Route1), filePath: 'guide/b.mdx', preload: async () => {
112+
{ path: '/guide/__e', element: React.createElement(Route1), filePath: 'guide/__e.mdx', preload: async () => {
102113
await Route1.preload();
103-
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx");
114+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx");
104115
}, lang: '', version: '' },
105-
{ path: '/guide/c', element: React.createElement(Route2), filePath: 'guide/c.tsx', preload: async () => {
116+
{ path: '/guide/b', element: React.createElement(Route2), filePath: 'guide/b.mdx', preload: async () => {
106117
await Route2.preload();
107-
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx");
118+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx");
108119
}, lang: '', version: '' },
109-
{ path: '/guide/', element: React.createElement(Route3), filePath: 'guide/index.md', preload: async () => {
120+
{ path: '/guide/c', element: React.createElement(Route3), filePath: 'guide/c.tsx', preload: async () => {
110121
await Route3.preload();
111-
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md");
122+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx");
112123
}, lang: '', version: '' },
113-
{ path: '/', element: React.createElement(Route4), filePath: 'index.mdx', preload: async () => {
124+
{ path: '/guide/', element: React.createElement(Route4), filePath: 'guide/index.md', preload: async () => {
114125
await Route4.preload();
126+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md");
127+
}, lang: '', version: '' },
128+
{ path: '/', element: React.createElement(Route5), filePath: 'index.mdx', preload: async () => {
129+
await Route5.preload();
115130
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx");
116131
}, lang: '', version: '' }
117132
];
@@ -137,6 +152,16 @@ describe('RouteService', async () => {
137152
"version": "",
138153
},
139154
},
155+
"/guide/__e" => RoutePage {
156+
"routeMeta": {
157+
"absolutePath": "<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx",
158+
"lang": "",
159+
"pageName": "guide___e",
160+
"relativePath": "guide/__e.mdx",
161+
"routePath": "/guide/__e",
162+
"version": "",
163+
},
164+
},
140165
"/guide/c" => RoutePage {
141166
"routeMeta": {
142167
"absolutePath": "<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx",
@@ -174,24 +199,29 @@ describe('RouteService', async () => {
174199
import React from 'react';
175200
import { lazyWithPreload } from "react-lazy-with-preload";
176201
const Route0 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/a.mdx'))
177-
const Route1 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx'))
178-
const Route2 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md'))
179-
const Route3 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx'))
202+
const Route1 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx'))
203+
const Route2 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx'))
204+
const Route3 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md'))
205+
const Route4 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx'))
180206
export const routes = [
181207
{ path: '/a', element: React.createElement(Route0), filePath: 'a.mdx', preload: async () => {
182208
await Route0.preload();
183209
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/a.mdx");
184210
}, lang: '', version: '' },
185-
{ path: '/guide/c', element: React.createElement(Route1), filePath: 'guide/c.tsx', preload: async () => {
211+
{ path: '/guide/__e', element: React.createElement(Route1), filePath: 'guide/__e.mdx', preload: async () => {
186212
await Route1.preload();
187-
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx");
213+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx");
188214
}, lang: '', version: '' },
189-
{ path: '/guide/', element: React.createElement(Route2), filePath: 'guide/index.md', preload: async () => {
215+
{ path: '/guide/c', element: React.createElement(Route2), filePath: 'guide/c.tsx', preload: async () => {
190216
await Route2.preload();
191-
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md");
217+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/c.tsx");
192218
}, lang: '', version: '' },
193-
{ path: '/', element: React.createElement(Route3), filePath: 'index.mdx', preload: async () => {
219+
{ path: '/guide/', element: React.createElement(Route3), filePath: 'guide/index.md', preload: async () => {
194220
await Route3.preload();
221+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md");
222+
}, lang: '', version: '' },
223+
{ path: '/', element: React.createElement(Route4), filePath: 'index.mdx', preload: async () => {
224+
await Route4.preload();
195225
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx");
196226
}, lang: '', version: '' }
197227
];
@@ -217,6 +247,16 @@ describe('RouteService', async () => {
217247
"version": "",
218248
},
219249
},
250+
"/guide/__e" => RoutePage {
251+
"routeMeta": {
252+
"absolutePath": "<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx",
253+
"lang": "",
254+
"pageName": "guide___e",
255+
"relativePath": "guide/__e.mdx",
256+
"routePath": "/guide/__e",
257+
"version": "",
258+
},
259+
},
220260
"/guide/b" => RoutePage {
221261
"routeMeta": {
222262
"absolutePath": "<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx",
@@ -254,24 +294,29 @@ describe('RouteService', async () => {
254294
import React from 'react';
255295
import { lazyWithPreload } from "react-lazy-with-preload";
256296
const Route0 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/a.mdx'))
257-
const Route1 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx'))
258-
const Route2 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md'))
259-
const Route3 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx'))
297+
const Route1 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx'))
298+
const Route2 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx'))
299+
const Route3 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md'))
300+
const Route4 = lazyWithPreload(() => import('<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx'))
260301
export const routes = [
261302
{ path: '/a', element: React.createElement(Route0), filePath: 'a.mdx', preload: async () => {
262303
await Route0.preload();
263304
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/a.mdx");
264305
}, lang: '', version: '' },
265-
{ path: '/guide/b', element: React.createElement(Route1), filePath: 'guide/b.mdx', preload: async () => {
306+
{ path: '/guide/__e', element: React.createElement(Route1), filePath: 'guide/__e.mdx', preload: async () => {
266307
await Route1.preload();
267-
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx");
308+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/__e.mdx");
268309
}, lang: '', version: '' },
269-
{ path: '/guide/', element: React.createElement(Route2), filePath: 'guide/index.md', preload: async () => {
310+
{ path: '/guide/b', element: React.createElement(Route2), filePath: 'guide/b.mdx', preload: async () => {
270311
await Route2.preload();
271-
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md");
312+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/b.mdx");
272313
}, lang: '', version: '' },
273-
{ path: '/', element: React.createElement(Route3), filePath: 'index.mdx', preload: async () => {
314+
{ path: '/guide/', element: React.createElement(Route3), filePath: 'guide/index.md', preload: async () => {
274315
await Route3.preload();
316+
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/guide/index.md");
317+
}, lang: '', version: '' },
318+
{ path: '/', element: React.createElement(Route4), filePath: 'index.mdx', preload: async () => {
319+
await Route4.preload();
275320
return import("<ROOT>/packages/core/src/node/route/fixtures/basic/index.mdx");
276321
}, lang: '', version: '' }
277322
];

packages/core/src/node/route/RouteService.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,21 @@ export class RouteService {
4545

4646
#defaultLang: string;
4747

48-
#defaultVersion: string = '';
48+
#defaultVersion: string;
4949

50-
#extensions: string[] = [];
50+
#extensions: string[];
5151

52-
#langs: string[] = [];
52+
#langs: string[];
5353

54-
#versions: string[] = [];
54+
#versions: string[];
5555

56-
#include: string[] = [];
56+
#include: string[];
5757

58-
#exclude: string[] = [];
58+
#exclude: string[];
5959

60-
#tempDir: string = '';
60+
#excludeConvention: string[];
61+
62+
#tempDir: string;
6163

6264
#pluginDriver: PluginDriver;
6365

@@ -92,7 +94,8 @@ export class RouteService {
9294
this.#scanDir = scanDir;
9395
this.#extensions = routeOptions.extensions || DEFAULT_PAGE_EXTENSIONS;
9496
this.#include = routeOptions.include || [];
95-
this.#exclude = routeOptions.exclude || [];
97+
this.#exclude = routeOptions.exclude || []; // partial mdx components and code samples, e.g: _d.mdx
98+
this.#excludeConvention = routeOptions.excludeConvention || ['**/_[^_]*']; // partial mdx components and code samples, e.g: _d.mdx
9699
this.#defaultLang = userConfig?.lang || '';
97100
this.#langs = (
98101
userConfig?.locales ??
@@ -105,6 +108,9 @@ export class RouteService {
105108
if (userConfig.multiVersion) {
106109
this.#defaultVersion = userConfig.multiVersion.default || '';
107110
this.#versions = userConfig.multiVersion.versions || [];
111+
} else {
112+
this.#defaultVersion = '';
113+
this.#versions = [];
108114
}
109115
}
110116

@@ -125,12 +131,12 @@ export class RouteService {
125131
onlyFiles: true,
126132
ignore: [
127133
...this.#exclude,
134+
...this.#excludeConvention,
128135
'**/node_modules/**',
129136
'**/.eslintrc.js',
130137
'**/.nx/**',
131-
// partial mdx components and code samples, e.g: _d.mdx
132-
'**/_*',
133138
`./${PUBLIC_DIR}/**`,
139+
'**/*.d.ts',
134140
],
135141
})
136142
).sort();
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# \_\_e
2+
3+
API like `__dirname` is included

0 commit comments

Comments
 (0)