Skip to content

Commit a58a18f

Browse files
committed
make parseHookNames a separate webpack module
1 parent 8258361 commit a58a18f

File tree

4 files changed

+25
-44
lines changed

4 files changed

+25
-44
lines changed

packages/react-devtools-extensions/src/__tests__/parseHookNames-test.js

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ describe('parseHookNames', () => {
6262

6363
inspectHooks = require('react-debug-tools/src/ReactDebugHooks')
6464
.inspectHooks;
65-
parseHookNames = require('../parseHookNames').parseHookNames;
65+
parseHookNames = require('../parseHookNames/parseHookNames').parseHookNames;
6666

6767
// Jest (jest-runner?) configures Errors to automatically account for source maps.
6868
// This changes behavior between our tests and the browser.
@@ -718,22 +718,13 @@ describe('parseHookNames', () => {
718718
describe('parseHookNames worker', () => {
719719
let inspectHooks;
720720
let parseHookNames;
721-
let originalParseHookNamesMock;
722721
let workerizedParseHookNamesMock;
723722

724723
beforeEach(() => {
725724
window.Worker = undefined;
726725

727-
originalParseHookNamesMock = jest.fn();
728726
workerizedParseHookNamesMock = jest.fn();
729727

730-
jest.mock('../parseHookNames/parseHookNames.js', () => {
731-
return {
732-
__esModule: true,
733-
parseHookNames: originalParseHookNamesMock,
734-
};
735-
});
736-
737728
jest.mock('../parseHookNames/parseHookNames.worker.js', () => {
738729
return {
739730
__esModule: true,
@@ -757,7 +748,7 @@ describe('parseHookNames worker', () => {
757748
return hookNames;
758749
}
759750

760-
it('should use worker when available', async () => {
751+
it('should use worker', async () => {
761752
const Component = require('./__source__/__untransformed__/ComponentWithUseState')
762753
.Component;
763754

@@ -769,13 +760,4 @@ describe('parseHookNames worker', () => {
769760
await getHookNamesForComponent(Component);
770761
expect(workerizedParseHookNamesMock).toHaveBeenCalledTimes(1);
771762
});
772-
773-
it('should use main thread when worker is not available', async () => {
774-
const Component = require('./__source__/__untransformed__/ComponentWithUseState')
775-
.Component;
776-
777-
await getHookNamesForComponent(Component);
778-
expect(workerizedParseHookNamesMock).toHaveBeenCalledTimes(0);
779-
expect(originalParseHookNamesMock).toHaveBeenCalledTimes(1);
780-
});
781763
});

packages/react-devtools-extensions/src/main.js

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
getSavedComponentFilters,
1313
getShowInlineWarningsAndErrors,
1414
} from 'react-devtools-shared/src/utils';
15-
import {parseHookNames, purgeCachedMetadata} from './parseHookNames';
1615
import {
1716
localStorageGetItem,
1817
localStorageRemoveItem,
@@ -210,23 +209,26 @@ function createPanelIfReactLoaded() {
210209

211210
render = (overrideTab = mostRecentOverrideTab) => {
212211
mostRecentOverrideTab = overrideTab;
213-
214-
root.render(
215-
createElement(DevTools, {
216-
bridge,
217-
browserTheme: getBrowserTheme(),
218-
componentsPortalContainer,
219-
enabledInspectedElementContextMenu: true,
220-
loadHookNames: parseHookNames,
221-
overrideTab,
222-
profilerPortalContainer,
223-
purgeCachedHookNamesMetadata: purgeCachedMetadata,
224-
showTabBar: false,
225-
store,
226-
warnIfUnsupportedVersionDetected: true,
227-
viewAttributeSourceFunction,
228-
viewElementSourceFunction,
229-
}),
212+
import('./parseHookNames').then(
213+
({parseHookNames, purgeCachedMetadata}) => {
214+
root.render(
215+
createElement(DevTools, {
216+
bridge,
217+
browserTheme: getBrowserTheme(),
218+
componentsPortalContainer,
219+
enabledInspectedElementContextMenu: true,
220+
loadHookNames: parseHookNames,
221+
overrideTab,
222+
profilerPortalContainer,
223+
purgeCachedHookNamesMetadata: purgeCachedMetadata,
224+
showTabBar: false,
225+
store,
226+
warnIfUnsupportedVersionDetected: true,
227+
viewAttributeSourceFunction,
228+
viewElementSourceFunction,
229+
}),
230+
);
231+
},
230232
);
231233
};
232234

packages/react-devtools-extensions/src/parseHookNames/index.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,13 @@
1212
// This file uses workerize to load ./parseHookNames.worker as a webworker and instanciates it,
1313
// exposing flow typed functions that can be used on other files.
1414

15-
import * as parseHookNamesModule from './parseHookNames';
1615
import WorkerizedParseHookNames from './parseHookNames.worker';
17-
18-
type ParseHookNamesModule = typeof parseHookNamesModule;
16+
import typeof * as ParseHookNamesModule from './parseHookNames';
1917

2018
// $FlowFixMe
2119
const wasmMappingsURL = chrome.extension.getURL('mappings.wasm');
2220

23-
const workerizedParseHookNames: ParseHookNamesModule = window.Worker
24-
? WorkerizedParseHookNames()
25-
: parseHookNamesModule;
21+
const workerizedParseHookNames: ParseHookNamesModule = WorkerizedParseHookNames();
2622

2723
type ParseHookNames = $PropertyType<ParseHookNamesModule, 'parseHookNames'>;
2824

packages/react-devtools-extensions/webpack.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ module.exports = {
4141
},
4242
output: {
4343
path: __dirname + '/build',
44+
publicPath: '/build/',
4445
filename: '[name].js',
4546
},
4647
node: {

0 commit comments

Comments
 (0)