forked from off-topic/apps.apple.com
init commit
This commit is contained in:
76
node_modules/@jet/environment/metrics/helpers/util.js
generated
vendored
Normal file
76
node_modules/@jet/environment/metrics/helpers/util.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.searchTermFromRefURL = exports.extractSiriRefAppFromRefURL = exports.idTypeForMetricsOptions = exports.targetTypeForMetricsOptions = void 0;
|
||||
const optional_1 = require("../../types/optional");
|
||||
const urls = require("../../util/urls");
|
||||
/**
|
||||
* Returns click target type for given base metrics options.
|
||||
* @param options - Base metrics options to derive click target type for.
|
||||
*/
|
||||
function targetTypeForMetricsOptions(options) {
|
||||
let type = options.targetType;
|
||||
if ((0, optional_1.isNothing)(type)) {
|
||||
type = "lockup" /* MetricsClickTargetType.lockup */;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
exports.targetTypeForMetricsOptions = targetTypeForMetricsOptions;
|
||||
/**
|
||||
* Returns metrics ID type for given content metrics options.
|
||||
* @param options - Content metrics options to derive metrics ID type for.
|
||||
*/
|
||||
function idTypeForMetricsOptions(options) {
|
||||
let type = options.idType;
|
||||
if ((0, optional_1.isNothing)(type)) {
|
||||
type = "its_id" /* MetricsIDType.itsID */;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
exports.idTypeForMetricsOptions = idTypeForMetricsOptions;
|
||||
/**
|
||||
* Extract and return Siri reference app from URL string.
|
||||
* @param refUrlString - URL string.
|
||||
* @returns An optional Siri reference app string.
|
||||
*/
|
||||
function extractSiriRefAppFromRefURL(urlString) {
|
||||
const refUrl = new urls.URL(urlString);
|
||||
if ((0, optional_1.isNothing)(refUrl.query)) {
|
||||
return null;
|
||||
}
|
||||
let extractedRefApp = null;
|
||||
for (const key of Object.keys(refUrl.query)) {
|
||||
if (key === "referrer") {
|
||||
if (refUrl.query[key] === "siri") {
|
||||
extractedRefApp = "com.apple.siri";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return extractedRefApp;
|
||||
}
|
||||
exports.extractSiriRefAppFromRefURL = extractSiriRefAppFromRefURL;
|
||||
/**
|
||||
* Extract and return search term from reference URL string.
|
||||
* @param refUrlString - Reference URL string.
|
||||
* @returns An optional search term string.
|
||||
*/
|
||||
function searchTermFromRefURL(refUrlString) {
|
||||
const refUrl = new urls.URL(refUrlString);
|
||||
const queryItems = refUrl.query;
|
||||
if ((0, optional_1.isNothing)(queryItems)) {
|
||||
return null;
|
||||
}
|
||||
const searchTerm = queryItems["term"];
|
||||
const path = refUrl.pathname;
|
||||
if ((0, optional_1.isNothing)(searchTerm) || (0, optional_1.isNothing)(path)) {
|
||||
return null;
|
||||
}
|
||||
if (!path.endsWith("/search")) {
|
||||
return null;
|
||||
}
|
||||
// the url object has already url-decoded this query parameter
|
||||
const plainTerm = searchTerm;
|
||||
return plainTerm;
|
||||
}
|
||||
exports.searchTermFromRefURL = searchTermFromRefURL;
|
||||
//# sourceMappingURL=util.js.map
|
||||
Reference in New Issue
Block a user