gatsby-i18n
Version:
Gatsby plugin that provides i18n support
65 lines (56 loc) • 1.91 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _objectSpread6 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
var _path = _interopRequireDefault(require("path"));
var onCreatePage = function onCreatePage(_ref, pluginOptions) {
var page = _ref.page,
actions = _ref.actions;
var createPage = actions.createPage,
deletePage = actions.deletePage;
var fallbackLng = pluginOptions.fallbackLng,
availableLngs = pluginOptions.availableLngs,
siteUrl = pluginOptions.siteUrl,
debug = pluginOptions.debug;
if (page.path.includes('dev-404')) {
return Promise.resolve();
}
return new Promise(function (resolve) {
var redirect = _path["default"].resolve('./.cache/@igorko/redirect.js');
var redirectPage = (0, _objectSpread6["default"])({}, page, {
component: redirect,
context: (0, _objectSpread6["default"])({}, page.context, {
availableLngs: availableLngs,
fallbackLng: fallbackLng,
debug: debug,
lng: null,
routed: false,
redirectPage: page.path,
siteUrl: siteUrl
})
});
deletePage(page);
createPage(redirectPage);
availableLngs.forEach(function (lng) {
var localePage = (0, _objectSpread6["default"])({}, page, {
path: "/".concat(lng).concat(page.path),
context: (0, _objectSpread6["default"])({}, page.context, {
availableLngs: availableLngs,
fallbackLng: fallbackLng,
lng: lng,
routed: true,
originalPath: page.path,
siteUrl: siteUrl,
debug: debug
})
});
createPage(localePage);
});
resolve();
});
};
var _default = onCreatePage;
exports["default"] = _default;