react-cosmos 5.6.7 → 5.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/bin/cosmos-export.js +1 -1
  2. package/bin/cosmos-native.js +1 -1
  3. package/bin/cosmos.js +1 -1
  4. package/dist/config/createCosmosConfig.js +2 -2
  5. package/dist/config/{resolve.d.ts → resolveModule.d.ts} +0 -0
  6. package/dist/config/{resolve.js → resolveModule.js} +0 -0
  7. package/dist/{shared/devServer → devServer}/app.d.ts +2 -2
  8. package/dist/{shared/devServer → devServer}/app.js +2 -2
  9. package/dist/{shared/devServer → devServer}/httpServer.d.ts +1 -1
  10. package/dist/{shared/devServer → devServer}/httpServer.js +0 -0
  11. package/dist/{shared/devServer → devServer}/messageHandler.d.ts +0 -0
  12. package/dist/{shared/devServer → devServer}/messageHandler.js +0 -0
  13. package/dist/{shared/devServer/index.d.ts → devServer/startDevServer.d.ts} +2 -2
  14. package/dist/{shared/devServer/index.js → devServer/startDevServer.js} +5 -5
  15. package/dist/dom/DomFixtureLoader.d.ts +3 -3
  16. package/dist/dom/index.d.ts +3 -3
  17. package/dist/{shared/export.d.ts → export/generateExport.d.ts} +1 -1
  18. package/dist/{shared/export.js → export/generateExport.js} +7 -7
  19. package/dist/{webExport.d.ts → generateWebExport.d.ts} +0 -0
  20. package/dist/{webExport.js → generateWebExport.js} +2 -2
  21. package/dist/getFixtureUrls.d.ts +1 -1
  22. package/dist/getFixtureUrls.js +10 -11
  23. package/dist/getFixtures.d.ts +1 -1
  24. package/dist/getFixtures.js +13 -14
  25. package/dist/getFixtures2.d.ts +1 -1
  26. package/dist/getFixtures2.js +9 -9
  27. package/dist/index.d.ts +3 -1
  28. package/dist/index.js +8 -4
  29. package/dist/native/NativeFixtureLoader.d.ts +12 -0
  30. package/dist/{native.js → native/NativeFixtureLoader.js} +4 -6
  31. package/dist/native/index.d.ts +1 -0
  32. package/dist/native/index.js +25 -0
  33. package/dist/plugins/httpProxy.d.ts +1 -1
  34. package/dist/plugins/openFile.d.ts +1 -1
  35. package/dist/plugins/openFile.js +3 -3
  36. package/dist/plugins/userDepsFile.d.ts +1 -1
  37. package/dist/plugins/userDepsFile.js +6 -4
  38. package/dist/plugins/webpack/client/userDeps.d.ts +3 -3
  39. package/dist/plugins/webpack/cosmosConfig/dom.d.ts +1 -1
  40. package/dist/plugins/webpack/cosmosConfig/webpack.d.ts +1 -1
  41. package/dist/plugins/webpack/cosmosConfig/webpack.js +5 -5
  42. package/dist/plugins/webpack/devServer.d.ts +1 -1
  43. package/dist/plugins/webpack/devServer.js +7 -7
  44. package/dist/plugins/webpack/export.d.ts +1 -1
  45. package/dist/plugins/webpack/export.js +2 -2
  46. package/dist/plugins/webpack/webpackConfig/{default.d.ts → getDefaultWebpackConfig.d.ts} +0 -0
  47. package/dist/plugins/webpack/webpackConfig/{default.js → getDefaultWebpackConfig.js} +2 -2
  48. package/dist/plugins/webpack/webpackConfig/{devServer.d.ts → getDevWebpackConfig.d.ts} +1 -1
  49. package/dist/plugins/webpack/webpackConfig/{devServer.js → getDevWebpackConfig.js} +16 -15
  50. package/dist/plugins/webpack/webpackConfig/{export.d.ts → getExportWebpackConfig.d.ts} +1 -1
  51. package/dist/plugins/webpack/webpackConfig/{export.js → getExportWebpackConfig.js} +17 -16
  52. package/dist/plugins/webpack/webpackConfig/getUserWebpackConfig.d.ts +3 -0
  53. package/dist/plugins/webpack/webpackConfig/getUserWebpackConfig.js +136 -0
  54. package/dist/plugins/webpack/webpackConfig/getWebpackConfigModule.d.ts +2 -0
  55. package/dist/plugins/webpack/webpackConfig/getWebpackConfigModule.js +45 -0
  56. package/dist/plugins/webpack/webpackConfig/getWebpackConfigResolve.d.ts +4 -0
  57. package/dist/plugins/webpack/webpackConfig/getWebpackConfigResolve.js +107 -0
  58. package/dist/plugins/webpack/webpackConfig/getWebpackNodeEnv.d.ts +1 -0
  59. package/dist/plugins/webpack/webpackConfig/getWebpackNodeEnv.js +12 -0
  60. package/dist/plugins/webpack/webpackConfig/htmlPlugin.d.ts +1 -1
  61. package/dist/plugins/webpack/webpackConfig/htmlPlugin.js +3 -3
  62. package/dist/plugins/webpack/webpackConfig/plugins.d.ts +5 -0
  63. package/dist/plugins/webpack/webpackConfig/plugins.js +37 -0
  64. package/dist/plugins/webpack/webpackConfig/resolveWebpackClientPath.d.ts +1 -0
  65. package/dist/plugins/webpack/webpackConfig/resolveWebpackClientPath.js +10 -0
  66. package/dist/plugins/webpack/webpackConfig/userDepsLoader.js +4 -4
  67. package/dist/shared/playgroundHtml.d.ts +2 -2
  68. package/dist/shared/playgroundHtml.js +3 -3
  69. package/dist/shared/pluginConfigs.d.ts +1 -1
  70. package/dist/shared/static.js +2 -2
  71. package/dist/shared/types.d.ts +1 -0
  72. package/dist/shared/types.js +5 -0
  73. package/dist/shared/{shared.d.ts → utils.d.ts} +0 -1
  74. package/dist/shared/{shared.js → utils.js} +0 -0
  75. package/dist/{nativeServer.d.ts → startNativeServer.d.ts} +0 -0
  76. package/dist/{nativeServer.js → startNativeServer.js} +3 -3
  77. package/dist/{webServer.d.ts → startWebServer.d.ts} +0 -0
  78. package/dist/{webServer.js → startWebServer.js} +3 -3
  79. package/dist/{shared/userDeps → userDeps}/findUserModulePaths.d.ts +0 -0
  80. package/dist/{shared/userDeps → userDeps}/findUserModulePaths.js +0 -0
  81. package/dist/{shared/userDeps → userDeps}/generateUserDepsModule.d.ts +1 -1
  82. package/dist/{shared/userDeps → userDeps}/generateUserDepsModule.js +0 -0
  83. package/dist/userDeps/getUserModules.d.ts +8 -0
  84. package/dist/{shared/userDeps → userDeps}/getUserModules.js +6 -6
  85. package/dist/{shared/userDeps → userDeps}/shared.d.ts +0 -0
  86. package/dist/{shared/userDeps → userDeps}/shared.js +2 -2
  87. package/dist/{shared/userDeps → userDeps}/userDepsTemplate.d.ts +0 -0
  88. package/dist/{shared/userDeps → userDeps}/userDepsTemplate.js +1 -1
  89. package/package.json +4 -4
  90. package/dist/config/index.d.ts +0 -5
  91. package/dist/config/index.js +0 -51
  92. package/dist/native.d.ts +0 -10
  93. package/dist/plugins/webpack/webpackConfig/index.d.ts +0 -2
  94. package/dist/plugins/webpack/webpackConfig/index.js +0 -21
  95. package/dist/plugins/webpack/webpackConfig/module.d.ts +0 -3
  96. package/dist/plugins/webpack/webpackConfig/module.js +0 -18
  97. package/dist/plugins/webpack/webpackConfig/shared.d.ts +0 -11
  98. package/dist/plugins/webpack/webpackConfig/shared.js +0 -254
  99. package/dist/shared/userDeps/getUserModules.d.ts +0 -8
  100. package/dist/shared/userDeps/index.d.ts +0 -4
  101. package/dist/shared/userDeps/index.js +0 -49
