safelinkify
Version:
NodeJS anonymizer external links into outbound page. Anonymize external links to outbound page redirector for SEO.
51 lines (50 loc) • 1.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = resolveQueryUrl;
var encryptionURL_1 = __importDefault(require("./encryptionURL"));
var parseQuery_1 = require("./parseQuery");
var toURL_1 = __importDefault(require("./toURL"));
var _global_resolveQueryUrl = (typeof window !== 'undefined' ? window : global);
/**
* Auto resolve url
* * parse base64, aes
* @param url url string or instance, null = {@link window.location.search}
* @param passphrase aes password
* @returns
*/
function resolveQueryUrl(url, passphrase, debug) {
if (passphrase === void 0) { passphrase = 'root'; }
if (debug === void 0) { debug = false; }
var result = {};
var href = null;
if (url instanceof URL) {
href = url.href;
}
else if (typeof url == 'string') {
if (url.match(/^(#|\?)/)) {
href = 'http://not.actually.domain/' + url;
}
else {
var parse = (0, toURL_1.default)(url);
if (parse)
href = parse.href;
}
}
else if (typeof location == 'object' && typeof location.href == 'string') {
href = location.href;
}
if (!href || !href.match(/#|\?/))
return null;
var parse_query_url = (0, parseQuery_1.parseQuery)(null, href);
if (parse_query_url) {
Object.keys(parse_query_url).forEach(function (key) {
var value = parse_query_url[key];
result[key] = (0, encryptionURL_1.default)(value, passphrase, debug);
});
}
return result;
}
_global_resolveQueryUrl.resolveQueryUrl = resolveQueryUrl;