@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.
64 lines • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.applyCookieOptions = exports.initializeStorages = void 0;
var tslib_1 = require("tslib");
var cookieStorage_1 = require("./cookieStorage");
var localStorage_1 = require("./localStorage");
var memoryStorage_1 = require("./memoryStorage");
var settings_1 = require("./settings");
var types_1 = require("./types");
tslib_1.__exportStar(require("./types"), exports);
tslib_1.__exportStar(require("./localStorage"), exports);
tslib_1.__exportStar(require("./cookieStorage"), exports);
tslib_1.__exportStar(require("./memoryStorage"), exports);
tslib_1.__exportStar(require("./universalStorage"), exports);
tslib_1.__exportStar(require("./settings"), exports);
/**
* Creates multiple storage systems from an array of StoreType and options
* @param args StoreType and options
* @returns Storage array
*/
function initializeStorages(args) {
var storages = args.map(function (s) {
var type;
var settings;
if ((0, settings_1.isStoreTypeWithSettings)(s)) {
type = s.name;
settings = s.settings;
}
else {
type = s;
}
switch (type) {
case types_1.StoreType.Cookie:
return new cookieStorage_1.CookieStorage(settings);
case types_1.StoreType.LocalStorage:
return new localStorage_1.LocalStorage();
case types_1.StoreType.Memory:
return new memoryStorage_1.MemoryStorage();
default:
throw new Error("Unknown Store Type: ".concat(s));
}
});
return storages;
}
exports.initializeStorages = initializeStorages;
/**
* Injects the CookieOptions into a the arguments for initializeStorage
* @param storeTypes list of storeType
* @param cookieOptions cookie Options
* @returns arguments for initializeStorage
*/
function applyCookieOptions(storeTypes, cookieOptions) {
return storeTypes.map(function (s) {
if (cookieOptions && s === types_1.StoreType.Cookie) {
return {
name: s,
settings: cookieOptions,
};
}
return s;
});
}
exports.applyCookieOptions = applyCookieOptions;
//# sourceMappingURL=index.js.map