nextui/apps/docs/next-redirect.js
2022-12-25 12:15:12 -03:00

80 lines
1.9 KiB
JavaScript

const shell = require('shelljs');
const path = require('path');
const rootDir = path.join(__dirname, '.');
const contentDir = path.join(rootDir, 'content');
const docsDir = path.join(contentDir, 'docs');
const componentsDocsDir = path.join(docsDir, 'components');
const getComponentsName = () => {
const names = shell
.ls('-R', componentsDocsDir)
.map((file) => path.join(process.cwd(), componentsDocsDir, file))
.filter((file) => file.endsWith('.mdx'))
.map((file) => path.basename(file, '.mdx'));
return names;
};
const getComponentsRoute = (names = []) => {
return names.map((name) => {
return {
source: `/${name}`,
destination: `/docs/components/${name}`,
permanent: true
};
});
};
async function redirect() {
const componentsName = getComponentsName();
return [
...getComponentsRoute(componentsName),
{
source: '/docs',
destination: '/docs/guide/getting-started',
permanent: true
},
{
source: '/docs/getting-started',
destination: '/docs/guide/getting-started',
permanent: true
},
{
source: '/guide',
destination: '/docs/guide/getting-started',
permanent: true
},
{
source: '/learn',
destination: '/docs/guide/getting-started',
permanent: true
},
{
source: '/theme',
destination: '/docs/theme/default-theme',
permanent: true
},
{
source: '/docs/theme',
destination: '/docs/theme/default-theme',
permanent: true
},
{
source: '/components/:path*',
permanent: true,
destination: '/docs/components/:path*'
},
{
source: '/docs/components',
destination: '/docs/components/button',
permanent: true
},
{
source: '/components',
destination: '/docs/components/button',
permanent: true
}
];
}
module.exports = redirect;