Home / File/ react-loader.js — react Source File

react-loader.js — react Source File

Architecture documentation for react-loader.js, a javascript file in the react codebase. 1 imports, 3 dependents.

File javascript BabelCompiler Validation 1 imports 3 dependents 7 functions

Entity Profile

Dependency Diagram

graph LR
  dd026ac1_6193_60a0_f5c1_cc7da4d3c4af["react-loader.js"]
  4eb12198_9a41_d26c_5aca_d7d500655e3a["semver"]
  dd026ac1_6193_60a0_f5c1_cc7da4d3c4af --> 4eb12198_9a41_d26c_5aca_d7d500655e3a
  24f91f3d_8b7d_3d1b_d51b_544e9e2c6143["index.js"]
  24f91f3d_8b7d_3d1b_d51b_544e9e2c6143 --> dd026ac1_6193_60a0_f5c1_cc7da4d3c4af
  f8429146_1d45_26dd_090f_7c5376f684ab["find-dom-node.js"]
  f8429146_1d45_26dd_090f_7c5376f684ab --> dd026ac1_6193_60a0_f5c1_cc7da4d3c4af
  9f1d73bc_10b4_6f20_3101_55819618d137["index.js"]
  9f1d73bc_10b4_6f20_3101_55819618d137 --> dd026ac1_6193_60a0_f5c1_cc7da4d3c4af
  style dd026ac1_6193_60a0_f5c1_cc7da4d3c4af fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import semver from 'semver';

/**
 * Take a version from the window query string and load a specific
 * version of React.
 *
 * @example
 * http://localhost:3000?version=15.4.1
 * (Loads React 15.4.1)
 */

function parseQuery(qstr) {
  var query = {};
  var a = qstr.slice(1).split('&');

  for (var i = 0; i < a.length; i++) {
    var b = a[i].split('=');
    query[decodeURIComponent(b[0])] = decodeURIComponent(b[1] || '');
  }
  return query;
}

function loadScript(src) {
  let firstScript = document.getElementsByTagName('script')[0];
  let scriptNode;

  return new Promise((resolve, reject) => {
    scriptNode = document.createElement('script');
    scriptNode.async = 1;
    scriptNode.src = src;

    scriptNode.onload = () => resolve();
    scriptNode.onerror = () => reject(new Error(`failed to load: ${src}`));

    firstScript.parentNode.insertBefore(scriptNode, firstScript);
  });
}

function loadModules(SymbolSrcPairs) {
  let firstScript = document.getElementsByTagName('script')[0];

  let imports = '';
  SymbolSrcPairs.map(([symbol, src]) => {
    imports += `import ${symbol} from "${src}";\n`;
    imports += `window.${symbol} = ${symbol};\n`;
  });

  return new Promise((resolve, reject) => {
    const timeout = setTimeout(
      () => reject(new Error('Timed out loading react modules over esm')),
      5000
    );
    window.__loaded = () => {
      clearTimeout(timeout);
      resolve();
    };

    const moduleScript = document.createElement('script');
    moduleScript.type = 'module';
    moduleScript.textContent = imports + 'window.__loaded();';
// ... (123 more lines)

Domain

Subdomains

Dependencies

  • semver

Frequently Asked Questions

What does react-loader.js do?
react-loader.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in react-loader.js?
react-loader.js defines 7 function(s): getVersion, isLocal, loadModules, loadReact, loadScript, parseQuery, reactPaths.
What does react-loader.js depend on?
react-loader.js imports 1 module(s): semver.
What files import react-loader.js?
react-loader.js is imported by 3 file(s): find-dom-node.js, index.js, index.js.
Where is react-loader.js in the architecture?
react-loader.js is located at fixtures/dom/src/react-loader.js (domain: BabelCompiler, subdomain: Validation, directory: fixtures/dom/src).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free