@whatwedo/gatsby-adapter-gitlab-pages
Version:
A Gatsby adapter for deploying sites to GitLab Pages with support for redirects.
30 lines (24 loc) • 1.02 kB
JavaScript
const fs = require('fs');
const path = require('path');
const createAdapterGitlabPages = adapterOptions => {
return {
name: 'gatsby-adapter-gitlab-pages',
async adapt({
routesManifest,
reporter,
}) {
const redirects = routesManifest.filter(route => route.type === 'redirect') || [];
const redirectsContent = redirects
.map(redirect => {
const status = redirect.status === 301 ? '301' : '302';
return `${redirect.path} ${redirect.toPath} ${status}`;
})
.join('\n');
const publicPath = path.join(process.cwd(), 'public');
const redirectsPath = path.join(publicPath, '_redirects');
fs.writeFileSync(redirectsPath, redirectsContent, 'utf8');
reporter.info(`Generated _redirects file at ${redirectsPath} with ${redirects.length} redirects.`);
},
};
};
module.exports = createAdapterGitlabPages