creevey 0.9.0-beta.13 → 0.9.0-beta.14
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.
- package/.yarn/install-state.gz +0 -0
- package/.yarnrc.yml +1 -0
- package/lib/cjs/cli.js +1 -0
- package/lib/cjs/client/addon/Manager.js +151 -223
- package/lib/cjs/client/addon/components/Addon.js +2 -9
- package/lib/cjs/client/addon/components/Icons.js +1 -7
- package/lib/cjs/client/addon/components/Panel.js +5 -18
- package/lib/cjs/client/addon/components/TestSelect.js +12 -25
- package/lib/cjs/client/addon/components/Tools.js +17 -28
- package/lib/cjs/client/addon/decorator.js +1 -4
- package/lib/cjs/client/addon/index.js +0 -4
- package/lib/cjs/client/addon/preset.js +3 -12
- package/lib/cjs/client/addon/preview.js +1 -4
- package/lib/cjs/client/addon/readyForCapture.js +1 -4
- package/lib/cjs/client/addon/register.js +11 -26
- package/lib/cjs/client/addon/utils.js +1 -9
- package/lib/cjs/client/addon/withCreevey.js +55 -134
- package/lib/cjs/client/shared/components/ImagesView/BlendView.js +5 -17
- package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +8 -24
- package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +7 -23
- package/lib/cjs/client/shared/components/ImagesView/SlideView.js +7 -22
- package/lib/cjs/client/shared/components/ImagesView/SwapView.js +5 -17
- package/lib/cjs/client/shared/components/ImagesView/index.js +0 -5
- package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +1 -8
- package/lib/cjs/client/shared/components/PageFooter/Paging.js +2 -19
- package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +21 -17
- package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +5 -24
- package/lib/cjs/client/shared/components/ResultsPage.js +9 -37
- package/lib/cjs/client/shared/creeveyClientApi.js +3 -13
- package/lib/cjs/client/shared/helpers.js +21 -75
- package/lib/cjs/client/shared/viewMode.js +2 -6
- package/lib/cjs/client/web/192.js +1 -0
- package/lib/cjs/client/web/632.js +43 -0
- package/lib/cjs/client/web/794.js +1 -0
- package/lib/cjs/client/web/main.js +78 -1
- package/lib/cjs/client/web/main.js.LICENSE.txt +0 -15
- package/lib/cjs/creevey.js +5 -21
- package/lib/cjs/index.js +0 -15
- package/lib/cjs/server/config.js +13 -33
- package/lib/cjs/server/docker.js +5 -27
- package/lib/cjs/server/index.js +8 -33
- package/lib/cjs/server/logger.js +5 -19
- package/lib/cjs/server/master/api.js +1 -14
- package/lib/cjs/server/master/index.js +15 -46
- package/lib/cjs/server/master/master.js +6 -21
- package/lib/cjs/server/master/pool.js +2 -37
- package/lib/cjs/server/master/runner.js +15 -42
- package/lib/cjs/server/master/server.js +5 -27
- package/lib/cjs/server/messages.js +7 -53
- package/lib/cjs/server/selenium/browser.js +51 -136
- package/lib/cjs/server/selenium/index.js +0 -4
- package/lib/cjs/server/selenium/selenoid.js +7 -33
- package/lib/cjs/server/stories.js +25 -30
- package/lib/cjs/server/storybook/providers/browser.js +5 -18
- package/lib/cjs/server/storybook/providers/hybrid.js +9 -29
- package/lib/cjs/server/testsFiles/parser.js +3 -19
- package/lib/cjs/server/testsFiles/register.js +7 -9
- package/lib/cjs/server/update.js +3 -20
- package/lib/cjs/server/utils.js +9 -41
- package/lib/cjs/server/worker/chai-image.js +1 -27
- package/lib/cjs/server/worker/helpers.js +2 -12
- package/lib/cjs/server/worker/index.js +1 -3
- package/lib/cjs/server/worker/reporter.js +8 -24
- package/lib/cjs/server/worker/worker.js +5 -49
- package/lib/cjs/shared/index.js +22 -36
- package/lib/cjs/shared/serializeRegExp.js +0 -8
- package/lib/cjs/types.js +4 -14
- package/lib/esm/cli.js +1 -1
- package/lib/esm/client/addon/Manager.js +151 -214
- package/lib/esm/client/addon/components/Panel.js +4 -6
- package/lib/esm/client/addon/components/TestSelect.js +11 -17
- package/lib/esm/client/addon/components/Tools.js +15 -14
- package/lib/esm/client/addon/preset.js +2 -8
- package/lib/esm/client/addon/readyForCapture.js +1 -3
- package/lib/esm/client/addon/register.js +6 -8
- package/lib/esm/client/addon/utils.js +0 -5
- package/lib/esm/client/addon/withCreevey.js +54 -116
- package/lib/esm/client/shared/components/ImagesView/BlendView.js +1 -1
- package/lib/esm/client/shared/components/ImagesView/ImagesView.js +6 -8
- package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +3 -4
- package/lib/esm/client/shared/components/ImagesView/SlideView.js +3 -3
- package/lib/esm/client/shared/components/ImagesView/SwapView.js +1 -1
- package/lib/esm/client/shared/components/PageFooter/Paging.js +1 -11
- package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +18 -7
- package/lib/esm/client/shared/components/PageHeader/PageHeader.js +3 -8
- package/lib/esm/client/shared/components/ResultsPage.js +6 -15
- package/lib/esm/client/shared/creeveyClientApi.js +3 -10
- package/lib/esm/client/shared/helpers.js +21 -47
- package/lib/esm/client/web/192.js +1 -0
- package/lib/esm/client/web/632.js +43 -0
- package/lib/esm/client/web/794.js +1 -0
- package/lib/esm/client/web/index.html +19 -0
- package/lib/esm/client/web/main.js +79 -0
- package/lib/esm/client/web/main.js.LICENSE.txt +34 -0
- package/lib/esm/creevey.js +4 -8
- package/lib/esm/index.js +0 -1
- package/lib/esm/server/config.js +7 -14
- package/lib/esm/server/docker.js +4 -12
- package/lib/esm/server/index.js +7 -21
- package/lib/esm/server/logger.js +0 -1
- package/lib/esm/server/master/api.js +0 -9
- package/lib/esm/server/master/index.js +15 -32
- package/lib/esm/server/master/master.js +2 -7
- package/lib/esm/server/master/pool.js +0 -23
- package/lib/esm/server/master/runner.js +14 -27
- package/lib/esm/server/master/server.js +4 -9
- package/lib/esm/server/messages.js +6 -38
- package/lib/esm/server/selenium/browser.js +50 -114
- package/lib/esm/server/selenium/selenoid.js +6 -17
- package/lib/esm/server/stories.js +24 -20
- package/lib/esm/server/storybook/providers/browser.js +4 -8
- package/lib/esm/server/storybook/providers/hybrid.js +6 -14
- package/lib/esm/server/testsFiles/parser.js +0 -6
- package/lib/esm/server/testsFiles/register.js +5 -2
- package/lib/esm/server/update.js +0 -8
- package/lib/esm/server/utils.js +3 -11
- package/lib/esm/server/worker/chai-image.js +0 -21
- package/lib/esm/server/worker/helpers.js +2 -9
- package/lib/esm/server/worker/reporter.js +7 -10
- package/lib/esm/server/worker/worker.js +4 -25
- package/lib/esm/shared/index.js +24 -25
- package/lib/esm/types.js +4 -1
- package/lib/types/client/addon/Manager.d.ts +1 -1
- package/lib/types/client/addon/components/Addon.d.ts +1 -0
- package/lib/types/client/addon/components/Icons.d.ts +1 -0
- package/lib/types/client/addon/components/Panel.d.ts +1 -0
- package/lib/types/client/addon/components/TestSelect.d.ts +1 -0
- package/lib/types/client/addon/components/Tools.d.ts +1 -0
- package/lib/types/client/addon/decorator.d.ts +1 -1
- package/lib/types/client/addon/preset.d.ts +2 -2
- package/lib/types/client/addon/preview.d.ts +1 -1
- package/lib/types/client/addon/withCreevey.d.ts +3 -2
- package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -1
- package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +1 -0
- package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -1
- package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -1
- package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -1
- package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +1 -0
- package/lib/types/client/shared/components/PageFooter/Paging.d.ts +1 -0
- package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
- package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +1 -0
- package/lib/types/client/shared/components/ResultsPage.d.ts +3 -1
- package/lib/types/client/web/CreeveyApp.d.ts +1 -0
- package/lib/types/client/web/CreeveyLoader.d.ts +2 -1
- package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -1
- package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
- package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +1 -0
- package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +19 -14
- package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -0
- package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +3 -1
- package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +3 -1
- package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +1 -0
- package/lib/types/shared/index.d.ts +1 -1
- package/lib/types/types.d.ts +7 -28
- package/package.json +60 -78
- package/lib/cjs/client/addon/preset.ie11.js +0 -74
- package/lib/cjs/client/addon/preset.sb7.js +0 -19
- package/lib/cjs/client/web/142.js +0 -2
- package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
- package/lib/cjs/client/web/32.js +0 -1
- package/lib/cjs/client/web/551.js +0 -1
- package/lib/cjs/client/web/566.js +0 -2
- package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
- package/lib/cjs/client/web/691.js +0 -2
- package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
- package/lib/cjs/client/web/725.js +0 -1
- package/lib/cjs/server/extract.js +0 -46
- package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
- package/lib/cjs/server/loaders/babel/helpers.js +0 -469
- package/lib/cjs/server/loaders/babel/register.js +0 -124
- package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
- package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
- package/lib/cjs/server/loaders/webpack/compile.js +0 -269
- package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -172
- package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
- package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
- package/lib/cjs/server/loaders/webpack/start.js +0 -41
- package/lib/cjs/server/storybook/entry.js +0 -53
- package/lib/cjs/server/storybook/helpers.js +0 -158
- package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
- package/lib/esm/client/addon/preset.ie11.js +0 -59
- package/lib/esm/client/addon/preset.sb7.js +0 -8
- package/lib/esm/server/extract.js +0 -32
- package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
- package/lib/esm/server/loaders/babel/helpers.js +0 -452
- package/lib/esm/server/loaders/babel/register.js +0 -103
- package/lib/esm/server/loaders/hooks/mdx.js +0 -15
- package/lib/esm/server/loaders/hooks/svelte.js +0 -49
- package/lib/esm/server/loaders/webpack/compile.js +0 -246
- package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -152
- package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
- package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
- package/lib/esm/server/loaders/webpack/start.js +0 -27
- package/lib/esm/server/storybook/entry.js +0 -27
- package/lib/esm/server/storybook/helpers.js +0 -97
- package/lib/esm/server/storybook/providers/nodejs.js +0 -216
- package/lib/types/client/addon/preset.ie11.d.ts +0 -10
- package/lib/types/client/addon/preset.sb7.d.ts +0 -2
- package/lib/types/server/extract.d.ts +0 -2
- package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
- package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
- package/lib/types/server/loaders/babel/register.d.ts +0 -5
- package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
- package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
- package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
- package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
- package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
- package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
- package/lib/types/server/loaders/webpack/start.d.ts +0 -1
- package/lib/types/server/storybook/entry.d.ts +0 -17
- package/lib/types/server/storybook/helpers.d.ts +0 -24
- package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
- package/preset/ie11.js +0 -5
- package/preset/index.js +0 -9
- package/preset/sb7.js +0 -5
- package/types/mdx.d.ts +0 -7
@@ -9,11 +9,9 @@ const mkdirAsync = promisify(mkdir);
|
|
9
9
|
export default class Runner extends EventEmitter {
|
10
10
|
pools = {};
|
11
11
|
tests = {};
|
12
|
-
|
13
12
|
get isRunning() {
|
14
13
|
return Object.values(this.pools).some(pool => pool.isRunning);
|
15
14
|
}
|
16
|
-
|
17
15
|
constructor(config) {
|
18
16
|
super();
|
19
17
|
this.failFast = config.failFast;
|
@@ -22,7 +20,6 @@ export default class Runner extends EventEmitter {
|
|
22
20
|
this.browsers = Object.keys(config.browsers);
|
23
21
|
this.browsers.map(browser => this.pools[browser] = new Pool(config, browser)).map(pool => pool.on('test', this.handlePoolMessage));
|
24
22
|
}
|
25
|
-
|
26
23
|
handlePoolMessage = message => {
|
27
24
|
const {
|
28
25
|
id,
|
@@ -36,10 +33,9 @@ export default class Runner extends EventEmitter {
|
|
36
33
|
testName,
|
37
34
|
storyPath,
|
38
35
|
storyId
|
39
|
-
} = test;
|
40
|
-
|
36
|
+
} = test;
|
37
|
+
// TODO Handle 'retrying' status
|
41
38
|
test.status = status == 'retrying' ? 'failed' : status;
|
42
|
-
|
43
39
|
if (!result) {
|
44
40
|
this.sendUpdate({
|
45
41
|
tests: {
|
@@ -55,11 +51,9 @@ export default class Runner extends EventEmitter {
|
|
55
51
|
});
|
56
52
|
return;
|
57
53
|
}
|
58
|
-
|
59
54
|
if (!test.results) {
|
60
55
|
test.results = [];
|
61
56
|
}
|
62
|
-
|
63
57
|
test.results.push(result);
|
64
58
|
this.sendUpdate({
|
65
59
|
tests: {
|
@@ -84,33 +78,32 @@ export default class Runner extends EventEmitter {
|
|
84
78
|
this.emit('stop');
|
85
79
|
}
|
86
80
|
};
|
87
|
-
|
88
81
|
async init() {
|
89
82
|
await Promise.all(Object.values(this.pools).map(pool => pool.init()));
|
90
83
|
}
|
91
|
-
|
92
84
|
updateTests(testsDiff) {
|
93
85
|
const tests = {};
|
94
86
|
const removedTests = [];
|
95
87
|
Object.entries(testsDiff).forEach(([id, newTest]) => {
|
96
88
|
const oldTest = this.tests[id];
|
97
|
-
|
98
89
|
if (newTest) {
|
99
90
|
if (oldTest) {
|
100
|
-
this.tests[id] = {
|
91
|
+
this.tests[id] = {
|
92
|
+
...newTest,
|
101
93
|
retries: oldTest.retries,
|
102
94
|
results: oldTest.results,
|
103
95
|
approved: oldTest.approved
|
104
96
|
};
|
105
|
-
} else this.tests[id] = newTest;
|
106
|
-
|
97
|
+
} else this.tests[id] = newTest;
|
107
98
|
|
99
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
108
100
|
const {
|
109
101
|
story,
|
110
102
|
fn,
|
111
103
|
...restTest
|
112
104
|
} = newTest;
|
113
|
-
tests[id] = {
|
105
|
+
tests[id] = {
|
106
|
+
...restTest,
|
114
107
|
status: 'unknown'
|
115
108
|
};
|
116
109
|
} else if (oldTest) {
|
@@ -136,7 +129,6 @@ export default class Runner extends EventEmitter {
|
|
136
129
|
removedTests
|
137
130
|
});
|
138
131
|
}
|
139
|
-
|
140
132
|
start(ids) {
|
141
133
|
if (this.isRunning) return;
|
142
134
|
const testsToStart = ids.map(id => this.tests[id]).filter(isDefined).filter(test => !test.skip);
|
@@ -149,7 +141,8 @@ export default class Runner extends EventEmitter {
|
|
149
141
|
browser,
|
150
142
|
testName,
|
151
143
|
storyPath
|
152
|
-
}) => ({
|
144
|
+
}) => ({
|
145
|
+
...update,
|
153
146
|
[id]: {
|
154
147
|
id,
|
155
148
|
browser,
|
@@ -169,7 +162,8 @@ export default class Runner extends EventEmitter {
|
|
169
162
|
} = test;
|
170
163
|
const restPath = [...storyPath, testName].filter(isDefined);
|
171
164
|
test.status = 'pending';
|
172
|
-
return {
|
165
|
+
return {
|
166
|
+
...tests,
|
173
167
|
[browser]: [...(tests[browser] || []), {
|
174
168
|
id,
|
175
169
|
path: restPath
|
@@ -179,21 +173,19 @@ export default class Runner extends EventEmitter {
|
|
179
173
|
this.browsers.forEach(browser => {
|
180
174
|
const pool = this.pools[browser];
|
181
175
|
const tests = testsByBrowser[browser];
|
182
|
-
|
183
176
|
if (tests && tests.length > 0 && pool.start(tests)) {
|
184
177
|
pool.once('stop', this.handlePoolStop);
|
185
178
|
}
|
186
179
|
});
|
187
180
|
}
|
188
|
-
|
189
181
|
stop() {
|
190
182
|
if (!this.isRunning) return;
|
191
183
|
this.browsers.forEach(browser => this.pools[browser].stop());
|
192
184
|
}
|
193
|
-
|
194
185
|
get status() {
|
195
186
|
const tests = {};
|
196
|
-
Object.values(this.tests).filter(isDefined)
|
187
|
+
Object.values(this.tests).filter(isDefined)
|
188
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
197
189
|
.forEach(({
|
198
190
|
story,
|
199
191
|
fn,
|
@@ -205,7 +197,6 @@ export default class Runner extends EventEmitter {
|
|
205
197
|
browsers: this.browsers
|
206
198
|
};
|
207
199
|
}
|
208
|
-
|
209
200
|
async approve({
|
210
201
|
id,
|
211
202
|
retry,
|
@@ -217,11 +208,9 @@ export default class Runner extends EventEmitter {
|
|
217
208
|
if (!result || !result.images) return;
|
218
209
|
const images = result.images[image];
|
219
210
|
if (!images) return;
|
220
|
-
|
221
211
|
if (!test.approved) {
|
222
212
|
test.approved = {};
|
223
213
|
}
|
224
|
-
|
225
214
|
const {
|
226
215
|
browser,
|
227
216
|
testName,
|
@@ -251,9 +240,7 @@ export default class Runner extends EventEmitter {
|
|
251
240
|
}
|
252
241
|
});
|
253
242
|
}
|
254
|
-
|
255
243
|
sendUpdate(data) {
|
256
244
|
this.emit('update', data);
|
257
245
|
}
|
258
|
-
|
259
246
|
}
|
@@ -27,17 +27,14 @@ export default function server(reportDir, port, ui) {
|
|
27
27
|
ctx.body = 'pong';
|
28
28
|
return;
|
29
29
|
}
|
30
|
-
|
31
30
|
await next();
|
32
31
|
});
|
33
|
-
|
34
32
|
if (ui) {
|
35
33
|
app.use(async (_, next) => {
|
36
34
|
await creeveyApi;
|
37
35
|
await next();
|
38
36
|
});
|
39
37
|
}
|
40
|
-
|
41
38
|
app.use(async (ctx, next) => {
|
42
39
|
if (ctx.method == 'POST' && ctx.path == '/stories') {
|
43
40
|
const {
|
@@ -57,7 +54,6 @@ export default function server(reportDir, port, ui) {
|
|
57
54
|
}));
|
58
55
|
return;
|
59
56
|
}
|
60
|
-
|
61
57
|
await next();
|
62
58
|
});
|
63
59
|
app.use(async (ctx, next) => {
|
@@ -66,8 +62,8 @@ export default function server(reportDir, port, ui) {
|
|
66
62
|
workerId,
|
67
63
|
options
|
68
64
|
} = ctx.request.body;
|
69
|
-
const worker = Object.values(cluster.workers ?? {}).filter(isDefined).find(worker => worker.process.pid == workerId);
|
70
|
-
|
65
|
+
const worker = Object.values(cluster.workers ?? {}).filter(isDefined).find(worker => worker.process.pid == workerId);
|
66
|
+
// NOTE: Hypothetical case when someone send to us capture req and we don't have a worker with browser session for it
|
71
67
|
if (!worker) return;
|
72
68
|
await new Promise(resolve => {
|
73
69
|
const unsubscribe = subscribeOnWorker(worker, 'stories', message => {
|
@@ -79,12 +75,11 @@ export default function server(reportDir, port, ui) {
|
|
79
75
|
type: 'capture',
|
80
76
|
payload: options
|
81
77
|
});
|
82
|
-
});
|
83
|
-
|
78
|
+
});
|
79
|
+
// TODO Pass screenshot result to show it in inspector
|
84
80
|
ctx.body = 'Ok';
|
85
81
|
return;
|
86
82
|
}
|
87
|
-
|
88
83
|
await next();
|
89
84
|
});
|
90
85
|
app.use(serve(path.join(__dirname, '../../client/web')));
|
@@ -1,13 +1,11 @@
|
|
1
1
|
import cluster from 'cluster';
|
2
|
-
|
3
2
|
function emitMessage(message) {
|
4
3
|
var _process$send, _process;
|
5
|
-
|
6
4
|
if (cluster.isWorker && !process.connected) return false;
|
7
|
-
return ((_process$send = (_process = process).send) === null || _process$send === void 0 ? void 0 : _process$send.call(_process, message)) ??
|
5
|
+
return ((_process$send = (_process = process).send) === null || _process$send === void 0 ? void 0 : _process$send.call(_process, message)) ??
|
6
|
+
// @ts-expect-error: wrong typings `process.emit` return boolean
|
8
7
|
process.emit('message', message);
|
9
8
|
}
|
10
|
-
|
11
9
|
export function emitWorkerMessage(message) {
|
12
10
|
return emitMessage({
|
13
11
|
scope: 'worker',
|
@@ -43,7 +41,6 @@ export function emitShutdownMessage() {
|
|
43
41
|
scope: 'shutdown'
|
44
42
|
});
|
45
43
|
}
|
46
|
-
|
47
44
|
function createHandlers() {
|
48
45
|
return Object.assign(Object.create(null), {
|
49
46
|
worker: new Set(),
|
@@ -54,60 +51,48 @@ function createHandlers() {
|
|
54
51
|
shutdown: new Set()
|
55
52
|
});
|
56
53
|
}
|
57
|
-
|
58
54
|
const handlers = createHandlers();
|
59
|
-
|
60
55
|
const handler = message => {
|
61
56
|
switch (message.scope) {
|
62
57
|
case 'worker':
|
63
58
|
return handlers.worker.forEach(h => h(message));
|
64
|
-
|
65
59
|
case 'stories':
|
66
60
|
return handlers.stories.forEach(h => h(message));
|
67
|
-
|
68
61
|
case 'test':
|
69
62
|
return handlers.test.forEach(h => h(message));
|
70
|
-
|
71
63
|
case 'webpack':
|
72
64
|
return handlers.webpack.forEach(h => h(message));
|
73
|
-
|
74
65
|
case 'docker':
|
75
66
|
return handlers.docker.forEach(h => h(message));
|
76
|
-
|
77
67
|
case 'shutdown':
|
78
68
|
return handlers.shutdown.forEach(h => h(message));
|
79
69
|
}
|
80
70
|
};
|
81
|
-
|
82
71
|
process.on('message', handler);
|
83
72
|
export function sendStoriesMessage(target, message) {
|
84
73
|
var _target$send;
|
85
|
-
|
86
|
-
(_target$send = target.send) === null || _target$send === void 0 ? void 0 : _target$send.call(target, {
|
74
|
+
(_target$send = target.send) === null || _target$send === void 0 || _target$send.call(target, {
|
87
75
|
scope: 'stories',
|
88
76
|
...message
|
89
77
|
});
|
90
78
|
}
|
91
79
|
export function sendTestMessage(target, message) {
|
92
80
|
var _target$send2;
|
93
|
-
|
94
|
-
(_target$send2 = target.send) === null || _target$send2 === void 0 ? void 0 : _target$send2.call(target, {
|
81
|
+
(_target$send2 = target.send) === null || _target$send2 === void 0 || _target$send2.call(target, {
|
95
82
|
scope: 'test',
|
96
83
|
...message
|
97
84
|
});
|
98
85
|
}
|
99
86
|
export function sendDockerMessage(target, message) {
|
100
87
|
var _target$send3;
|
101
|
-
|
102
|
-
(_target$send3 = target.send) === null || _target$send3 === void 0 ? void 0 : _target$send3.call(target, {
|
88
|
+
(_target$send3 = target.send) === null || _target$send3 === void 0 || _target$send3.call(target, {
|
103
89
|
scope: 'docker',
|
104
90
|
...message
|
105
91
|
});
|
106
92
|
}
|
107
93
|
export function sendShutdownMessage(target) {
|
108
94
|
var _target$send4;
|
109
|
-
|
110
|
-
(_target$send4 = target.send) === null || _target$send4 === void 0 ? void 0 : _target$send4.call(target, {
|
95
|
+
(_target$send4 = target.send) === null || _target$send4 === void 0 || _target$send4.call(target, {
|
111
96
|
scope: 'shutdown'
|
112
97
|
});
|
113
98
|
}
|
@@ -119,35 +104,30 @@ export function subscribeOn(scope, handler) {
|
|
119
104
|
handlers.worker.add(workerHandler);
|
120
105
|
return () => handlers.worker.delete(workerHandler);
|
121
106
|
}
|
122
|
-
|
123
107
|
case 'stories':
|
124
108
|
{
|
125
109
|
const storiesHandler = handler;
|
126
110
|
handlers.stories.add(storiesHandler);
|
127
111
|
return () => handlers.stories.delete(storiesHandler);
|
128
112
|
}
|
129
|
-
|
130
113
|
case 'test':
|
131
114
|
{
|
132
115
|
const testHandler = handler;
|
133
116
|
handlers.test.add(testHandler);
|
134
117
|
return () => handlers.test.delete(testHandler);
|
135
118
|
}
|
136
|
-
|
137
119
|
case 'webpack':
|
138
120
|
{
|
139
121
|
const webpackHandler = handler;
|
140
122
|
handlers.webpack.add(webpackHandler);
|
141
123
|
return () => handlers.webpack.delete(webpackHandler);
|
142
124
|
}
|
143
|
-
|
144
125
|
case 'docker':
|
145
126
|
{
|
146
127
|
const dockerHandler = handler;
|
147
128
|
handlers.docker.add(dockerHandler);
|
148
129
|
return () => handlers.docker.delete(dockerHandler);
|
149
130
|
}
|
150
|
-
|
151
131
|
case 'shutdown':
|
152
132
|
{
|
153
133
|
const shutdownHandler = handler;
|
@@ -159,7 +139,6 @@ export function subscribeOn(scope, handler) {
|
|
159
139
|
const workers = new Map();
|
160
140
|
export function subscribeOnWorker(worker, scope, handler) {
|
161
141
|
const workerHandlers = workers.get(worker) ?? createHandlers();
|
162
|
-
|
163
142
|
if (!workers.has(worker)) {
|
164
143
|
workers.set(worker, workerHandlers);
|
165
144
|
worker.once('exit', () => workers.delete(worker));
|
@@ -167,25 +146,19 @@ export function subscribeOnWorker(worker, scope, handler) {
|
|
167
146
|
switch (message.scope) {
|
168
147
|
case 'worker':
|
169
148
|
return workerHandlers.worker.forEach(h => h(message));
|
170
|
-
|
171
149
|
case 'stories':
|
172
150
|
return workerHandlers.stories.forEach(h => h(message));
|
173
|
-
|
174
151
|
case 'test':
|
175
152
|
return workerHandlers.test.forEach(h => h(message));
|
176
|
-
|
177
153
|
case 'webpack':
|
178
154
|
return workerHandlers.webpack.forEach(h => h(message));
|
179
|
-
|
180
155
|
case 'docker':
|
181
156
|
return workerHandlers.docker.forEach(h => h(message));
|
182
|
-
|
183
157
|
case 'shutdown':
|
184
158
|
return workerHandlers.shutdown.forEach(h => h(message));
|
185
159
|
}
|
186
160
|
});
|
187
161
|
}
|
188
|
-
|
189
162
|
switch (scope) {
|
190
163
|
case 'worker':
|
191
164
|
{
|
@@ -193,35 +166,30 @@ export function subscribeOnWorker(worker, scope, handler) {
|
|
193
166
|
workerHandlers.worker.add(workerHandler);
|
194
167
|
return () => workerHandlers.worker.delete(workerHandler);
|
195
168
|
}
|
196
|
-
|
197
169
|
case 'stories':
|
198
170
|
{
|
199
171
|
const storiesHandler = handler;
|
200
172
|
workerHandlers.stories.add(storiesHandler);
|
201
173
|
return () => workerHandlers.stories.delete(storiesHandler);
|
202
174
|
}
|
203
|
-
|
204
175
|
case 'test':
|
205
176
|
{
|
206
177
|
const testHandler = handler;
|
207
178
|
workerHandlers.test.add(testHandler);
|
208
179
|
return () => workerHandlers.test.delete(testHandler);
|
209
180
|
}
|
210
|
-
|
211
181
|
case 'webpack':
|
212
182
|
{
|
213
183
|
const webpackHandler = handler;
|
214
184
|
workerHandlers.webpack.add(webpackHandler);
|
215
185
|
return () => workerHandlers.webpack.delete(webpackHandler);
|
216
186
|
}
|
217
|
-
|
218
187
|
case 'docker':
|
219
188
|
{
|
220
189
|
const dockerHandler = handler;
|
221
190
|
workerHandlers.docker.add(dockerHandler);
|
222
191
|
return () => workerHandlers.docker.delete(dockerHandler);
|
223
192
|
}
|
224
|
-
|
225
193
|
case 'shutdown':
|
226
194
|
{
|
227
195
|
const shutdownHandler = handler;
|