@rxx/http
Version:
Http IO module for rxx.
52 lines • 3.18 kB
JavaScript
;
/**
* @fileoverview IOのモッククラス定義
* @author Taketoshi Aono
*/
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var http_handler_1 = require("./http-handler");
/**
* Mock class for HttpRequest.
*/
var HttpHandlerMock = /** @class */ (function (_super) {
tslib_1.__extends(HttpHandlerMock, _super);
/**
* @param methods Definitions of each method return value.
*/
function HttpHandlerMock(methods, advices) {
var _this = _super.call(this, advices) || this;
_this.methods = methods;
_this.fetchFunction = function (url, request) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
var method = _this.methods[(request.method || 'get').toLowerCase()];
if (typeof method === 'function') {
var fn = method;
try {
return resolve(fn(url, request));
}
catch (e) {
return reject(e);
}
}
resolve(new Response(request.body, { status: 200, statusText: 'OK' }));
}, 100);
});
};
return _this;
}
Object.defineProperty(HttpHandlerMock.prototype, "fetch", {
/**
* Return whatwgFetch function mock.
*/
get: function () {
return this.fetchFunction;
},
enumerable: true,
configurable: true
});
return HttpHandlerMock;
}(http_handler_1.HttpHandler));
exports.HttpHandlerMock = HttpHandlerMock;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oYW5kbGVyLW1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cC1oYW5kbGVyLW1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBR0gsK0NBQTZDO0FBNEI3Qzs7R0FFRztBQUNIO0lBQXFDLDJDQUFXO0lBRzlDOztPQUVHO0lBQ0gseUJBQ1UsT0FBK0IsRUFDdkMsT0FBaUI7UUFGbkIsWUFJRSxrQkFBTSxPQUFPLENBQUMsU0F1QmY7UUExQlMsYUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFJdkMsS0FBSSxDQUFDLGFBQWEsR0FBRyxVQUFDLEdBQVcsRUFBRSxPQUFvQjtZQUNyRCxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ2pDLFVBQVUsQ0FBQztvQkFDVCxJQUFNLE1BQU0sR0FBRyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUNyRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTt3QkFDaEMsSUFBTSxFQUFFLEdBQUcsTUFJRSxDQUFDO3dCQUNkLElBQUk7NEJBQ0YsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO3lCQUNsQzt3QkFBQyxPQUFPLENBQUMsRUFBRTs0QkFDVixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDbEI7cUJBQ0Y7b0JBQ0QsT0FBTyxDQUNMLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUM5RCxDQUFDO2dCQUNKLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNWLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDOztJQUNKLENBQUM7SUFLRCxzQkFBYyxrQ0FBSztRQUhuQjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7OztPQUFBO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBekNELENBQXFDLDBCQUFXLEdBeUMvQztBQXpDWSwwQ0FBZSJ9