MCPcopy Index your code
hub / github.com/darkreader/darkreader / runCheck

Function runCheck

src/inject/detector.ts:82–111  ·  view source on GitHub ↗
(callback: (hasDarkTheme: boolean) => void)

Source from the content-addressed store, hash-verified

80}
81
82function runCheck(callback: (hasDarkTheme: boolean) => void) {
83 const colorSchemeMeta = document.querySelector(COLOR_SCHEME_META_SELECTOR) as HTMLMetaElement;
84 if (colorSchemeMeta) {
85 const isMetaDark = colorSchemeMeta.content === 'dark' || (colorSchemeMeta.content.includes('dark') && isSystemDarkModeEnabled());
86 callback(isMetaDark);
87 return;
88 }
89
90 if (
91 document.documentElement.classList.contains('dark') ||
92 document.body?.classList.contains('dark') ||
93 document.documentElement.dataset.theme?.toLocaleLowerCase() === 'dark'
94 ) {
95 callback(true);
96 return;
97 }
98
99 const drSheets = Array.from(document.styleSheets).filter((s) => (s.ownerNode as HTMLElement)?.classList.contains('darkreader'))
100 .concat(
101 Array.isArray(document.adoptedStyleSheets) ? Array.from(document.adoptedStyleSheets).filter(
102 (s) => (s.cssRules?.[0] as CSSStyleRule)?.selectorText?.startsWith('#__darkreader')
103 ) : [],
104 );
105 drSheets.forEach((sheet) => sheet.disabled = true);
106
107 const darkThemeDetected = hasBuiltInDarkTheme();
108
109 drSheets.forEach((sheet) => sheet.disabled = false);
110 callback(darkThemeDetected);
111}
112
113function hasSomeStyle() {
114 if (document.querySelector(COLOR_SCHEME_META_SELECTOR) != null) {

Callers 1

runDarkThemeDetectorFunction · 0.85

Calls 2

isSystemDarkModeEnabledFunction · 0.90
hasBuiltInDarkThemeFunction · 0.85

Tested by

no test coverage detected