react-router-server
Version:
Server Side Rendering library for React Router v4
60 lines (52 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _validateStats = require('../utils/validateStats');
var _validateStats2 = _interopRequireDefault(_validateStats);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function parseWebpack(module, publicPath) {
return {
id: module.id,
files: module.files.map(function (item) {
return publicPath + item;
})
};
}
function parseSystemImportTransformer(module, publicPath) {
return {
id: module.id,
files: [publicPath + module.name]
};
}
function findModule(module, chunks) {
var match = chunks.find(function (chunk) {
return module.info.id == chunk.id;
});
if (match) return match;
for (var i = 0, len = chunks.length; i < len; ++i) {
if (chunks[i].modules) {
var _match = findModule(module, chunks[i].modules);
if (_match) return _match;
}
}
return null;
}
function extractModule(module, stats) {
if (module.info.type === 'webpack') {
var match = findModule(module, stats.chunks);
return match ? parseWebpack(match, stats.publicPath || '') : match;
} else if (module.info.type === 'systemImportTransformer') {
var _match2 = findModule(module, stats.chunks);
return _match2 ? parseSystemImportTransformer(_match2, stats.publicPath || '') : _match2;
}
}
exports.default = function (modules, stats) {
(0, _validateStats2.default)(stats);
if (modules && Object.prototype.toString.call(modules) === '[object Array]') {
return modules.map(function (module) {
return extractModule(module, stats);
});
}
return [];
};