@segment/analytics-next
Version:
Analytics Next (aka Analytics 2.0) is the latest version of Segment’s JavaScript SDK - enabling you to send your data to any tool without having to learn, test, or use a new API every time.
48 lines • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.queryString = void 0;
var pickPrefix_1 = require("./pickPrefix");
var gracefulDecodeURIComponent_1 = require("./gracefulDecodeURIComponent");
var analytics_core_1 = require("@segment/analytics-core");
function queryString(analytics, query) {
var a = document.createElement('a');
a.href = query;
var parsed = a.search.slice(1);
var params = parsed.split('&').reduce(function (acc, str) {
var _a = str.split('='), k = _a[0], v = _a[1];
acc[k] = (0, gracefulDecodeURIComponent_1.gracefulDecodeURIComponent)(v);
return acc;
}, {});
var calls = [];
var ajs_uid = params.ajs_uid, ajs_event = params.ajs_event, ajs_aid = params.ajs_aid;
var _a = (0, analytics_core_1.isPlainObject)(analytics.options.useQueryString)
? analytics.options.useQueryString
: {}, _b = _a.aid, aidPattern = _b === void 0 ? /.+/ : _b, _c = _a.uid, uidPattern = _c === void 0 ? /.+/ : _c;
if (ajs_aid) {
var anonId = Array.isArray(params.ajs_aid)
? params.ajs_aid[0]
: params.ajs_aid;
if (aidPattern.test(anonId)) {
analytics.setAnonymousId(anonId);
}
}
if (ajs_uid) {
var uid = Array.isArray(params.ajs_uid)
? params.ajs_uid[0]
: params.ajs_uid;
if (uidPattern.test(uid)) {
var traits = (0, pickPrefix_1.pickPrefix)('ajs_trait_', params);
calls.push(analytics.identify(uid, traits));
}
}
if (ajs_event) {
var event_1 = Array.isArray(params.ajs_event)
? params.ajs_event[0]
: params.ajs_event;
var props = (0, pickPrefix_1.pickPrefix)('ajs_prop_', params);
calls.push(analytics.track(event_1, props));
}
return Promise.all(calls);
}
exports.queryString = queryString;
//# sourceMappingURL=index.js.map