UNPKG

@4c/fetch-mock

Version:

Mock http requests made using fetch (or isomorphic-fetch)

81 lines (62 loc) 2.96 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); var _bind = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/bind")); var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map")); var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice")); var _create = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/create")); var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign")); var setUpAndTearDown = require('./set-up-and-tear-down'); var fetchHandler = require('./fetch-handler'); var inspecting = require('./inspecting'); var FetchMock = (0, _assign["default"])({}, fetchHandler, setUpAndTearDown, inspecting); FetchMock.config = { fallbackToNetwork: false, includeContentLength: true, sendAsJson: true, warnOnFallback: true, overwriteRoutes: undefined }; FetchMock.createInstance = function (isLibrary) { var _context, _context2; var instance = (0, _create["default"])(FetchMock); instance._uncompiledRoutes = (0, _slice["default"])(_context = this._uncompiledRoutes || []).call(_context); instance.routes = (0, _map["default"])(_context2 = instance._uncompiledRoutes).call(_context2, function (config) { return instance.compileRoute(config); }); instance.fallbackResponse = this.fallbackResponse || undefined; instance.config = (0, _assign["default"])({}, this.config || FetchMock.config); instance._calls = []; instance._holdingPromises = []; instance.bindMethods(); if (isLibrary) { (0, _assign["default"])(instance, { MATCHED: true, UNMATCHED: false, fetchMock: instance }); } return instance; }; FetchMock.bindMethods = function () { var _context3, _context4, _context5, _context6; this.fetchHandler = (0, _bind["default"])(_context3 = FetchMock.fetchHandler).call(_context3, this); this.reset = this.restore = (0, _bind["default"])(_context4 = FetchMock.reset).call(_context4, this); this.resetHistory = (0, _bind["default"])(_context5 = FetchMock.resetHistory).call(_context5, this); this.resetBehavior = (0, _bind["default"])(_context6 = FetchMock.resetBehavior).call(_context6, this); }; FetchMock.sandbox = function () { // this construct allows us to create a fetch-mock instance which is also // a callable function, while circumventing circularity when defining the // object that this function should be bound to var proxy = function proxy(url, options) { return sandbox.fetchHandler(url, options); }; var sandbox = (0, _assign["default"])(proxy, // Ensures that the entire returned object is a callable function FetchMock, // prototype methods this.createInstance() // instance data ); sandbox.bindMethods(); sandbox.isSandbox = true; return sandbox; }; module.exports = FetchMock;