Advertisement
Guest User

bootstrap.config.js

a guest
Apr 12th, 2018
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. Object.defineProperty(exports, "__esModule", {
  4.   value: true
  5. });
  6. exports.default = createConfig;
  7.  
  8. var _path = require('path');
  9.  
  10. var _path2 = _interopRequireDefault(_path);
  11.  
  12. var _fs = require('fs');
  13.  
  14. var _fs2 = _interopRequireDefault(_fs);
  15.  
  16. var _jsYaml = require('js-yaml');
  17.  
  18. var _jsYaml2 = _interopRequireDefault(_jsYaml);
  19.  
  20. var _stripJsonComments = require('strip-json-comments');
  21.  
  22. var _stripJsonComments2 = _interopRequireDefault(_stripJsonComments);
  23.  
  24. var _fileExists = require('./utils/fileExists');
  25.  
  26. var _fileExists2 = _interopRequireDefault(_fileExists);
  27.  
  28. var _selectModules = require('./utils/selectModules');
  29.  
  30. var _selectModules2 = _interopRequireDefault(_selectModules);
  31.  
  32. var _selectUserModules = require('./utils/selectUserModules');
  33.  
  34. var _selectUserModules2 = _interopRequireDefault(_selectUserModules);
  35.  
  36. var _getEnvProp = require('./utils/getEnvProp');
  37.  
  38. var _getEnvProp2 = _interopRequireDefault(_getEnvProp);
  39.  
  40. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  41.  
  42. /* ======= Fetching config */
  43.  
  44. var DEFAULT_VERSION = 3;
  45. var SUPPORTED_VERSIONS = [3, 4];
  46. var CONFIG_FILE = '.bootstraprc';
  47.  
  48. function resolveDefaultConfigPath(bootstrapVersion) {
  49.   return _path2.default.resolve(__dirname, '../' + CONFIG_FILE + '-' + bootstrapVersion + '-default');
  50. }
  51.  
  52. function parseConfigFile(configFilePath) {
  53.   var configContent = (0, _stripJsonComments2.default)(_fs2.default.readFileSync(configFilePath, 'utf8'));
  54.  
  55.   try {
  56.     return _jsYaml2.default.safeLoad(configContent);
  57.   } catch (YAMLException) {
  58.     throw new Error('Config file cannot be parsed: ' + configFilePath + '\'');
  59.   }
  60. }
  61.  
  62. function readDefaultConfig() {
  63.   var configFilePath = resolveDefaultConfigPath(DEFAULT_VERSION);
  64.   var defaultConfig = parseConfigFile(configFilePath);
  65.  
  66.   return {
  67.     defaultConfig: defaultConfig,
  68.     configFilePath: configFilePath
  69.   };
  70. }
  71.  
  72. // default location .bootstraprc
  73. function defaultUserConfigPath() {
  74.   return _path2.default.resolve(__dirname, '../../../' + CONFIG_FILE);
  75. }
  76.  
  77. function readUserConfig(customConfigFilePath) {
  78.   var userConfig = parseConfigFile(customConfigFilePath);
  79.  
  80.   var bootstrapPath = userConfig.bootstrapPath;
  81.   var bootstrapVersion = userConfig.bootstrapVersion;
  82.  
  83.  
  84.   if (!bootstrapVersion) {
  85.     throw new Error('\nBootstrap version not found in your \'.bootstraprc\'.\nMake sure it\'s set to 3 or 4. Like this:\n  bootstrapVersion: 4\n    ');
  86.   }
  87.  
  88.   if (SUPPORTED_VERSIONS.indexOf(parseInt(bootstrapVersion, 10)) === -1) {
  89.     throw new Error('\nUnsupported Bootstrap version in your \'.bootstraprc\'.\nMake sure it\'s set to 3 or 4. Like this:\n  bootstrapVersion: 4\n    ');
  90.   }
  91.  
  92.   var defaultConfigFilePath = resolveDefaultConfigPath(bootstrapVersion);
  93.   var defaultConfig = parseConfigFile(defaultConfigFilePath);
  94.  
  95.   return {
  96.     userConfig: userConfig,
  97.     defaultConfig: defaultConfig
  98.   };
  99. }
  100.  
  101. /* ======= Exports */
  102. function createConfig(_ref) {
  103.   var extractStyles = _ref.extractStyles,
  104.       customConfigFilePath = _ref.customConfigFilePath;
  105.  
  106.   // .bootstraprc-{3,4}-default, per the DEFAULT_VERSION
  107.   // otherwise read user provided config file
  108.   var userConfigFilePath = null;
  109.   if (customConfigFilePath) {
  110.     userConfigFilePath = _path2.default.resolve(__dirname, customConfigFilePath);
  111.   } else {
  112.     var defaultLocationUserConfigPath = defaultUserConfigPath();
  113.     if ((0, _fileExists2.default)(defaultLocationUserConfigPath)) {
  114.       userConfigFilePath = defaultLocationUserConfigPath;
  115.     }
  116.   }
  117.  
  118.   if (!userConfigFilePath) {
  119.     var _readDefaultConfig = readDefaultConfig(),
  120.         _defaultConfig = _readDefaultConfig.defaultConfig,
  121.         _configFilePath = _readDefaultConfig.configFilePath;
  122.  
  123.     return {
  124.       bootstrapVersion: parseInt(_defaultConfig.bootstrapVersion, 10),
  125.       loglevel: _defaultConfig.loglevel,
  126.       preBootstrapCustomizations: _defaultConfig.preBootstrapCustomizations,
  127.       bootstrapCustomizations: _defaultConfig.bootstrapCustomizations,
  128.       appStyles: _defaultConfig.appStyles,
  129.       useCustomIconFontPath: _defaultConfig.useCustomIconFontPath,
  130.       extractStyles: extractStyles || (0, _getEnvProp2.default)('extractStyles', _defaultConfig),
  131.       styleLoaders: (0, _getEnvProp2.default)('styleLoaders', _defaultConfig),
  132.       styles: (0, _selectModules2.default)(_defaultConfig.styles),
  133.       scripts: (0, _selectModules2.default)(_defaultConfig.scripts),
  134.       configFilePath: _configFilePath
  135.     };
  136.   }
  137.  
  138.   var configFilePath = userConfigFilePath;
  139.  
  140.   var _readUserConfig = readUserConfig(configFilePath),
  141.       userConfig = _readUserConfig.userConfig,
  142.       defaultConfig = _readUserConfig.defaultConfig;
  143.  
  144.   var configDir = _path2.default.dirname(configFilePath);
  145.   var preBootstrapCustomizations = userConfig.preBootstrapCustomizations && _path2.default.resolve(configDir, userConfig.preBootstrapCustomizations);
  146.   var bootstrapCustomizations = userConfig.bootstrapCustomizations && _path2.default.resolve(configDir, userConfig.bootstrapCustomizations);
  147.   var appStyles = userConfig.appStyles && _path2.default.resolve(configDir, userConfig.appStyles);
  148.   var bootstrapPath = userConfig.bootstrapPath;
  149.   return {
  150.     bootstrapVersion: parseInt(userConfig.bootstrapVersion, 10),
  151.     loglevel: userConfig.loglevel,
  152.     preBootstrapCustomizations: preBootstrapCustomizations,
  153.     bootstrapCustomizations: bootstrapCustomizations,
  154.     appStyles: appStyles,
  155.     disableSassSourceMap: userConfig.disableSassSourceMap,
  156.     disableResolveUrlLoader: userConfig.disableResolveUrlLoader,
  157.     useCustomIconFontPath: userConfig.useCustomIconFontPath,
  158.     extractStyles: extractStyles || (0, _getEnvProp2.default)('extractStyles', userConfig),
  159.     styleLoaders: (0, _getEnvProp2.default)('styleLoaders', userConfig),
  160.     styles: (0, _selectUserModules2.default)(userConfig.styles, defaultConfig.styles),
  161.     scripts: (0, _selectUserModules2.default)(userConfig.scripts, defaultConfig.scripts),
  162.     configFilePath: configFilePath,
  163.     bootstrapPath:bootstrapPath
  164.   };
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement