electron-oauth-helper
Version:
Easy to use helper library for OAuth1 and OAuth2.
41 lines • 1.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var debug_1 = __importDefault(require("debug"));
var debug = debug_1.default("eoh:helper");
exports.awaitRedirect = function (redirectURL, webRequest) {
if (!redirectURL || !webRequest) {
return Promise.reject(new Error("Invalid parameter"));
}
var isRedirectURL = function (url) {
return url.startsWith(redirectURL);
};
return new Promise(function (resolve) {
debug("Await redirect", redirectURL);
var filterUrl = redirectURL;
if (filterUrl.endsWith("*")) {
filterUrl += "*";
}
webRequest.onBeforeRequest(function (detail, callback) {
debug("will request", detail);
if (isRedirectURL(detail.url)) {
callback({ cancel: true });
debug("resolve with", detail.url);
resolve(detail.url);
return;
}
callback({ cancel: false });
});
webRequest.onBeforeRedirect({ urls: [filterUrl] }, function (detail) {
debug("will redirect", detail);
if (isRedirectURL(detail.redirectURL)) {
debug("resolve with", detail.redirectURL);
resolve(detail.redirectURL);
return;
}
});
});
};
//# sourceMappingURL=awaitRedirect.js.map