@4c/fetch-mock
Version:
Mock http requests made using fetch (or isomorphic-fetch)
81 lines (62 loc) • 2.96 kB
JavaScript
;
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;