yyuap-template
Version:
template project which is based on tinper
166 lines (145 loc) • 4.69 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['exports', 'fetch-jsonp'], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require('fetch-jsonp'));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.fetchJsonp);
global.utils = mod.exports;
}
})(this, function (exports, _fetchJsonp) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.noop = undefined;
exports.post = post;
exports.get = get;
exports.fetchJ = fetchJ;
var _fetchJsonp2 = _interopRequireDefault(_fetchJsonp);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var noop = exports.noop = function noop() {};
var fetchTools = {
params: function params(_params) {
try {
return Object.keys(_params).map(function (key) {
var param = _params[key];
switch (typeof param === 'undefined' ? 'undefined' : _typeof(param)) {
case 'object':
param = escape(JSON.stringify(param));
break;
case 'undefined':
param = '';
break;
default:
break;
}
return key + '=' + param;
}).join('&');
} catch (e) {
// console.log('error in urlParams');
return '';
}
},
fetch: function (_fetch) {
function fetch(_x, _x2) {
return _fetch.apply(this, arguments);
}
fetch.toString = function () {
return _fetch.toString();
};
return fetch;
}(function (url, options) {
return fetch(url, options).then(function (response) {
if (response.ok) {
return response.text().then(function (text) {
try {
return JSON.parse(text);
} catch (e) {
return Promise.reject(new Error(uiTemplateMultilingual.template('dataCannotBeParsed')));
}
});
}
return Promise.reject(new Error(uiTemplateMultilingual.template('requestFailed')));
}, function (error) {
throw error;
});
}),
options: function options() {
var method = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'get';
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return _extends({
method: method.toUpperCase(),
credentials: 'include',
cache: 'no-cache',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
}
}, options);
}
};
function post(url) {
var oriParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var fetch = fetchTools.fetch,
options = fetchTools.options;
try {
return fetch(url, options('post', {
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
body: JSON.stringify(oriParams)
}));
} catch (e) {
return Promise.reject(e);
}
}
function get(url) {
var oriParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var params = fetchTools.params,
fetch = fetchTools.fetch,
options = fetchTools.options;
var data = params(oriParams);
if (data) {
return fetch(url + '?' + data, options());
}
return fetch(url, options());
}
function fetchJ(url) {
var oriParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var params = fetchTools.params,
fetch = fetchTools.fetch,
options = fetchTools.options;
var data = params(oriParams);
return (0, _fetchJsonp2.default)(url + '?' + data, { timeout: 300000 }).then(function (response) {
return response.json();
}).then(function (json) {
// console.log('parsed json', json)
return json;
}).catch(function (ex) {
console.log('parsing failed', ex);
});
}
});