@tdb/web
Version:
Common condiguration for serving a web-site and testing web-based UI components.
87 lines (68 loc) • 2.77 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _getIterator2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/get-iterator"));
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
var _webpackSources = require("webpack-sources");
var _constants = require("../../../lib/constants");
// This plugin creates a pages-manifest.json from page entrypoints.
// This is used for mapping paths like `/` to `.next/server/static/<buildid>/pages/index.js` when doing SSR
// It's also used by next export to provide defaultPathMap
var PagesManifestPlugin =
/*#__PURE__*/
function () {
function PagesManifestPlugin() {
(0, _classCallCheck2.default)(this, PagesManifestPlugin);
}
(0, _createClass2.default)(PagesManifestPlugin, [{
key: "apply",
value: function apply(compiler) {
compiler.hooks.emit.tap('NextJsPagesManifest', function (compilation) {
var entries = compilation.entries;
var pages = {};
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator2.default)(entries), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var entry = _step.value;
var result = _constants.ROUTE_NAME_REGEX.exec(entry.name);
if (!result) {
continue;
}
var pagePath = result[1];
if (!pagePath) {
continue;
}
var name = entry.name;
pages["/".concat(pagePath.replace(/\\/g, '/'))] = name;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
if (typeof pages['/index'] !== 'undefined') {
pages['/'] = pages['/index'];
}
compilation.assets[_constants.PAGES_MANIFEST] = new _webpackSources.RawSource((0, _stringify.default)(pages));
});
}
}]);
return PagesManifestPlugin;
}();
exports.default = PagesManifestPlugin;