@kadira/react-native-storybook
Version:
A better way to develop React Native Components for your app
106 lines (73 loc) • 3.07 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
exports.default = function (_ref) {
var projectDir = _ref.projectDir,
configDir = _ref.configDir,
options = (0, _objectWithoutProperties3.default)(_ref, ['projectDir', 'configDir']);
// Build the webpack configuration using the `baseConfig`
// custom `.babelrc` file and `webpack.config.js` files
var environment = options.environment || 'DEVELOPMENT';
var isProd = environment === 'PRODUCTION';
var currentWebpackConfig = isProd ? _webpackConfig2.default : _webpack4.default;
var config = (0, _config2.default)(environment, currentWebpackConfig, projectDir, configDir);
// remove the leading '/'
var publicPath = config.output.publicPath;
if (publicPath[0] === '/') {
publicPath = publicPath.slice(1);
}
var compiler = (0, _webpack2.default)(config);
var devMiddlewareOptions = {
noInfo: true,
publicPath: config.output.publicPath,
watchOptions: config.watchOptions || {}
};
var router = new _express.Router();
var middlewareFn = getMiddleware(configDir);
middlewareFn(router);
router.use((0, _webpackDevMiddleware2.default)(compiler, devMiddlewareOptions));
if (!isProd) {
router.use((0, _webpackHotMiddleware2.default)(compiler));
}
router.get('/', function (req, res) {
res.send((0, _index2.default)(publicPath, {
manualId: options.manualId,
secured: options.secured
}));
});
return router;
};
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _express = require('express');
var _webpack = require('webpack');
var _webpack2 = _interopRequireDefault(_webpack);
var _webpackDevMiddleware = require('webpack-dev-middleware');
var _webpackDevMiddleware2 = _interopRequireDefault(_webpackDevMiddleware);
var _webpackHotMiddleware = require('webpack-hot-middleware');
var _webpackHotMiddleware2 = _interopRequireDefault(_webpackHotMiddleware);
var _webpack3 = require('./config/webpack.config');
var _webpack4 = _interopRequireDefault(_webpack3);
var _webpackConfig = require('./config/webpack.config.prod');
var _webpackConfig2 = _interopRequireDefault(_webpackConfig);
var _config = require('./config');
var _config2 = _interopRequireDefault(_config);
var _index = require('./index.html');
var _index2 = _interopRequireDefault(_index);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getMiddleware(configDir) {
var middlewarePath = _path2.default.resolve(configDir, 'middleware.js');
if (_fs2.default.existsSync(middlewarePath)) {
var middlewareModule = require(middlewarePath);
if (middlewareModule.__esModule) {
middlewareModule = middlewareModule.default;
}
return middlewareModule;
}
return function () {};
}