hookSettingsInjector.js — react Source File
Architecture documentation for hookSettingsInjector.js, a javascript file in the react codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 6a22ee12_770d_feef_4171_b5e1e5dd51b2["hookSettingsInjector.js"] 59285050_8b13_751c_3b39_93ecdb0aa385["messages.js"] 6a22ee12_770d_feef_4171_b5e1e5dd51b2 --> 59285050_8b13_751c_3b39_93ecdb0aa385 b9e76cd2_712c_d143_3531_87d4f39c2083["postMessage"] 6a22ee12_770d_feef_4171_b5e1e5dd51b2 --> b9e76cd2_712c_d143_3531_87d4f39c2083 40bf6909_04ae_bfb6_965f_14cfe98b94de["types"] 6a22ee12_770d_feef_4171_b5e1e5dd51b2 --> 40bf6909_04ae_bfb6_965f_14cfe98b94de aec7978f_0a19_ba93_de9e_ac8cf5ddc74b["types"] 6a22ee12_770d_feef_4171_b5e1e5dd51b2 --> aec7978f_0a19_ba93_de9e_ac8cf5ddc74b 627bb742_21aa_b4fd_fe2d_4a963a1f9278["utils"] 6a22ee12_770d_feef_4171_b5e1e5dd51b2 --> 627bb742_21aa_b4fd_fe2d_4a963a1f9278 style 6a22ee12_770d_feef_4171_b5e1e5dd51b2 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/* global chrome */
/** @flow */
// We can't use chrome.storage domain from scripts which are injected in ExecutionWorld.MAIN
// This is the only purpose of this script - to send persisted settings to installHook.js content script
import type {UnknownMessageEvent} from './messages';
import type {
DevToolsHookSettings,
DevToolsSettings,
} from 'react-devtools-shared/src/backend/types';
import type {ComponentFilter} from 'react-devtools-shared/src/frontend/types';
import {postMessage} from './messages';
import {getDefaultComponentFilters} from 'react-devtools-shared/src/utils';
async function messageListener(event: UnknownMessageEvent) {
if (event.source !== window) {
return;
}
if (event.data.source === 'react-devtools-hook-installer') {
if (event.data.payload.handshake) {
const settings: Partial<DevToolsSettings> =
await chrome.storage.local.get();
// If storage was empty (first installation), define default settings
const hookSettings: DevToolsHookSettings = {
appendComponentStack:
typeof settings.appendComponentStack === 'boolean'
? settings.appendComponentStack
: true,
breakOnConsoleErrors:
typeof settings.breakOnConsoleErrors === 'boolean'
? settings.breakOnConsoleErrors
: false,
showInlineWarningsAndErrors:
typeof settings.showInlineWarningsAndErrors === 'boolean'
? settings.showInlineWarningsAndErrors
: true,
hideConsoleLogsInStrictMode:
typeof settings.hideConsoleLogsInStrictMode === 'boolean'
? settings.hideConsoleLogsInStrictMode
: false,
disableSecondConsoleLogDimmingInStrictMode:
typeof settings.disableSecondConsoleLogDimmingInStrictMode ===
'boolean'
? settings.disableSecondConsoleLogDimmingInStrictMode
: false,
};
const componentFilters: Array<ComponentFilter> = Array.isArray(
settings.componentFilters,
)
? settings.componentFilters
: getDefaultComponentFilters();
postMessage({
source: 'react-devtools-settings-injector',
payload: {hookSettings, componentFilters},
});
window.removeEventListener('message', messageListener);
}
}
}
window.addEventListener('message', messageListener);
postMessage({
source: 'react-devtools-settings-injector',
payload: {handshake: true},
});
Domain
Dependencies
- messages.js
- postMessage
- types
- types
- utils
Source
Frequently Asked Questions
What does hookSettingsInjector.js do?
hookSettingsInjector.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain.
What does hookSettingsInjector.js depend on?
hookSettingsInjector.js imports 5 module(s): messages.js, postMessage, types, types, utils.
Where is hookSettingsInjector.js in the architecture?
hookSettingsInjector.js is located at packages/react-devtools-extensions/src/contentScripts/hookSettingsInjector.js (domain: BabelCompiler, directory: packages/react-devtools-extensions/src/contentScripts).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free