jcc_rpc
Version:
rpc api of jcc
59 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var url = require("url");
exports.pendingTasks = (function () {
var tasks = [];
var remove = function (config) {
var pathname = exports.getPath(config);
if (pathname) {
tasks = tasks.filter(function (task) { return task.pathname !== pathname; });
}
};
var cancel = function (config) {
var pathname = exports.getPath(config);
if (pathname) {
var pendings = tasks.filter(function (task) { return task.pathname === pathname; });
for (var _i = 0, pendings_1 = pendings; _i < pendings_1.length; _i++) {
var pendingTask = pendings_1[_i];
pendingTask.cancel();
}
tasks = tasks.filter(function (task) { return task.pathname !== pathname; });
}
};
var add = function (task) {
tasks.push(task);
};
var clear = function () {
tasks = [];
};
var get = function () {
return tasks;
};
return {
add: add,
cancel: cancel,
clear: clear,
get: get,
remove: remove
};
})();
var string2hex = function (input) {
var str = unescape(encodeURIComponent(input));
var ouput = "";
for (var i = 0, len = str.length; i < len; i++) {
ouput += str.charCodeAt(i).toString(16);
}
return ouput.toUpperCase();
};
exports.getPath = function (config) {
var pathname;
try {
var parsedUrl = new url.URL(config.url);
pathname = string2hex(parsedUrl.pathname + config.method);
}
catch (error) {
pathname = null;
}
return pathname;
};
//# sourceMappingURL=index.js.map