refactor(v2): determine all available routes/url (#1264)

* refactor(v2): determine all available routes/url

* nits

* test(v2): routes snapshot

* sort for consistent snapshot test due to async ordering
This commit is contained in:
Endilie Yacop Sucipto 2019-03-07 02:51:16 +08:00 committed by Yangshun Tay
parent c73da00252
commit 2ad7413dd7
5 changed files with 114 additions and 41 deletions

View file

@ -7,7 +7,7 @@
const {normalizeUrl} = require('./utils');
async function genRoutesConfig({
async function loadRoutes({
siteConfig = {},
docsMetadatas = {},
pagesMetadatas = [],
@ -23,10 +23,18 @@ async function genRoutesConfig({
`import NotFound from '@theme/NotFound';`,
];
const routesPaths = [];
const addRoutesPath = permalink => {
if (permalink && !/:|\*/.test(permalink)) {
routesPaths.push(permalink);
}
};
// Docs.
const {docsUrl, baseUrl} = siteConfig;
function genDocsRoute(metadata) {
const {permalink, source} = metadata;
addRoutesPath(permalink);
return `
{
path: '${permalink}',
@ -59,6 +67,7 @@ async function genRoutesConfig({
// Pages.
function genPagesRoute(metadata) {
const {permalink, source} = metadata;
addRoutesPath(permalink);
return `
{
path: '${permalink}',
@ -86,6 +95,7 @@ async function genRoutesConfig({
const routes = pluginRouteConfigs.map(pluginRouteConfig => {
const {path, component, metadata, modules} = pluginRouteConfig;
addRoutesPath(path);
return `
{
path: '${path}',
@ -117,7 +127,7 @@ ${modules
}`;
});
return `
const routesConfig = `
${imports.join('\n')}
const routes = [
@ -131,6 +141,8 @@ const routes = [
];
export default routes;\n`;
return {routesConfig, routesPaths};
}
module.exports = genRoutesConfig;
module.exports = loadRoutes;