Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/devtools/shared/loader/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  browser-loader-mocks.js   Sprache: JAVA

 
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


"use strict";

// Map of mocked modules, keys are absolute URIs for devtools modules such as
// "resource://devtools/path/to/mod.js, values are objects (anything passed to
// setMockedModule technically).
const _mocks = {};

/**
 * Retrieve a mocked module matching the provided uri, eg "resource://path/to/file.js".
 */

function getMockedModule(uri) {
  return _mocks[uri];
}
exports.getMockedModule = getMockedModule;

/**
 * Module paths are transparently provided with or without ".js" when using the loader,
 * normalize the user-provided module paths to always have modules ending with ".js".
 */

function _getUriForModulePath(modulePath) {
  // Assume js modules and add the .js extension if missing.
  if (!modulePath.endsWith(".js")) {
    modulePath = modulePath + ".js";
  }

  // Add resource:// scheme if no scheme is specified.
  if (!modulePath.includes("://")) {
    modulePath = "resource://" + modulePath;
  }

  return modulePath;
}

/**
 * Assign a mock object to the provided module path.
 * @param mock
 *        Plain JavaScript object that will implement the expected API for the mocked
 *        module.
 * @param modulePath
 *        The module path should be the absolute module path, starting with `devtools`:
 *        "devtools/client/some-panel/some-module"
 */

function setMockedModule(mock, modulePath) {
  const uri = _getUriForModulePath(modulePath);
  _mocks[uri] = new Proxy(mock, {
    get(target, key) {
      if (typeof target[key] === "function") {
        // Functions are wrapped to be able to update the methods during the test, even if
        // the methods were imported with destructuring. For instance:
        //   `const { someMethod } = require("devtools/client/shared/my-module");`
        return function () {
          return target[key].apply(target, arguments);
        };
      }
      return target[key];
    },
  });
}
exports.setMockedModule = setMockedModule;

/**
 * Remove any mock object defined for the provided absolute module path.
 */

function removeMockedModule(modulePath) {
  const uri = _getUriForModulePath(modulePath);
  delete _mocks[uri];
}
exports.removeMockedModule = removeMockedModule;

96%


¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.