UNPKG

promise-mock-api

Version:

Mock APIs using classes based in "Fetch API" and "Axios JS". Using "Local Storage" the data are saved, the "ApiBase" provides a GET, POST, PUT and DELETE default methods and easily add your own methods.

76 lines (53 loc) 2.05 kB
var FetchMock = function () { var _apis = []; var _findApi = function (url) { return !_apis ? null : _apis.find(function (x) { return url.match(x.baseUrl); }); }; var _getResource = function (url, baseUrl) { return url.substring(baseUrl.length); }; var loadApis = function () { for (var _len = arguments.length, apis = Array(_len), _key = 0; _key < _len; _key++) { apis[_key] = arguments[_key]; } return _apis = _apis.concat(apis); }; var get = function (url, queryString) { var forcedResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var api = _findApi(url); if (!api) return Promise.reject(new Response(null, { "status": 404 })); var resource = _getResource(url, api.baseUrl); return api.get(resource, queryString, forcedResult); }; var post = function (url, bodyObj) { var forcedResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var api = _findApi(url); if (!api) return Promise.reject(new Response(null, { "status": 404 })); var resource = _getResource(url, api.baseUrl); return api.post(resource, bodyObj, forcedResult); }; var put = function (url, id, bodyObj) { var forcedResult = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; var api = _findApi(url); if (!api) return Promise.reject(new Response(null, { "status": 404 })); var resource = _getResource(url, api.baseUrl); return api.put(resource, id, bodyObj, forcedResult); }; var del = function (url, id) { var forcedResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var api = _findApi(url); if (!api) return Promise.reject(new Response(null, { "status": 404 })); var resource = _getResource(url, api.baseUrl); return api["delete"](resource, id, forcedResult); }; return { loadApis: loadApis, get: get, post: post, put: put, "delete": del }; }(); export default FetchMock;