UNPKG

gatsby-plugin-nginx-redirect

Version:
49 lines (41 loc) 1.18 kB
"use strict"; exports.__esModule = true; exports.onPostBuild = onPostBuild; var _nginxConf = require("nginx-conf"); var _fsExtra = require("fs-extra"); var _lodash = require("lodash"); function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function onPostBuild({ store, reporter }, { outputConfigFile, inputConfigFile, whereToIncludeRedirects = "server" }) { const { redirects } = store.getState(); await (0, _fsExtra.remove)(outputConfigFile); return new Promise(resolve => { _nginxConf.NginxConfFile.create(inputConfigFile, async function (err, conf) { if (err) { console.log(err); return; } conf.die(inputConfigFile); conf.flush(); await sleep(500); redirects.forEach(redirect => { (0, _lodash.get)(conf.nginx, whereToIncludeRedirects, conf.nginx)._add("rewrite", `^${redirect.fromPath}\\/?$ ${redirect.toPath} ${redirect.isPermanent ? "permanent" : "redirect"}`); }); conf.live(outputConfigFile); conf.flush(); await sleep(500); resolve(); }); reporter.warn(`Added redirects to ${outputConfigFile}`); }); }