@kadira/react-native-storybook
Version:
A better way to develop React Native Components for your app
54 lines (39 loc) • 2.21 kB
JavaScript
;
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _shelljs = require('shelljs');
var _shelljs2 = _interopRequireDefault(_shelljs);
var _server = require('../server');
var _server2 = _interopRequireDefault(_server);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
_commander2.default.option('-h, --host <host>', 'host to listen on').option('-p, --port <port>', 'port to listen on').option('-s, --secured', 'whether server is running on https').option('-c, --config-dir [dir-name]', 'storybook config directory').option('-e, --environment [environment]', 'DEVELOPMENT/PRODUCTION environment for webpack').option('-r, --reset-cache', 'reset react native packager').option('--skip-packager', 'run only storybook server').option('-i, --manual-id', 'allow multiple users to work with same storybook').parse(process.argv);
var projectDir = _path2.default.resolve();
var configDir = _path2.default.resolve(_commander2.default.configDir || './storybook');
var listenAddr = [_commander2.default.port];
if (_commander2.default.host) {
listenAddr.push(_commander2.default.host);
}
var server = new _server2.default({
projectDir: projectDir,
configDir: configDir,
environment: _commander2.default.environment,
manualId: _commander2.default.manualId,
secured: _commander2.default.secured
});
server.listen.apply(server, listenAddr.concat([function (err) {
if (err) {
throw err;
}
var address = 'http://' + (_commander2.default.host || 'localhost') + ':' + _commander2.default.port + '/';
console.info('\nReact Native Storybook started on => ' + address + '\n');
}]));
if (!_commander2.default.skipPackager) {
var projectRoots = configDir === projectDir ? [configDir] : [configDir, projectDir];
// RN packager
_shelljs2.default.exec(['node node_modules/react-native/local-cli/cli.js start', '--projectRoots ' + projectRoots.join(','), '--root ' + projectDir, _commander2.default.resetCache && '--reset-cache'].filter(function (x) {
return x;
}).join(' '), { async: true });
}