creevey 0.8.0-beta.0 → 0.9.0-beta.1

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 (225) hide show
  1. package/CHANGELOG.md +5 -9
  2. package/lib/cjs/client/web/main.js +6 -6
  3. package/lib/types/cli.d.ts +1 -1
  4. package/lib/types/client/addon/Manager.d.ts +37 -37
  5. package/lib/types/client/addon/components/Addon.d.ts +8 -8
  6. package/lib/types/client/addon/components/Icons.d.ts +7 -7
  7. package/lib/types/client/addon/components/Panel.d.ts +9 -9
  8. package/lib/types/client/addon/components/TestSelect.d.ts +9 -9
  9. package/lib/types/client/addon/components/Tools.d.ts +6 -6
  10. package/lib/types/client/addon/decorator.d.ts +1 -1
  11. package/lib/types/client/addon/preset.d.ts +24 -22
  12. package/lib/types/client/addon/readyForCapture.d.ts +6 -0
  13. package/lib/types/client/addon/register.d.ts +3 -3
  14. package/lib/types/client/addon/utils.d.ts +2 -2
  15. package/lib/types/client/addon/withCreevey.d.ts +24 -13
  16. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
  17. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +25 -25
  18. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
  19. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
  20. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
  21. package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
  22. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +9 -9
  23. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +8 -8
  24. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
  25. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +17 -17
  26. package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
  27. package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
  28. package/lib/types/client/shared/helpers.d.ts +46 -46
  29. package/lib/types/client/shared/viewMode.d.ts +4 -4
  30. package/lib/types/client/web/CreeveyApp.d.ts +12 -12
  31. package/lib/types/client/web/CreeveyContext.d.ts +11 -11
  32. package/lib/types/client/web/CreeveyLoader.d.ts +3 -3
  33. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
  34. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  35. package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  36. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +13 -13
  37. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
  38. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +8 -8
  39. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
  40. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
  41. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  42. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
  43. package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
  44. package/lib/types/client/web/index.d.ts +4 -4
  45. package/lib/types/creevey.d.ts +1 -1
  46. package/lib/types/index.d.ts +4 -2
  47. package/lib/types/server/config.d.ts +4 -4
  48. package/lib/types/server/docker.d.ts +7 -7
  49. package/lib/types/server/extract.d.ts +2 -2
  50. package/lib/types/server/index.d.ts +2 -2
  51. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
  52. package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
  53. package/lib/types/server/loaders/babel/register.d.ts +5 -5
  54. package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
  55. package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
  56. package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
  57. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +2 -2
  58. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
  59. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
  60. package/lib/types/server/loaders/webpack/start.d.ts +1 -1
  61. package/lib/types/server/logger.d.ts +6 -6
  62. package/lib/types/server/master/api.d.ts +7 -7
  63. package/lib/types/server/master/index.d.ts +3 -3
  64. package/lib/types/server/master/master.d.ts +7 -6
  65. package/lib/types/server/master/pool.d.ts +31 -30
  66. package/lib/types/server/master/runner.d.ts +26 -26
  67. package/lib/types/server/master/server.d.ts +2 -2
  68. package/lib/types/server/messages.d.ts +27 -18
  69. package/lib/types/server/selenium/browser.d.ts +17 -14
  70. package/lib/types/server/selenium/index.d.ts +2 -2
  71. package/lib/types/server/selenium/selenoid.d.ts +3 -3
  72. package/lib/types/server/stories.d.ts +8 -8
  73. package/lib/types/server/storybook/entry.d.ts +18 -18
  74. package/lib/types/server/storybook/helpers.d.ts +24 -24
  75. package/lib/types/server/storybook/providers/browser.d.ts +4 -0
  76. package/lib/types/server/storybook/providers/hybrid.d.ts +4 -0
  77. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -0
  78. package/lib/types/server/testsFiles/parser.d.ts +12 -0
  79. package/lib/types/server/testsFiles/register.d.ts +2 -0
  80. package/lib/types/server/update.d.ts +2 -2
  81. package/lib/types/server/utils.d.ts +20 -19
  82. package/lib/types/server/worker/chai-image.d.ts +6 -6
  83. package/lib/types/server/worker/helpers.d.ts +8 -7
  84. package/lib/types/server/worker/index.d.ts +1 -1
  85. package/lib/types/server/worker/reporter.d.ts +8 -8
  86. package/lib/types/server/worker/worker.d.ts +4 -4
  87. package/lib/types/shared.d.ts +16 -4
  88. package/lib/types/types.d.ts +489 -459
  89. package/package.json +16 -7
  90. package/storybook-static/stories.json +21 -0
  91. package/types/mocha.d.ts +1 -0
  92. package/lib/cjs/cli.js +0 -5
  93. package/lib/cjs/client/addon/Manager.js +0 -413
  94. package/lib/cjs/client/addon/components/Addon.js +0 -76
  95. package/lib/cjs/client/addon/components/Icons.js +0 -42
  96. package/lib/cjs/client/addon/components/Panel.js +0 -68
  97. package/lib/cjs/client/addon/components/TestSelect.js +0 -63
  98. package/lib/cjs/client/addon/components/Tools.js +0 -114
  99. package/lib/cjs/client/addon/decorator.js +0 -11
  100. package/lib/cjs/client/addon/preset.js +0 -80
  101. package/lib/cjs/client/addon/register.js +0 -96
  102. package/lib/cjs/client/addon/utils.js +0 -38
  103. package/lib/cjs/client/addon/withCreevey.js +0 -284
  104. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -85
  105. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -88
  106. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -176
  107. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -178
  108. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -110
  109. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  110. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -46
  111. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -98
  112. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -78
  113. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -144
  114. package/lib/cjs/client/shared/components/ResultsPage.js +0 -173
  115. package/lib/cjs/client/shared/creeveyClientApi.js +0 -103
  116. package/lib/cjs/client/shared/helpers.js +0 -482
  117. package/lib/cjs/client/shared/viewMode.js +0 -17
  118. package/lib/cjs/client/web/index.html +0 -19
  119. package/lib/cjs/creevey.js +0 -71
  120. package/lib/cjs/index.js +0 -44
  121. package/lib/cjs/server/config.js +0 -92
  122. package/lib/cjs/server/docker.js +0 -150
  123. package/lib/cjs/server/extract.js +0 -43
  124. package/lib/cjs/server/index.js +0 -85
  125. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
  126. package/lib/cjs/server/loaders/babel/helpers.js +0 -479
  127. package/lib/cjs/server/loaders/babel/register.js +0 -126
  128. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  129. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  130. package/lib/cjs/server/loaders/webpack/compile.js +0 -286
  131. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
  132. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
  133. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  134. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  135. package/lib/cjs/server/logger.js +0 -47
  136. package/lib/cjs/server/master/api.js +0 -71
  137. package/lib/cjs/server/master/index.js +0 -152
  138. package/lib/cjs/server/master/master.js +0 -56
  139. package/lib/cjs/server/master/pool.js +0 -206
  140. package/lib/cjs/server/master/runner.js +0 -294
  141. package/lib/cjs/server/master/server.js +0 -57
  142. package/lib/cjs/server/messages.js +0 -154
  143. package/lib/cjs/server/selenium/browser.js +0 -582
  144. package/lib/cjs/server/selenium/index.js +0 -31
  145. package/lib/cjs/server/selenium/selenoid.js +0 -174
  146. package/lib/cjs/server/stories.js +0 -167
  147. package/lib/cjs/server/storybook/entry.js +0 -68
  148. package/lib/cjs/server/storybook/helpers.js +0 -165
  149. package/lib/cjs/server/storybook/nodejs-provider.js +0 -220
  150. package/lib/cjs/server/update.js +0 -83
  151. package/lib/cjs/server/utils.js +0 -178
  152. package/lib/cjs/server/worker/chai-image.js +0 -142
  153. package/lib/cjs/server/worker/helpers.js +0 -73
  154. package/lib/cjs/server/worker/index.js +0 -15
  155. package/lib/cjs/server/worker/reporter.js +0 -120
  156. package/lib/cjs/server/worker/worker.js +0 -266
  157. package/lib/cjs/shared.js +0 -35
  158. package/lib/cjs/types.js +0 -69
  159. package/lib/esm/cli.js +0 -4
  160. package/lib/esm/client/addon/Manager.js +0 -397
  161. package/lib/esm/client/addon/components/Addon.js +0 -58
  162. package/lib/esm/client/addon/components/Icons.js +0 -27
  163. package/lib/esm/client/addon/components/Panel.js +0 -49
  164. package/lib/esm/client/addon/components/TestSelect.js +0 -49
  165. package/lib/esm/client/addon/components/Tools.js +0 -91
  166. package/lib/esm/client/addon/decorator.js +0 -2
  167. package/lib/esm/client/addon/preset.js +0 -55
  168. package/lib/esm/client/addon/register.js +0 -75
  169. package/lib/esm/client/addon/utils.js +0 -31
  170. package/lib/esm/client/addon/withCreevey.js +0 -270
  171. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -64
  172. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -65
  173. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -152
  174. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -154
  175. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -89
  176. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  177. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -32
  178. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -84
  179. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -64
  180. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -120
  181. package/lib/esm/client/shared/components/ResultsPage.js +0 -143
  182. package/lib/esm/client/shared/creeveyClientApi.js +0 -94
  183. package/lib/esm/client/shared/helpers.js +0 -424
  184. package/lib/esm/client/shared/viewMode.js +0 -6
  185. package/lib/esm/creevey.js +0 -56
  186. package/lib/esm/index.js +0 -4
  187. package/lib/esm/server/config.js +0 -71
  188. package/lib/esm/server/docker.js +0 -123
  189. package/lib/esm/server/extract.js +0 -30
  190. package/lib/esm/server/index.js +0 -65
  191. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
  192. package/lib/esm/server/loaders/babel/helpers.js +0 -462
  193. package/lib/esm/server/loaders/babel/register.js +0 -105
  194. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  195. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  196. package/lib/esm/server/loaders/webpack/compile.js +0 -263
  197. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
  198. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
  199. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  200. package/lib/esm/server/loaders/webpack/start.js +0 -27
  201. package/lib/esm/server/logger.js +0 -20
  202. package/lib/esm/server/master/api.js +0 -60
  203. package/lib/esm/server/master/index.js +0 -131
  204. package/lib/esm/server/master/master.js +0 -37
  205. package/lib/esm/server/master/pool.js +0 -187
  206. package/lib/esm/server/master/runner.js +0 -272
  207. package/lib/esm/server/master/server.js +0 -37
  208. package/lib/esm/server/messages.js +0 -128
  209. package/lib/esm/server/selenium/browser.js +0 -554
  210. package/lib/esm/server/selenium/index.js +0 -2
  211. package/lib/esm/server/selenium/selenoid.js +0 -151
  212. package/lib/esm/server/stories.js +0 -147
  213. package/lib/esm/server/storybook/entry.js +0 -44
  214. package/lib/esm/server/storybook/helpers.js +0 -106
  215. package/lib/esm/server/storybook/nodejs-provider.js +0 -200
  216. package/lib/esm/server/update.js +0 -65
  217. package/lib/esm/server/utils.js +0 -141
  218. package/lib/esm/server/worker/chai-image.js +0 -130
  219. package/lib/esm/server/worker/helpers.js +0 -64
  220. package/lib/esm/server/worker/index.js +0 -1
  221. package/lib/esm/server/worker/reporter.js +0 -98
  222. package/lib/esm/server/worker/worker.js +0 -236
  223. package/lib/esm/shared.js +0 -22
  224. package/lib/esm/types.js +0 -40
  225. package/lib/types/server/storybook/nodejs-provider.d.ts +0 -5
