twreporter-react
Version:
React-Redux site for The Reporter Foundation in Taiwan
118 lines (86 loc) • 4.49 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.loglevel = exports.bootstrapVersion = undefined;
exports.createConfig = createConfig;
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _fileExists = require('./utils/fileExists');
var _fileExists2 = _interopRequireDefault(_fileExists);
var _resolveDefaultConfigPath = require('./utils/resolveDefaultConfigPath');
var _resolveDefaultConfigPath2 = _interopRequireDefault(_resolveDefaultConfigPath);
var _parseConfig = require('./utils/parseConfig');
var _parseConfig2 = _interopRequireDefault(_parseConfig);
var _selectModules = require('./utils/selectModules');
var _selectModules2 = _interopRequireDefault(_selectModules);
var _selectUserModules = require('./utils/selectUserModules');
var _selectUserModules2 = _interopRequireDefault(_selectUserModules);
var _getEnvProp = require('./utils/getEnvProp');
var _getEnvProp2 = _interopRequireDefault(_getEnvProp);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* ======= Fetching config */
var DEFAULT_VERSION = 3;
var SUPPORTED_VERSIONS = [3, 4];
var CONFIG_FILE = '.bootstraprc';
var userConfigPath = _path2.default.resolve(__dirname, '../../../' + CONFIG_FILE);
var isUserConfig = (0, _fileExists2.default)(userConfigPath);
var rawConfig = undefined;
var defaultConfig = undefined;
if (isUserConfig) {
rawConfig = (0, _parseConfig2.default)(userConfigPath);
var _rawConfig = rawConfig;
var _bootstrapVersion = _rawConfig.bootstrapVersion;
if (!_bootstrapVersion) {
throw new Error('\n I can\'t find Bootstrap version in your \'.bootstraprc\'.\n Make sure it\'s set to 3 or 4. Like this:\n bootstrapVersion: 4\n ');
}
if (SUPPORTED_VERSIONS.indexOf(parseInt(_bootstrapVersion, 10)) === -1) {
throw new Error('\n Looks like you have unsupported Bootstrap version in your \'.bootstraprc\'.\n Make sure it\'s set to 3 or 4. Like this:\n bootstrapVersion: 4\n ');
}
var defaultConfigPath = (0, _resolveDefaultConfigPath2.default)(CONFIG_FILE, _bootstrapVersion);
defaultConfig = (0, _parseConfig2.default)(defaultConfigPath);
} else {
var defaultConfigPath = (0, _resolveDefaultConfigPath2.default)(CONFIG_FILE, DEFAULT_VERSION);
rawConfig = defaultConfig = (0, _parseConfig2.default)(defaultConfigPath);
}
/* ======= Exports */
var bootstrapVersion = exports.bootstrapVersion = parseInt(rawConfig.bootstrapVersion, 10);
var loglevel = exports.loglevel = rawConfig.loglevel;
function createConfig(_ref) {
var bootstrapPath = _ref.bootstrapPath;
var bootstrapRelPath = _ref.bootstrapRelPath;
var extractStyles = _ref.extractStyles;
if (isUserConfig) {
var configDir = _path2.default.dirname(userConfigPath);
var preBootstrapCustomizations = rawConfig.preBootstrapCustomizations && _path2.default.resolve(configDir, rawConfig.preBootstrapCustomizations);
var bootstrapCustomizations = rawConfig.bootstrapCustomizations && _path2.default.resolve(configDir, rawConfig.bootstrapCustomizations);
var appStyles = rawConfig.appStyles && _path2.default.resolve(configDir, rawConfig.appStyles);
return {
bootstrapPath: bootstrapPath,
bootstrapRelPath: bootstrapRelPath,
bootstrapVersion: bootstrapVersion,
loglevel: loglevel,
preBootstrapCustomizations: preBootstrapCustomizations,
bootstrapCustomizations: bootstrapCustomizations,
appStyles: appStyles,
useFlexbox: rawConfig.useFlexbox,
useCustomIconFontPath: rawConfig.useCustomIconFontPath,
extractStyles: extractStyles || (0, _getEnvProp2.default)('extractStyles', rawConfig),
styleLoaders: rawConfig.styleLoaders,
styles: (0, _selectUserModules2.default)(rawConfig.styles, defaultConfig.styles),
scripts: (0, _selectUserModules2.default)(rawConfig.scripts, defaultConfig.scripts)
};
}
return {
bootstrapPath: bootstrapPath,
bootstrapRelPath: bootstrapRelPath,
bootstrapVersion: bootstrapVersion,
loglevel: loglevel,
useFlexbox: defaultConfig.useFlexbox,
useCustomIconFontPath: defaultConfig.useCustomIconFontPath,
extractStyles: extractStyles || (0, _getEnvProp2.default)('extractStyles', defaultConfig),
styleLoaders: defaultConfig.styleLoaders,
styles: (0, _selectModules2.default)(defaultConfig.styles),
scripts: (0, _selectModules2.default)(defaultConfig.scripts)
};
}