[mod] modify

This commit is contained in:
Ziqiang Li 2017-08-07 22:29:52 +08:00
parent 7d225c0b37
commit dc27282ed7
3 changed files with 88 additions and 4 deletions

84
build/index.js Normal file
View file

@ -0,0 +1,84 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Created by lizq on 2017/8/7
*/
// Callback index.
var count = 0;
/**
* JSONP handler
*
* Options:
* - prefix {String} callback prefix (defaults to `__jp`)
* - callback {String} (defaults to `callback`)
* - timeout {Number} how long after the request until a timeout error
* is emitted (defaults to `15000`)
*/
function jsonp(url, options) {
options = options || {};
var prefix = options.prefix || '__jp';
var callback = options.callback || 'callback';
var params = options.data || {};
var timeout = options.timeout ? options.timeout : 15000;
var target = document.getElementsByTagName('script')[0] || document.head;
var script = void 0;
var timer = void 0;
var promise = void 0;
// Generate a unique id for the request.
var id = prefix + count++;
function noop() {}
function cleanup() {
// Remove the script tag.
if (script && script.parentNode) {
script.parentNode.removeChild(script);
}
window[id] = noop;
if (timer) {
clearTimeout(timer);
}
}
function serialize(params) {
var param = '';
for (var key in params) {
if (params.hasOwnProperty(key)) {
param += '&' + key + '=' + encodeURIComponent(params[key]);
}
}
return param;
}
promise = new Promise(function (resolve, reject) {
if (timeout) {
timer = setTimeout(function () {
cleanup();
reject(new Error('Timeout'));
}, timeout);
}
window[id] = function (data) {
cleanup();
resolve(data);
};
params[callback] = id;
url += serialize(params);
url = url.replace('?&', '?');
// Create script.
script = document.createElement('script');
script.src = url;
script.onerror = function () {
cleanup();
reject(new Error('Network Error'));
};
target.parentNode.insertBefore(script, target);
});
return promise;
}
exports.default = jsonp;

View file

@ -1,12 +1,12 @@
{
"name": "simple-jsonp-promise",
"version": "1.0.4",
"version": "1.0.5",
"description": "",
"main": "index.js",
"main": "build/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "babel index.js --out-dir .",
"prepublish": "yarn run build"
"build": "babel src -d build",
"precommit":"yarn run build"
},
"repository": {
"type": "git",