@@ -1,65 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.addSvelteHook = void 0;
7
-
8
- var _pirates = require("pirates");
9
-
10
- var _logger = require("../../logger");
11
-
12
- var _helpers = require("../../storybook/helpers");
13
-
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
-
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
-
18
- const addSvelteHook = async getStory => {
19
- const {
20
- compile,
21
- preprocess
22
- } = await Promise.resolve(`${(0, _helpers.resolveFromStorybook)('svelte/compiler')}`).then(s => _interopRequireWildcard(require(s)));
23
- const {
24
- default: svelteCSFLoader
25
- } = await Promise.resolve(`${(0, _helpers.resolveFromStorybook)('@storybook/addon-svelte-csf/dist/cjs/parser/svelte-stories-loader')}`).then(s => _interopRequireWildcard(require(s)));
26
- (0, _pirates.addHook)((code, filename) => {
27
- var _options$compilerOpti;
28
-
29
- const story = getStory();
30
- const config = _helpers.storybookConfigRef.current;
31
- const {
32
- svelteOptions: options = {}
33
- } = config; // NOTE: Copy-paste compiling code from https://github.com/sveltejs/svelte-loader/blob/3c4d66d/index.js
34
-
35
- const compileOptions = {
36
- filename,
37
- css: false,
38
- ...options.compilerOptions,
39
- format: ((_options$compilerOpti = options.compilerOptions) === null || _options$compilerOpti === void 0 ? void 0 : _options$compilerOpti.format) || 'esm'
40
- }; // TODO Can't use preprocess here because it async and hook must be sync
41
- // The only way to fix it, load stories by using `import()` instead of require
42
- // And write native nodejs `.svelte` resolver https://nodejs.org/api/esm.html#esm_resolve_specifier_context_defaultresolve
43
- // const processed = await preprocess(code, options.preprocess, { filename });
44
-
45
- void preprocess;
46
- const {
47
- js: {
48
- code: compiledCode
49
- },
50
- warnings
51
- } = compile(code, compileOptions);
52
- warnings.forEach(warning => _logger.logger.warn(warning));
53
- if (!story || !filename.startsWith(story)) return compiledCode;
54
- return svelteCSFLoader.call({
55
- _module: {
56
- resource: filename
57
- }
58
- }, compiledCode); // TODO Extract parameters from `create_fragment` that created by compiler
59
- // TODO Write babel transformation for it
60
- }, {
61
- exts: ['.svelte']
62
- });
63
- };
64
-
65
- exports.addSvelteHook = addSvelteHook;
@@ -1,286 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = compile;
7
-
8
- var _fs = require("fs");
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _webpack = _interopRequireDefault(require("webpack"));
13
-
14
- var _webpackNodeExternals = _interopRequireDefault(require("webpack-node-externals"));
15
-
16
- var _utils = require("../../utils");
17
-
18
- var _helpers = require("../../storybook/helpers");
19
-
20
- var _types = require("../../../types");
21
-
22
- var _messages = require("../../messages");
23
-
24
- var _logger = require("../../logger");
25
-
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
- let isInitiated = false;
33
- let dumpStats = _types.noop;
34
-
35
- function handleWebpackBuild(error, stats) {
36
- dumpStats(stats);
37
-
38
- if (error || !stats || stats.hasErrors()) {
39
- (0, _messages.emitWebpackMessage)({
40
- type: isInitiated ? 'rebuild failed' : 'fail'
41
- });
42
- console.error('=> Failed to build the Storybook preview bundle');
43
- if (error) return console.error(error.message);
44
-
45
- if (stats && (stats.hasErrors() || stats.hasWarnings())) {
46
- const {
47
- warnings,
48
- errors
49
- } = stats.toJson();
50
- errors.forEach(e => console.error(e));
51
- warnings.forEach(e => console.error(e));
52
- return;
53
- }
54
- }
55
-
56
- stats.toJson().warnings.forEach(e => console.warn(e));
57
-
58
- if (!isInitiated) {
59
- isInitiated = true;
60
- (0, _messages.emitWebpackMessage)({
61
- type: 'success'
62
- });
63
- } else {
64
- (0, _messages.emitWebpackMessage)({
65
- type: 'rebuild succeeded'
66
- });
67
- }
68
-
69
- return;
70
- }
71
-
72
- async function applyMdxLoader(config, areAddonsRemoved, loader) {
73
- const {
74
- mdxLoaders
75
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./mdx-loader')));
76
- mdxLoaders.splice(1, 0, loader);
77
- const mdxRegexps = (0, _helpers.isStorybookVersionLessThan)(6, 2) ? [/\.(stories|story).mdx$/, /\.(stories|story)\.mdx$/] : [/(stories|story)\.mdx$/]; // NOTE replace md/mdx to null loader
78
-
79
- const mdRegexps = [/\.md$/, /\.mdx$/];
80
-
81
- if (areAddonsRemoved) {
82
- var _config$module2;
83
-
84
- mdRegexps.forEach(test => {
85
- var _config$module;
86
-
87
- return (_config$module = config.module) === null || _config$module === void 0 ? void 0 : _config$module.rules.unshift({
88
- test,
89
- exclude: /(stories|story)\.mdx$/,
90
- use: require.resolve('null-loader')
91
- });
92
- });
93
- (_config$module2 = config.module) === null || _config$module2 === void 0 ? void 0 : _config$module2.rules.unshift({
94
- test: /(stories|story)\.mdx$/,
95
- use: mdxLoaders
96
- });
97
- } else {
98
- var _config$module3, _config$module4, _config$module$rules$, _config$module5;
99
-
100
- // NOTE Exclude addons' entry points
101
- config.entry = Array.isArray(config.entry) ? config.entry.filter(entry => !/@storybook(\/|\\)addon/.test(entry)) : config.entry;
102
- (_config$module3 = config.module) === null || _config$module3 === void 0 ? void 0 : _config$module3.rules.filter(rule => mdRegexps.some(test => {
103
- var _rule$test;
104
-
105
- return ((_rule$test = rule.test) === null || _rule$test === void 0 ? void 0 : _rule$test.toString()) == test.toString();
106
- })).forEach(rule => rule.use = require.resolve('null-loader'));
107
- (_config$module4 = config.module) === null || _config$module4 === void 0 ? void 0 : _config$module4.rules.filter(rule => mdxRegexps.some(test => {
108
- var _rule$test2;
109
-
110
- return ((_rule$test2 = rule.test) === null || _rule$test2 === void 0 ? void 0 : _rule$test2.toString()) == test.toString();
111
- })).forEach(rule => rule.use = mdxLoaders); // NOTE Exclude source-loader
112
-
113
- config.module = { ...config.module,
114
- rules: (_config$module$rules$ = (_config$module5 = config.module) === null || _config$module5 === void 0 ? void 0 : _config$module5.rules.filter(rule => !(typeof rule.loader == 'string' && /@storybook(\/|\\)source-loader/.test(rule.loader)))) !== null && _config$module$rules$ !== void 0 ? _config$module$rules$ : []
115
- };
116
- }
117
- }
118
-
119
- async function getWebpackConfigForStorybook_pre6_2(framework, configDir, outputDir) {
120
- const {
121
- default: storybookFrameworkOptions
122
- } = await Promise.resolve(`${(0, _helpers.resolveFromStorybook)(`@storybook/${framework}/dist/server/options`)}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line node/no-missing-import, @typescript-eslint/no-unsafe-assignment, import/no-unresolved
123
-
124
- const {
125
- default: getConfig
126
- } = await Promise.resolve(`${(0, _helpers.resolveFromStorybook)('@storybook/core/dist/server/config')}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
127
-
128
- return getConfig({
129
- // NOTE: 6.1 storybook don't support quite any more. But we still have older versions
130
- quiet: true,
131
- configType: 'PRODUCTION',
132
- outputDir,
133
- cache: {},
134
- // eslint-disable-next-line node/no-missing-require
135
- corePresets: [(0, _helpers.resolveFromStorybook)('@storybook/core/dist/server/preview/preview-preset')],
136
- overridePresets: [...((0, _helpers.hasDocsAddon)() ? [require.resolve('./mdx-loader')] : []), // eslint-disable-next-line node/no-missing-require
137
- (0, _helpers.resolveFromStorybook)('@storybook/core/dist/server/preview/custom-webpack-preset')],
138
- ...storybookFrameworkOptions,
139
- configDir
140
- });
141
- }
142
-
143
- async function getWebpackConfigForStorybook_6_2(framework, configDir, outputDir) {
144
- const {
145
- default: storybookFrameworkOptions
146
- } = await Promise.resolve(`${(0, _helpers.resolveFromStorybook)(`@storybook/${framework}/dist/cjs/server/options`)}`).then(s => _interopRequireWildcard(require(s)));
147
- const options = {
148
- quiet: true,
149
- configType: 'PRODUCTION',
150
- outputDir,
151
- configDir,
152
- ...storybookFrameworkOptions
153
- }; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
154
-
155
- const {
156
- getPreviewBuilder
157
- } = await Promise.resolve(`${(0, _helpers.resolveFromStorybook)('@storybook/core-server/dist/cjs/utils/get-preview-builder')}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
158
-
159
- const {
160
- loadAllPresets
161
- } = await Promise.resolve(`${(0, _helpers.resolveFromStorybook)('@storybook/core-common')}`).then(s => _interopRequireWildcard(require(s))); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
162
-
163
- const builder = await getPreviewBuilder(configDir); // NOTE: Copy-paste from storybook/lib/core-server/src/build-dev.ts
164
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
165
-
166
- const presets = loadAllPresets({
167
- corePresets: [// eslint-disable-next-line node/no-missing-require
168
- (0, _helpers.resolveFromStorybook)('@storybook/core-server/dist/cjs/presets/common-preset'), // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
169
- ...builder.corePresets, // eslint-disable-next-line node/no-missing-require
170
- (0, _helpers.resolveFromStorybook)('@storybook/core-server/dist/cjs/presets/babel-cache-preset')],
171
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
172
- overridePresets: [...((0, _helpers.hasDocsAddon)() ? [require.resolve('./mdx-loader')] : []), // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
173
- ...builder.overridePresets],
174
- ...options
175
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
176
-
177
- return builder.getConfig({ ...options,
178
- presets
179
- });
180
- }
181
-
182
- async function removeAddons() {
183
- try {
184
- var _config$core;
185
-
186
- const config = await (0, _helpers.importStorybookConfig)();
187
-
188
- if (((_config$core = config.core) === null || _config$core === void 0 ? void 0 : _config$core.builder) == 'webpack5') {
189
- _logger.logger.warn("Be aware Creevey doesn't fully support webpack@5, some feature might not work well");
190
- }
191
-
192
- if (config.addons && config.stories) {
193
- config.addons = [];
194
- return true;
195
- }
196
- } catch (_) {
197
- /* noop */
198
- }
199
-
200
- return false;
201
- }
202
-
203
- async function compile(config, {
204
- debug,
205
- ui
206
- }) {
207
- var _storybookWebpackConf, _storybookWebpackConf2, _storybookWebpackConf3, _extensions$map, _storybookWebpackConf4, _storybookWebpackConf5, _storybookWebpackConf6;
208
-
209
- const storybookFramework = (0, _helpers.getStorybookFramework)();
210
-
211
- const outputDir = _path.default.join((0, _utils.getCreeveyCache)(), 'storybook');
212
-
213
- try {
214
- (0, _fs.rmdirSync)(outputDir, {
215
- recursive: true
216
- });
217
- } catch (_) {
218
- /* noop */
219
- }
220
-
221
- const creeveyLoader = {
222
- loader: require.resolve('./creevey-loader'),
223
- options: {
224
- debug,
225
- storybookDir: config.storybookDir
226
- }
227
- };
228
- process.env.NODE_ENV = 'production'; // NOTE Remove addons by monkey patching, only for new config file (main.js)
229
-
230
- const areAddonsRemoved = await removeAddons();
231
- const getWebpackConfig = (0, _helpers.isStorybookVersionLessThan)(6, 2) ? getWebpackConfigForStorybook_pre6_2 : getWebpackConfigForStorybook_6_2;
232
- const storybookWebpackConfig = await getWebpackConfig(storybookFramework, config.storybookDir, outputDir);
233
- const extensions = (_storybookWebpackConf = (_storybookWebpackConf2 = storybookWebpackConfig.resolve) === null || _storybookWebpackConf2 === void 0 ? void 0 : _storybookWebpackConf2.extensions) !== null && _storybookWebpackConf !== void 0 ? _storybookWebpackConf : _utils.extensions;
234
- delete storybookWebpackConfig.optimization;
235
- storybookWebpackConfig.devtool = false;
236
- storybookWebpackConfig.performance = false;
237
- storybookWebpackConfig.profile = debug;
238
- storybookWebpackConfig.mode = 'development';
239
- storybookWebpackConfig.target = 'node';
240
- storybookWebpackConfig.output = { ...storybookWebpackConfig.output,
241
- filename: 'main.js'
242
- }; // NOTE Add hack to allow stories HMR work in nodejs
243
-
244
- Array.isArray(storybookWebpackConfig.entry) && storybookWebpackConfig.entry.unshift(require.resolve('./dummy-hmr')); // NOTE apply creevey loader to output from mdx loader
245
-
246
- if ((0, _helpers.hasDocsAddon)()) await applyMdxLoader(storybookWebpackConfig, areAddonsRemoved, creeveyLoader); // NOTE Add creevey-loader to cut off all unnecessary code except stories meta and tests
247
-
248
- (_storybookWebpackConf3 = storybookWebpackConfig.module) === null || _storybookWebpackConf3 === void 0 ? void 0 : _storybookWebpackConf3.rules.unshift({
249
- enforce: 'pre',
250
- test: new RegExp(`\\.(${(_extensions$map = extensions.map(x => x.slice(1))) === null || _extensions$map === void 0 ? void 0 : _extensions$map.join('|')})$`),
251
- exclude: /node_modules/,
252
- use: creeveyLoader
253
- });
254
- const aliases = (_storybookWebpackConf4 = (_storybookWebpackConf5 = storybookWebpackConfig.resolve) === null || _storybookWebpackConf5 === void 0 ? void 0 : _storybookWebpackConf5.alias) !== null && _storybookWebpackConf4 !== void 0 ? _storybookWebpackConf4 : {};
255
- const excluded = ['@storybook/addons', '@storybook/api', '@storybook/channel-postmessage', '@storybook/channels', '@storybook/client-api', '@storybook/client-logger', '@storybook/components', '@storybook/core-events', '@storybook/router', '@storybook/semver', '@storybook/theming']; // NOTE Exclude from bundle all modules from node_modules
256
-
257
- storybookWebpackConfig.externals = [...Object.entries(aliases).filter(([alias]) => excluded.includes(alias)).map(([, aliasPath]) => ({
258
- [aliasPath]: `commonjs ${aliasPath}`
259
- })), // NOTE Replace `@storybook/${framework}` to ../../storybook.ts
260
- {
261
- [`@storybook/${storybookFramework}`]: `commonjs ${require.resolve('../../storybook/entry')}`
262
- }, (0, _webpackNodeExternals.default)({
263
- includeAbsolutePaths: true,
264
- allowlist: /(webpack|dummy-hmr|generated-stories-entry|generated-config-entry|generated-other-entry)/
265
- }), // TODO Don't work well with monorepos
266
- (0, _webpackNodeExternals.default)({
267
- modulesDir: (0, _helpers.resolveFromStorybook)('@storybook/core').split('@storybook')[0],
268
- includeAbsolutePaths: true,
269
- allowlist: /(webpack|dummy-hmr|generated-stories-entry|generated-config-entry|generated-other-entry)/
270
- })]; // NOTE Exclude some plugins
271
-
272
- const excludedPlugins = ['DocgenPlugin', 'ForkTsCheckerWebpackPlugin'];
273
- storybookWebpackConfig.plugins = (_storybookWebpackConf6 = storybookWebpackConfig.plugins) === null || _storybookWebpackConf6 === void 0 ? void 0 : _storybookWebpackConf6.filter(plugin => !excludedPlugins.includes(plugin.constructor.name));
274
- const storybookWebpackCompiler = (0, _webpack.default)(storybookWebpackConfig);
275
-
276
- if (debug) {
277
- dumpStats = stats => (0, _fs.writeFile)(_path.default.join(config.reportDir, 'stats.json'), JSON.stringify(stats.toJson(), null, 2), _types.noop);
278
- }
279
-
280
- if (ui) {
281
- const watcher = storybookWebpackCompiler.watch({}, handleWebpackBuild);
282
- (0, _messages.subscribeOn)('shutdown', () => watcher.close(_types.noop));
283
- } else {
284
- storybookWebpackCompiler.run(handleWebpackBuild);
285
- }
286
- }
@@ -1,174 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _codeFrame = require("@babel/code-frame");
11
-
12
- var _loaderUtils = require("loader-utils");
13
-
14
- var _schemaUtils = require("schema-utils");
15
-
16
- var _parser = require("@babel/parser");
17
-
18
- var _traverse = _interopRequireDefault(require("@babel/traverse"));
19
-
20
- var _generator = _interopRequireDefault(require("@babel/generator"));
21
-
22
- var _helpers = require("../../storybook/helpers");
23
-
24
- var _helpers2 = require("../babel/helpers");
25
-
26
- var _logger = require("../../logger");
27
-
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
- function transform(ast) {
31
- (0, _traverse.default)(ast, { ..._helpers2.commonVisitor,
32
- ...(fileType == _helpers2.FileType.Preview ? _helpers2.previewVisitor : undefined),
33
- ...(fileType == _helpers2.FileType.Story ? _helpers2.storyVisitor : undefined),
34
- ...(isMDX ? _helpers2.mdxVisitor : undefined)
35
- }, undefined, {
36
- resourcePath,
37
- fileType,
38
- isMDX,
39
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
- visitedTopPaths: new Set(),
41
- visitedBindings: new Set(),
42
- reexportedStories
43
- });
44
- return (0, _generator.default)(ast, {
45
- retainLines: true
46
- }).code;
47
- }
48
-
49
- function toPosix(filePath) {
50
- return filePath.split(_path.default.win32.sep).join(_path.default.posix.sep).replace(/^[a-z]:/i, '');
51
- }
52
-
53
- function getIssuerResource(context) {
54
- var _context$_module, _context$_module$issu;
55
-
56
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
57
- return (_context$_module = context._module) === null || _context$_module === void 0 ? void 0 : (_context$_module$issu = _context$_module.issuer) === null || _context$_module$issu === void 0 ? void 0 : _context$_module$issu.resource;
58
- }
59
-
60
- function getIssuerConstructorName(context) {
61
- var _context$_module2, _context$_module2$iss, _context$_module2$iss2;
62
-
63
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
64
- return (_context$_module2 = context._module) === null || _context$_module2 === void 0 ? void 0 : (_context$_module2$iss = _context$_module2.issuer) === null || _context$_module2$iss === void 0 ? void 0 : (_context$_module2$iss2 = _context$_module2$iss.constructor) === null || _context$_module2$iss2 === void 0 ? void 0 : _context$_module2$iss2.name;
65
- }
66
-
67
- function isEntry(context) {
68
- return getIssuerConstructorName(context) == 'MultiModule';
69
- }
70
-
71
- function isPreview(context, options) {
72
- const {
73
- dir: resourceDir,
74
- name: resourceName
75
- } = _path.default.posix.parse(toPosix(context.resourcePath));
76
-
77
- const storybookDir = typeof options.storybookDir == 'string' ? toPosix(options.storybookDir) : '';
78
- const isConfigFile = resourceDir == storybookDir && (resourceName == 'preview' || resourceName == 'config');
79
-
80
- if ((0, _helpers.isStorybookVersionLessThan)(6)) {
81
- return isEntry(context) && isConfigFile;
82
- }
83
-
84
- const issuerResource = getIssuerResource(context);
85
- return Boolean(issuerResource && entries.has(issuerResource) && isConfigFile);
86
- }
87
-
88
- function isStoryFile(context) {
89
- var _reexportedStories$ge, _context$_module3;
90
-
91
- const issuerResource = getIssuerResource(context);
92
- return getIssuerConstructorName(context) == 'ContextModule' || // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
93
- Boolean(issuerResource && ((_reexportedStories$ge = reexportedStories.get(issuerResource)) === null || _reexportedStories$ge === void 0 ? void 0 : _reexportedStories$ge.has((_context$_module3 = context._module) === null || _context$_module3 === void 0 ? void 0 : _context$_module3.rawRequest))) || issuerResource == previewPath && _path.default.posix.parse(toPosix(previewPath)).name == 'config';
94
- } // NOTE: non-story files before preview => issuer.resource is entry
95
-
96
-
97
- const schema = {
98
- type: 'object',
99
- properties: {
100
- debug: {
101
- type: 'boolean'
102
- },
103
- storybookDir: {
104
- type: 'string'
105
- }
106
- }
107
- };
108
- let fileType = _helpers2.FileType.Invalid;
109
- let isMDX = false;
110
- let previewPath = '';
111
- let resourcePath = '';
112
- const entries = new Set();
113
- const stories = new Set();
114
- const reexportedStories = new Map();
115
- const isTest = process.env.__CREEVEY_ENV__ == 'test';
116
- const defaultOptions = {
117
- debug: isTest,
118
- storybookDir: process.cwd()
119
- };
120
-
121
- function _default(source) {
122
- const options = this ? (0, _loaderUtils.getOptions)(this) || defaultOptions : defaultOptions;
123
- (0, _schemaUtils.validate)(schema, options, {
124
- name: 'Creevey Stories Loader'
125
- });
126
- fileType = _helpers2.FileType.Invalid;
127
-
128
- if (this) {
129
- const issuerResource = getIssuerResource(this);
130
- resourcePath = this.resourcePath;
131
-
132
- if (isStoryFile(this)) {
133
- fileType = _helpers2.FileType.Story;
134
- isMDX = _path.default.parse(resourcePath).ext == '.mdx';
135
- stories.add(this.resourcePath);
136
- } else if (isPreview(this, options)) {
137
- fileType = _helpers2.FileType.Preview;
138
- previewPath = this.resourcePath;
139
- } else if (isEntry(this)) {
140
- fileType = _helpers2.FileType.Entry;
141
- entries.add(this.resourcePath);
142
- return source;
143
- } else if (issuerResource && stories.has(issuerResource) && options.debug) {
144
- _logger.logger.warn('Trying to transform possible non-story file', this.resourcePath, 'Please check the', issuerResource); // TODO Add link to docs, how creevey works and what user should do in this situation
145
-
146
- }
147
- }
148
-
149
- if (isTest && !Number.isNaN(Number(process.env.CREEVEY_LOADER_FILE_TYPE))) {
150
- fileType = Number(process.env.CREEVEY_LOADER_FILE_TYPE);
151
- }
152
-
153
- try {
154
- const ast = (0, _parser.parse)(source, {
155
- sourceType: 'module',
156
- plugins: ['classProperties', 'decorators-legacy', 'jsx', 'typescript']
157
- });
158
- return transform(ast);
159
- } catch (error) {
160
- this && _logger.logger.warn('Failed to transform file', this.resourcePath);
161
-
162
- if (typeof error == 'object' && error && 'loc' in error) {
163
- _logger.logger.warn((0, _codeFrame.codeFrameColumns)(source, {
164
- start: error.loc
165
- }, {
166
- highlightCode: true
167
- }));
168
- } else {
169
- _logger.logger.warn(error);
170
- }
171
-
172
- return source;
173
- }
174
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _global$__CREEVEY_HMR;
9
-
10
- global.__CREEVEY_HMR_DATA__ = (_global$__CREEVEY_HMR = global.__CREEVEY_HMR_DATA__) !== null && _global$__CREEVEY_HMR !== void 0 ? _global$__CREEVEY_HMR : {};
11
- Object.entries(__webpack_require__.m).forEach(([key, moduleFn]) => {
12
- __webpack_require__.m[key] = new Proxy(moduleFn, {
13
- apply(target, thisArg, args) {
14
- var _global$__CREEVEY_HMR2;
15
-
16
- const [module] = args;
17
- const {
18
- data
19
- } = global.__CREEVEY_HMR_DATA__[module.i] = (_global$__CREEVEY_HMR2 = global.__CREEVEY_HMR_DATA__[module.i]) !== null && _global$__CREEVEY_HMR2 !== void 0 ? _global$__CREEVEY_HMR2 : {
20
- data: {}
21
- };
22
- Object.assign(module, {
23
- hot: {
24
- accept() {
25
- /* noop */
26
- },
27
-
28
- get data() {
29
- return data;
30
- },
31
-
32
- dispose(callback) {
33
- global.__CREEVEY_HMR_DATA__[module.i].callback = callback;
34
- }
35
-
36
- }
37
- });
38
- return target.apply(thisArg, args);
39
- }
40
-
41
- });
42
- });
43
- var _default = {};
44
- exports.default = _default;
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.webpack = webpack;
7
- exports.mdxOptions = exports.mdxLoaders = void 0;
8
-
9
- var _helpers = require("../../storybook/helpers");
10
-
11
- /* eslint-disable */
12
-
13
- /* Copy-paste from storybook/addons/docs/src/frameworks/common/preset.ts */
14
- let mdxLoaders = []; // for frameworks that are not working with react, we need to configure
15
- // the jsx to transpile mdx, for now there will be a flag for that
16
- // for more complex solutions we can find alone that we need to add '@babel/plugin-transform-react-jsx'
17
-
18
- exports.mdxLoaders = mdxLoaders;
19
-
20
- function createBabelOptions({
21
- babelOptions,
22
- mdxBabelOptions,
23
- configureJSX
24
- }) {
25
- const babelPlugins = (mdxBabelOptions === null || mdxBabelOptions === void 0 ? void 0 : mdxBabelOptions.plugins) || (babelOptions === null || babelOptions === void 0 ? void 0 : babelOptions.plugins) || [];
26
- const jsxPlugin = [(0, _helpers.resolveFromStorybookAddonDocs)('@babel/plugin-transform-react-jsx'), {
27
- pragma: 'React.createElement',
28
- pragmaFrag: 'React.Fragment'
29
- }];
30
- const plugins = configureJSX ? [...babelPlugins, jsxPlugin] : babelPlugins;
31
- return {
32
- // don't use the root babelrc by default (users can override this in mdxBabelOptions)
33
- babelrc: false,
34
- configFile: false,
35
- ...babelOptions,
36
- ...mdxBabelOptions,
37
- plugins
38
- };
39
- }
40
-
41
- const remarkPlugins = ['remark-slug', 'remark-external-links'].map(plugin => require((0, _helpers.resolveFromStorybookAddonDocs)(plugin)));
42
-
43
- const createCompiler = require((0, _helpers.resolveFromStorybook)('@storybook/addon-docs/mdx-compiler-plugin'));
44
-
45
- const mdxOptions = (options = {}) => ({
46
- compilers: [createCompiler(options)],
47
- remarkPlugins
48
- });
49
-
50
- exports.mdxOptions = mdxOptions;
51
-
52
- function webpack(webpackConfig = {}, options = {}) {
53
- // it will reuse babel options that are already in use in storybook
54
- // also, these babel options are chained with other presets.
55
- const {
56
- babelOptions,
57
- mdxBabelOptions,
58
- configureJSX = true
59
- } = options;
60
- exports.mdxLoaders = mdxLoaders = [{
61
- loader: (0, _helpers.isStorybookVersionLessThan)(6, 2) ? (0, _helpers.resolveFromStorybookCore)('babel-loader') : (0, _helpers.resolveFromStorybookBuilderWebpack4)('babel-loader'),
62
- options: createBabelOptions({
63
- babelOptions,
64
- mdxBabelOptions,
65
- configureJSX
66
- })
67
- }, {
68
- loader: (0, _helpers.resolveFromStorybookAddonDocs)('@mdx-js/loader'),
69
- options: mdxOptions(options)
70
- }];
71
- return webpackConfig;
72
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.startWebpackCompiler = startWebpackCompiler;
7
-
8
- var _cluster = _interopRequireDefault(require("cluster"));
9
-
10
- var _types = require("../../../types");
11
-
12
- var _messages = require("../../messages");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- function startWebpackCompiler() {
17
- return new Promise((resolve, reject) => {
18
- _cluster.default.setupMaster({
19
- args: ['--webpack', ...process.argv.slice(2)]
20
- });
21
-
22
- const webpackCompiler = _cluster.default.fork();
23
-
24
- webpackCompiler.on('message', message => {
25
- if (!(0, _types.isWebpackMessage)(message)) return;
26
- Object.values(_cluster.default.workers).filter(worker => worker != webpackCompiler).forEach(worker => worker === null || worker === void 0 ? void 0 : worker.send(message));
27
-
28
- switch (message.type) {
29
- case 'success':
30
- return resolve();
31
-
32
- case 'fail':
33
- return reject();
34
-
35
- case 'rebuild succeeded':
36
- case 'rebuild failed':
37
- return (0, _messages.emitWebpackMessage)(message);
38
- }
39
- });
40
- });
41
- }