@@ -7,7 +7,7 @@ exports.createWebpackCosmosConfig = createWebpackCosmosConfig;
7
7
 
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
 
10
- var _config = require("../../../config");
10
+ var _resolveModule = require("../../../config/resolveModule");
11
11
 
12
12
  var _fs = require("../../../shared/fs");
13
13
 
@@ -29,7 +29,7 @@ function getWebpackConfigPath(_ref, rootDir) {
29
29
  var configPath = _ref.configPath;
30
30
 
31
31
  if (typeof configPath === 'undefined') {
32
- return (0, _config.resolveModule)(rootDir, 'webpack.config.js');
32
+ return (0, _resolveModule.resolveModule)(rootDir, 'webpack.config.js');
33
33
  } // User can choose to prevent automatical use of an existing webpack.config.js
34
34
  // file (relative to the root dir) by setting configPath to null
35
35
 
@@ -38,7 +38,7 @@ function getWebpackConfigPath(_ref, rootDir) {
38
38
  return null;
39
39
  }
40
40
 
41
- var absPath = (0, _config.resolveModule)(rootDir, configPath);
41
+ var absPath = (0, _resolveModule.resolveModule)(rootDir, configPath);
42
42
 
43
43
  if (!(0, _fs.fileExists)(absPath)) {
44
44
  var relPath = _path.default.relative(process.cwd(), absPath);
@@ -53,7 +53,7 @@ function getWebpackOverridePath(_ref2, rootDir) {
53
53
  var overridePath = _ref2.overridePath;
54
54
 
55
55
  if (typeof overridePath === 'undefined') {
56
- return (0, _config.resolveModule)(rootDir, 'webpack.override.js');
56
+ return (0, _resolveModule.resolveModule)(rootDir, 'webpack.override.js');
57
57
  } // User can choose to prevent automatical use of an existing webpack.override.js
58
58
  // file (relative to the root dir) by setting overridePath to null
59
59
 
@@ -62,7 +62,7 @@ function getWebpackOverridePath(_ref2, rootDir) {
62
62
  return null;
63
63
  }
64
64
 
65
- var absPath = (0, _config.resolveModule)(rootDir, overridePath);
65
+ var absPath = (0, _resolveModule.resolveModule)(rootDir, overridePath);
66
66
 
67
67
  if (!(0, _fs.fileExists)(absPath)) {
68
68
  var relPath = _path.default.relative(process.cwd(), absPath);
@@ -1,2 +1,2 @@
1
- import { DevServerPluginArgs } from '../../shared/devServer';
1
+ import { DevServerPluginArgs } from '../../devServer/startDevServer';
2
2
  export declare function webpackDevServer({ cosmosConfig, expressApp, sendMessage, }: DevServerPluginArgs): Promise<(() => Promise<void>) | undefined>;
@@ -9,15 +9,15 @@ var _webpackHotMiddleware = _interopRequireDefault(require("@skidding/webpack-ho
9
9
 
10
10
  var _path = _interopRequireDefault(require("path"));
11
11
 
12
- var _shared = require("../../shared/shared");
13
-
14
12
  var _static = require("../../shared/static");
15
13
 
14
+ var _utils = require("../../shared/utils");
15
+
16
16
  var _webpack = require("./cosmosConfig/webpack");
17
17
 
18
- var _shared2 = require("./shared");
18
+ var _shared = require("./shared");
19
19
 
20
- var _webpackConfig = require("./webpackConfig");
20
+ var _getDevWebpackConfig = require("./webpackConfig/getDevWebpackConfig");
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
@@ -51,7 +51,7 @@ function _webpackDevServer() {
51
51
  return _context2.abrupt("return");
52
52
 
53
53
  case 4:
54
- userWebpack = (0, _shared2.getWebpack)(cosmosConfig.rootDir);
54
+ userWebpack = (0, _shared.getWebpack)(cosmosConfig.rootDir);
55
55
 
56
56
  if (userWebpack) {
57
57
  _context2.next = 7;
@@ -62,7 +62,7 @@ function _webpackDevServer() {
62
62
 
63
63
  case 7:
64
64
  _context2.next = 9;
65
- return (0, _webpackConfig.getDevWebpackConfig)(cosmosConfig, userWebpack);
65
+ return (0, _getDevWebpackConfig.getDevWebpackConfig)(cosmosConfig, userWebpack);
66
66
 
67
67
  case 9:
68
68
  webpackConfig = _context2.sent;
@@ -121,7 +121,7 @@ function _webpackDevServer() {
121
121
  wdmInst = wdm(webpackCompiler, {
122
122
  // publicPath is the base path for the webpack assets and has to match
123
123
  // webpack.output.path
124
- publicPath: (0, _shared.removeLeadingDot)(cosmosConfig.publicUrl)
124
+ publicPath: (0, _utils.removeLeadingDot)(cosmosConfig.publicUrl)
125
125
  });
126
126
  expressApp.use(wdmInst);
127
127
  _createWebpackCosmosC = (0, _webpack.createWebpackCosmosConfig)(cosmosConfig), hotReload = _createWebpackCosmosC.hotReload;
@@ -1,2 +1,2 @@
1
- import { ExportPluginArgs } from '../../shared/export';
1
+ import { ExportPluginArgs } from '../../export/generateExport';
2
2
  export declare function webpackExport({ cosmosConfig }: ExportPluginArgs): Promise<void>;
@@ -9,7 +9,7 @@ exports.webpackExport = webpackExport;
9
9
 
10
10
  var _shared = require("./shared");
11
11
 
12
- var _webpackConfig = require("./webpackConfig");
12
+ var _getExportWebpackConfig = require("./webpackConfig/getExportWebpackConfig");
13
13
 
14
14
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
15
15
 
@@ -66,7 +66,7 @@ function _webpackExport() {
66
66
 
67
67
  case 4:
68
68
  _context.next = 6;
69
- return (0, _webpackConfig.getExportWebpackConfig)(cosmosConfig, userWebpack);
69
+ return (0, _getExportWebpackConfig.getExportWebpackConfig)(cosmosConfig, userWebpack);
70
70
 
71
71
  case 6:
72
72
  webpackConfig = _context.sent;
@@ -9,7 +9,7 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));
9
9
 
10
10
  var _playgroundHtml = require("../../../shared/playgroundHtml");
11
11
 
12
- var _shared = require("./shared");
12
+ var _getWebpackNodeEnv = require("./getWebpackNodeEnv");
13
13
 
14
14
  var _htmlPlugin = require("./htmlPlugin");
15
15
 
@@ -141,7 +141,7 @@ function getDefaultWebpackConfig(userWebpack, rootDir) {
141
141
  }
142
142
 
143
143
  return _objectSpread(_objectSpread({}, config), {}, {
144
- mode: (0, _shared.getNodeEnv)(),
144
+ mode: (0, _getWebpackNodeEnv.getWebpackNodeEnv)(),
145
145
  optimization: {
146
146
  // Cosmos reads component names at run-time, so it is crucial to not
147
147
  // minify even when building with production env (ie. when exporting)
@@ -1,3 +1,3 @@
1
1
  import webpack from 'webpack';
2
- import { CosmosConfig } from '../../../config';
2
+ import { CosmosConfig } from '../../../config/shared';
3
3
  export declare function getDevWebpackConfig(cosmosConfig: CosmosConfig, userWebpack: typeof webpack): Promise<webpack.Configuration>;
@@ -9,9 +9,17 @@ var _path = _interopRequireDefault(require("path"));
9
9
 
10
10
  var _webpack = require("../cosmosConfig/webpack");
11
11
 
12
+ var _getUserWebpackConfig = require("./getUserWebpackConfig");
13
+
14
+ var _getWebpackConfigModule = require("./getWebpackConfigModule");
15
+
16
+ var _getWebpackConfigResolve = require("./getWebpackConfigResolve");
17
+
12
18
  var _htmlPlugin = require("./htmlPlugin");
13
19
 
14
- var _shared = require("./shared");
20
+ var _plugins = require("./plugins");
21
+
22
+ var _resolveWebpackClientPath = require("./resolveWebpackClientPath");
15
23
 
16
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
25
 
@@ -51,17 +59,15 @@ function _getDevWebpackConfig() {
51
59
  switch (_context.prev = _context.next) {
52
60
  case 0:
53
61
  _context.next = 2;
54
- return (0, _shared.getUserWebpackConfig)(cosmosConfig, userWebpack);
62
+ return (0, _getUserWebpackConfig.getUserWebpackConfig)(cosmosConfig, userWebpack);
55
63
 
56
64
  case 2:
57
65
  baseWebpackConfig = _context.sent;
58
66
  webpackConfig = _objectSpread(_objectSpread({}, baseWebpackConfig), {}, {
59
67
  entry: getEntry(cosmosConfig),
60
68
  output: getOutput(cosmosConfig),
61
- module: _objectSpread(_objectSpread({}, baseWebpackConfig.module), {}, {
62
- rules: getRules(baseWebpackConfig)
63
- }),
64
- resolve: (0, _shared.resolveLocalReactDeps)(cosmosConfig, baseWebpackConfig),
69
+ module: (0, _getWebpackConfigModule.getWebpackConfigModule)(baseWebpackConfig),
70
+ resolve: (0, _getWebpackConfigResolve.getWebpackConfigResolve)(cosmosConfig, baseWebpackConfig),
65
71
  plugins: getPlugins(cosmosConfig, baseWebpackConfig, userWebpack)
66
72
  }); // optimization.splitChunks.name = false breaks auto fixture file discovery.
67
73
  // When the splitChunks.name is set to false, existing fixtures hot reload
@@ -98,8 +104,8 @@ function getEntry(cosmosConfig) {
98
104
  // might import React
99
105
 
100
106
 
101
- var devtoolsHook = (0, _shared.resolveClientPath)('reactDevtoolsHook');
102
- var clientIndex = (0, _shared.resolveClientPath)('index');
107
+ var devtoolsHook = (0, _resolveWebpackClientPath.resolveWebpackClientPath)('reactDevtoolsHook');
108
+ var clientIndex = (0, _resolveWebpackClientPath.resolveWebpackClientPath)('index');
103
109
  return hotReload ? [devtoolsHook, getHotMiddlewareEntry(reloadOnFail), clientIndex] : [devtoolsHook, clientIndex];
104
110
  }
105
111
 
@@ -116,21 +122,16 @@ function getOutput(_ref) {
116
122
  };
117
123
  }
118
124
 
119
- function getRules(baseWebpackConfig) {
120
- var existingRules = baseWebpackConfig.module && baseWebpackConfig.module.rules || [];
121
- return [].concat(_toConsumableArray(existingRules), [(0, _shared.getUserDepsLoaderRule)()]);
122
- }
123
-
124
125
  function getPlugins(cosmosConfig, baseWebpackConfig, userWebpack) {
125
126
  var existingPlugins = baseWebpackConfig.plugins || [];
126
- var globalsPlugin = (0, _shared.getGlobalsPlugin)(cosmosConfig, userWebpack, true);
127
+ var globalsPlugin = (0, _plugins.getGlobalsPlugin)(cosmosConfig, userWebpack, true);
127
128
  var noEmitErrorsPlugin = new userWebpack.NoEmitOnErrorsPlugin();
128
129
  var plugins = [].concat(_toConsumableArray(existingPlugins), [globalsPlugin, noEmitErrorsPlugin]);
129
130
 
130
131
  var _createWebpackCosmosC2 = (0, _webpack.createWebpackCosmosConfig)(cosmosConfig),
131
132
  hotReload = _createWebpackCosmosC2.hotReload;
132
133
 
133
- if (hotReload && !(0, _shared.hasPlugin)(plugins, 'HotModuleReplacementPlugin')) {
134
+ if (hotReload && !(0, _plugins.hasPlugin)(plugins, 'HotModuleReplacementPlugin')) {
134
135
  var hmrPlugin = new userWebpack.HotModuleReplacementPlugin();
135
136
  plugins = [].concat(_toConsumableArray(plugins), [hmrPlugin]);
136
137
  }
@@ -1,3 +1,3 @@
1
1
  import webpack from 'webpack';
2
- import { CosmosConfig } from '../../../config';
2
+ import { CosmosConfig } from '../../../config/shared';
3
3
  export declare function getExportWebpackConfig(cosmosConfig: CosmosConfig, userWebpack: typeof webpack): Promise<webpack.Configuration>;
@@ -7,13 +7,21 @@ exports.getExportWebpackConfig = getExportWebpackConfig;
7
7
 
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
 
10
+ var _utils = require("../../../shared/utils");
11
+
10
12
  var _webpack = require("../cosmosConfig/webpack");
11
13
 
12
- var _shared = require("../../../shared/shared");
14
+ var _getUserWebpackConfig = require("./getUserWebpackConfig");
15
+
16
+ var _getWebpackConfigModule = require("./getWebpackConfigModule");
17
+
18
+ var _getWebpackConfigResolve = require("./getWebpackConfigResolve");
13
19
 
14
20
  var _htmlPlugin = require("./htmlPlugin");
15
21
 
16
- var _shared2 = require("./shared");
22
+ var _plugins = require("./plugins");
23
+
24
+ var _resolveWebpackClientPath = require("./resolveWebpackClientPath");
17
25
 
18
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
27
 
@@ -51,17 +59,15 @@ function _getExportWebpackConfig() {
51
59
  switch (_context.prev = _context.next) {
52
60
  case 0:
53
61
  _context.next = 2;
54
- return (0, _shared2.getUserWebpackConfig)(cosmosConfig, userWebpack);
62
+ return (0, _getUserWebpackConfig.getUserWebpackConfig)(cosmosConfig, userWebpack);
55
63
 
56
64
  case 2:
57
65
  baseWebpackConfig = _context.sent;
58
66
  return _context.abrupt("return", _objectSpread(_objectSpread({}, baseWebpackConfig), {}, {
59
67
  entry: getEntry(),
60
68
  output: getOutput(cosmosConfig),
61
- module: _objectSpread(_objectSpread({}, baseWebpackConfig.module), {}, {
62
- rules: getRules(baseWebpackConfig)
63
- }),
64
- resolve: (0, _shared2.resolveLocalReactDeps)(cosmosConfig, baseWebpackConfig),
69
+ module: (0, _getWebpackConfigModule.getWebpackConfigModule)(baseWebpackConfig),
70
+ resolve: (0, _getWebpackConfigResolve.getWebpackConfigResolve)(cosmosConfig, baseWebpackConfig),
65
71
  plugins: getPlugins(cosmosConfig, baseWebpackConfig, userWebpack)
66
72
  }));
67
73
 
@@ -78,8 +84,8 @@ function _getExportWebpackConfig() {
78
84
  function getEntry() {
79
85
  // The React devtools hook needs to be imported before any other module that
80
86
  // might import React
81
- var devtoolsHook = (0, _shared2.resolveClientPath)('reactDevtoolsHook');
82
- var clientIndex = (0, _shared2.resolveClientPath)('index');
87
+ var devtoolsHook = (0, _resolveWebpackClientPath.resolveWebpackClientPath)('reactDevtoolsHook');
88
+ var clientIndex = (0, _resolveWebpackClientPath.resolveWebpackClientPath)('index');
83
89
  return [devtoolsHook, clientIndex];
84
90
  }
85
91
 
@@ -91,20 +97,15 @@ function getOutput(cosmosConfig) {
91
97
  includeHashInOutputFilename = _createWebpackCosmosC.includeHashInOutputFilename;
92
98
 
93
99
  return {
94
- path: _path.default.resolve(exportPath, (0, _shared.removeLeadingSlash)(publicUrl)),
100
+ path: _path.default.resolve(exportPath, (0, _utils.removeLeadingSlash)(publicUrl)),
95
101
  filename: includeHashInOutputFilename ? '[name].[contenthash].js' : '[name].js',
96
102
  publicPath: publicUrl
97
103
  };
98
104
  }
99
105
 
100
- function getRules(baseWebpackConfig) {
101
- var existingRules = baseWebpackConfig.module && baseWebpackConfig.module.rules || [];
102
- return [].concat(_toConsumableArray(existingRules), [(0, _shared2.getUserDepsLoaderRule)()]);
103
- }
104
-
105
106
  function getPlugins(cosmosConfig, baseWebpackConfig, userWebpack) {
106
107
  var existingPlugins = baseWebpackConfig.plugins || [];
107
- var globalsPlugin = (0, _shared2.getGlobalsPlugin)(cosmosConfig, userWebpack, false);
108
+ var globalsPlugin = (0, _plugins.getGlobalsPlugin)(cosmosConfig, userWebpack, false);
108
109
  var noEmitErrorsPlugin = new userWebpack.NoEmitOnErrorsPlugin();
109
110
  return (0, _htmlPlugin.ensureHtmlWebackPlugin)(cosmosConfig, [].concat(_toConsumableArray(existingPlugins), [globalsPlugin, noEmitErrorsPlugin]));
110
111
  }
@@ -0,0 +1,3 @@
1
+ import webpack from 'webpack';
2
+ import { CosmosConfig } from '../../../config/shared';
3
+ export declare function getUserWebpackConfig(cosmosConfig: CosmosConfig, userWebpack: typeof webpack): Promise<webpack.Configuration>;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getUserWebpackConfig = getUserWebpackConfig;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _cli = require("../../../shared/cli");
11
+
12
+ var _fs = require("../../../shared/fs");
13
+
14
+ var _webpack = require("../cosmosConfig/webpack");
15
+
16
+ var _getDefaultWebpackConfig = require("./getDefaultWebpackConfig");
17
+
18
+ var _getWebpackNodeEnv = require("./getWebpackNodeEnv");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ 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); }
23
+
24
+ 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); } }
25
+
26
+ 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); }); }; }
27
+
28
+ function getUserWebpackConfig(_x, _x2) {
29
+ return _getUserWebpackConfig.apply(this, arguments);
30
+ }
31
+
32
+ function _getUserWebpackConfig() {
33
+ _getUserWebpackConfig = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(cosmosConfig, userWebpack) {
34
+ var baseWebpackConfig, _createWebpackCosmosC, overridePath, relPath, webpackOverride;
35
+
36
+ return regeneratorRuntime.wrap(function _callee$(_context) {
37
+ while (1) {
38
+ switch (_context.prev = _context.next) {
39
+ case 0:
40
+ _context.next = 2;
41
+ return getBaseWebpackConfig(cosmosConfig, userWebpack);
42
+
43
+ case 2:
44
+ baseWebpackConfig = _context.sent;
45
+ _createWebpackCosmosC = (0, _webpack.createWebpackCosmosConfig)(cosmosConfig), overridePath = _createWebpackCosmosC.overridePath;
46
+
47
+ if (!(!overridePath || !(0, _fs.moduleExists)(overridePath))) {
48
+ _context.next = 6;
49
+ break;
50
+ }
51
+
52
+ return _context.abrupt("return", baseWebpackConfig);
53
+
54
+ case 6:
55
+ relPath = _path.default.relative(process.cwd(), overridePath);
56
+ console.log("[Cosmos] Overriding webpack config at ".concat(relPath));
57
+ webpackOverride = getDefaultExport((0, _fs.requireModule)(overridePath));
58
+ return _context.abrupt("return", webpackOverride(baseWebpackConfig, (0, _getWebpackNodeEnv.getWebpackNodeEnv)()));
59
+
60
+ case 10:
61
+ case "end":
62
+ return _context.stop();
63
+ }
64
+ }
65
+ }, _callee);
66
+ }));
67
+ return _getUserWebpackConfig.apply(this, arguments);
68
+ }
69
+
70
+ function getBaseWebpackConfig(_x3, _x4) {
71
+ return _getBaseWebpackConfig.apply(this, arguments);
72
+ } // Get "default" export from either an ES or CJS module
73
+ // More context: https://github.com/react-cosmos/react-cosmos/issues/895
74
+
75
+
76
+ function _getBaseWebpackConfig() {
77
+ _getBaseWebpackConfig = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(cosmosConfig, userWebpack) {
78
+ var rootDir, _createWebpackCosmosC2, configPath, relPath, userConfigExport, cliArgs;
79
+
80
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
81
+ while (1) {
82
+ switch (_context2.prev = _context2.next) {
83
+ case 0:
84
+ rootDir = cosmosConfig.rootDir;
85
+ _createWebpackCosmosC2 = (0, _webpack.createWebpackCosmosConfig)(cosmosConfig), configPath = _createWebpackCosmosC2.configPath;
86
+
87
+ if (!(!configPath || !(0, _fs.moduleExists)(configPath))) {
88
+ _context2.next = 5;
89
+ break;
90
+ }
91
+
92
+ console.log('[Cosmos] Using default webpack config');
93
+ return _context2.abrupt("return", (0, _getDefaultWebpackConfig.getDefaultWebpackConfig)(userWebpack, rootDir));
94
+
95
+ case 5:
96
+ relPath = _path.default.relative(process.cwd(), configPath);
97
+ console.log("[Cosmos] Using webpack config found at ".concat(relPath));
98
+ userConfigExport = getDefaultExport((0, _fs.requireModule)(configPath));
99
+ cliArgs = (0, _cli.getCliArgs)();
100
+
101
+ if (!(typeof userConfigExport === 'function')) {
102
+ _context2.next = 15;
103
+ break;
104
+ }
105
+
106
+ _context2.next = 12;
107
+ return userConfigExport(cliArgs.env || (0, _getWebpackNodeEnv.getWebpackNodeEnv)(), cliArgs);
108
+
109
+ case 12:
110
+ _context2.t0 = _context2.sent;
111
+ _context2.next = 16;
112
+ break;
113
+
114
+ case 15:
115
+ _context2.t0 = userConfigExport;
116
+
117
+ case 16:
118
+ return _context2.abrupt("return", _context2.t0);
119
+
120
+ case 17:
121
+ case "end":
122
+ return _context2.stop();
123
+ }
124
+ }
125
+ }, _callee2);
126
+ }));
127
+ return _getBaseWebpackConfig.apply(this, arguments);
128
+ }
129
+
130
+ function getDefaultExport(module) {
131
+ if (_typeof(module) === 'object' && 'default' in module) {
132
+ return module.default;
133
+ }
134
+
135
+ return module;
136
+ }
@@ -0,0 +1,2 @@
1
+ import webpack from 'webpack';
2
+ export declare function getWebpackConfigModule(webpackConfig: webpack.Configuration): webpack.ModuleOptions;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getWebpackConfigModule = getWebpackConfigModule;
7
+
8
+ var _resolveWebpackClientPath = require("./resolveWebpackClientPath");
9
+
10
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
+
12
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+
14
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
+
16
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
17
+
18
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
19
+
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
+
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+
26
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
+
28
+ function getWebpackConfigModule(webpackConfig) {
29
+ return _objectSpread(_objectSpread({}, webpackConfig.module), {}, {
30
+ rules: getRules(webpackConfig)
31
+ });
32
+ }
33
+
34
+ function getRules(_ref) {
35
+ var module = _ref.module;
36
+ var existingRules = module && module.rules || [];
37
+ return [].concat(_toConsumableArray(existingRules), [getUserDepsLoaderRule()]);
38
+ }
39
+
40
+ function getUserDepsLoaderRule() {
41
+ return {
42
+ loader: require.resolve('./userDepsLoader'),
43
+ include: (0, _resolveWebpackClientPath.resolveWebpackClientPath)('userDeps')
44
+ };
45
+ }
@@ -0,0 +1,4 @@
1
+ import webpack from 'webpack';
2
+ import { CosmosConfig } from '../../../config/shared';
3
+ export declare function getWebpackConfigResolve(cosmosConfig: CosmosConfig, webpackConfig: webpack.Configuration): webpack.ResolveOptions;
4
+ export declare function isInstanceOfResolvePlugin(plugin: webpack.ResolvePluginInstance | '...', constructorName: string): boolean;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getWebpackConfigResolve = getWebpackConfigResolve;
7
+ exports.isInstanceOfResolvePlugin = isInstanceOfResolvePlugin;
8
+
9
+ var _path = _interopRequireDefault(require("path"));
10
+
11
+ var _resolveFrom = _interopRequireDefault(require("resolve-from"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
16
+
17
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+
21
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
22
+
23
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
24
+
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
+
27
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
+
29
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
30
+
31
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
32
+
33
+ function getWebpackConfigResolve(cosmosConfig, webpackConfig) {
34
+ return removeModuleScopePlugin(resolveLocalReactDeps(cosmosConfig, webpackConfig.resolve));
35
+ }
36
+
37
+ function removeModuleScopePlugin() {
38
+ var resolve = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
39
+ var plugins = resolve.plugins;
40
+ if (!plugins) return resolve;
41
+ return _objectSpread(_objectSpread({}, resolve), {}, {
42
+ plugins: plugins.filter(function (p) {
43
+ return !isInstanceOfResolvePlugin(p, 'ModuleScopePlugin');
44
+ })
45
+ });
46
+ }
47
+
48
+ function resolveLocalReactDeps(cosmosConfig) {
49
+ var resolve = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
50
+ var rootDir = cosmosConfig.rootDir;
51
+ var alias = resolve.alias || {}; // Preserve existing React aliases (eg. when using Preact)
52
+
53
+ var reactAlias = hasAlias(alias, 'react');
54
+ var reactDomAlias = hasAlias(alias, 'react-dom');
55
+
56
+ if (reactAlias && reactDomAlias) {
57
+ console.log('[Cosmos] React and React DOM aliases found in webpack config');
58
+ return resolve;
59
+ }
60
+
61
+ if (reactAlias) {
62
+ console.log('[Cosmos] React alias found in webpack config');
63
+ } else {
64
+ var reactPath = _resolveFrom.default.silent(rootDir, 'react');
65
+
66
+ if (!reactPath) throw new Error("[Cosmos] Local dependency not found: react");
67
+ alias = addAlias(alias, 'react', _path.default.dirname(reactPath));
68
+ }
69
+
70
+ if (reactDomAlias) {
71
+ console.log('[Cosmos] React DOM alias found in webpack config');
72
+ } else {
73
+ var reactDomPath = _resolveFrom.default.silent(rootDir, 'react-dom');
74
+
75
+ if (!reactDomPath) throw new Error("[Cosmos] Local dependency not found: react-dom");
76
+ alias = addAlias(alias, 'react-dom', _path.default.dirname(reactDomPath));
77
+ }
78
+
79
+ return _objectSpread(_objectSpread({}, resolve), {}, {
80
+ alias: alias
81
+ });
82
+ }
83
+
84
+ function hasAlias(alias, name) {
85
+ if (!alias) return false;
86
+ var exactName = "".concat(name, "$");
87
+
88
+ if (Array.isArray(alias)) {
89
+ return alias.some(function (a) {
90
+ return a.name === name || a.name === exactName;
91
+ });
92
+ } else {
93
+ var keys = Object.keys(alias);
94
+ return keys.includes(name) || keys.includes(exactName);
95
+ }
96
+ }
97
+
98
+ function addAlias(alias, name, value) {
99
+ return Array.isArray(alias) ? [].concat(_toConsumableArray(alias), [{
100
+ name: name,
101
+ alias: value
102
+ }]) : _objectSpread(_objectSpread({}, alias), {}, _defineProperty({}, name, value));
103
+ }
104
+
105
+ function isInstanceOfResolvePlugin(plugin, constructorName) {
106
+ return plugin.constructor && plugin.constructor.name === constructorName;
107
+ }
@@ -0,0 +1 @@
1
+ export declare function getWebpackNodeEnv(): "production" | "development";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getWebpackNodeEnv = getWebpackNodeEnv;
7
+
8
+ function getWebpackNodeEnv() {
9
+ // Disallow non dev/prod environments, like "test" inside Jest, because
10
+ // they are not supported by webpack
11
+ return process.env.NODE_ENV === 'production' ? 'production' : 'development';
12
+ }
@@ -1,6 +1,6 @@
1
1
  import { Options as HtmlWebpackPluginOptions } from 'html-webpack-plugin';
2
2
  import webpack from 'webpack';
3
- import { CosmosConfig } from '../../../config';
3
+ import { CosmosConfig } from '../../../config/shared';
4
4
  export declare type HtmlWebpackPlugin = webpack.WebpackPluginInstance & {
5
5
  constructor: HtmlWebpackPluginConstructor;
6
6
  } & ({