UNPKG

react-cosmos

Version:

CLI for running React Cosmos inside webpack-powered apps

136 lines (102 loc) 5.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUserWebpackConfig = getUserWebpackConfig; var _path = _interopRequireDefault(require("path")); var _cli = require("../../../shared/cli"); var _fs = require("../../../shared/fs"); var _webpack = require("../cosmosConfig/webpack"); var _getDefaultWebpackConfig = require("./getDefaultWebpackConfig"); var _getWebpackNodeEnv = require("./getWebpackNodeEnv"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function getUserWebpackConfig(_x, _x2) { return _getUserWebpackConfig.apply(this, arguments); } function _getUserWebpackConfig() { _getUserWebpackConfig = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(cosmosConfig, userWebpack) { var baseWebpackConfig, _createWebpackCosmosC, overridePath, relPath, webpackOverride; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return getBaseWebpackConfig(cosmosConfig, userWebpack); case 2: baseWebpackConfig = _context.sent; _createWebpackCosmosC = (0, _webpack.createWebpackCosmosConfig)(cosmosConfig), overridePath = _createWebpackCosmosC.overridePath; if (!(!overridePath || !(0, _fs.moduleExists)(overridePath))) { _context.next = 6; break; } return _context.abrupt("return", baseWebpackConfig); case 6: relPath = _path.default.relative(process.cwd(), overridePath); console.log("[Cosmos] Overriding webpack config at ".concat(relPath)); webpackOverride = getDefaultExport((0, _fs.requireModule)(overridePath)); return _context.abrupt("return", webpackOverride(baseWebpackConfig, (0, _getWebpackNodeEnv.getWebpackNodeEnv)())); case 10: case "end": return _context.stop(); } } }, _callee); })); return _getUserWebpackConfig.apply(this, arguments); } function getBaseWebpackConfig(_x3, _x4) { return _getBaseWebpackConfig.apply(this, arguments); } // Get "default" export from either an ES or CJS module // More context: https://github.com/react-cosmos/react-cosmos/issues/895 function _getBaseWebpackConfig() { _getBaseWebpackConfig = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(cosmosConfig, userWebpack) { var rootDir, _createWebpackCosmosC2, configPath, relPath, userConfigExport, cliArgs; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: rootDir = cosmosConfig.rootDir; _createWebpackCosmosC2 = (0, _webpack.createWebpackCosmosConfig)(cosmosConfig), configPath = _createWebpackCosmosC2.configPath; if (!(!configPath || !(0, _fs.moduleExists)(configPath))) { _context2.next = 5; break; } console.log('[Cosmos] Using default webpack config'); return _context2.abrupt("return", (0, _getDefaultWebpackConfig.getDefaultWebpackConfig)(userWebpack, rootDir)); case 5: relPath = _path.default.relative(process.cwd(), configPath); console.log("[Cosmos] Using webpack config found at ".concat(relPath)); userConfigExport = getDefaultExport((0, _fs.requireModule)(configPath)); cliArgs = (0, _cli.getCliArgs)(); if (!(typeof userConfigExport === 'function')) { _context2.next = 15; break; } _context2.next = 12; return userConfigExport(cliArgs.env || (0, _getWebpackNodeEnv.getWebpackNodeEnv)(), cliArgs); case 12: _context2.t0 = _context2.sent; _context2.next = 16; break; case 15: _context2.t0 = userConfigExport; case 16: return _context2.abrupt("return", _context2.t0); case 17: case "end": return _context2.stop(); } } }, _callee2); })); return _getBaseWebpackConfig.apply(this, arguments); } function getDefaultExport(module) { if (_typeof(module) === 'object' && 'default' in module) { return module.default; } return module; }