76 lines
2.3 KiB
JavaScript
Executable File
76 lines
2.3 KiB
JavaScript
Executable File
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
define([
|
|
'jquery',
|
|
'js-storage/js.storage'
|
|
], function ($, storage) {
|
|
'use strict';
|
|
|
|
if (window.cookieStorage) {
|
|
var cookiesConfig = window.cookiesConfig || {};
|
|
|
|
$.extend(window.cookieStorage, {
|
|
_secure: !!cookiesConfig.secure,
|
|
_samesite: cookiesConfig.samesite ? cookiesConfig.samesite : 'lax',
|
|
|
|
/**
|
|
* Set value under name
|
|
* @param {String} name
|
|
* @param {String} value
|
|
* @param {Object} [options]
|
|
*/
|
|
setItem: function (name, value, options) {
|
|
var _default = {
|
|
expires: this._expires,
|
|
path: this._path,
|
|
domain: this._domain,
|
|
secure: this._secure,
|
|
samesite: this._samesite
|
|
};
|
|
|
|
$.cookie(this._prefix + name, value, $.extend(_default, options || {}));
|
|
},
|
|
|
|
/**
|
|
* Set default options
|
|
* @param {Object} c
|
|
* @returns {storage}
|
|
*/
|
|
setConf: function (c) {
|
|
if (c.path) {
|
|
this._path = c.path;
|
|
}
|
|
|
|
if (c.domain) {
|
|
this._domain = c.domain;
|
|
}
|
|
|
|
if (c.expires) {
|
|
this._expires = c.expires;
|
|
}
|
|
|
|
if (typeof c.secure !== 'undefined') {
|
|
this._secure = c.secure;
|
|
}
|
|
|
|
if (typeof c.samesite !== 'undefined') {
|
|
this._samesite = c.samesite;
|
|
}
|
|
|
|
return this;
|
|
}
|
|
});
|
|
}
|
|
|
|
$.alwaysUseJsonInStorage = $.alwaysUseJsonInStorage || storage.alwaysUseJsonInStorage;
|
|
$.cookieStorage = $.cookieStorage || storage.cookieStorage;
|
|
$.initNamespaceStorage = $.initNamespaceStorage || storage.initNamespaceStorage;
|
|
$.localStorage = $.localStorage || storage.localStorage;
|
|
$.namespaceStorages = $.namespaceStorages || storage.namespaceStorages;
|
|
$.removeAllStorages = $.removeAllStorages || storage.removeAllStorages;
|
|
$.sessionStorage = $.sessionStorage || storage.sessionStorage;
|
|
});
|