optinout.js
Version:
a simple js framework for handling opt-in and opt-out for tracking & cookies
51 lines (39 loc) • 1.24 kB
JavaScript
import basicDataStorage from './data';
const Storage = (startData, userOptions) => {
const dataStorage = basicDataStorage(startData);
const defaultOptions = {
ajaxUrl: false,
additionalData: false,
ajaxFunction: null,
ajaxOptions: {},
};
const options = Object.assign({}, defaultOptions, userOptions);
const setItem = (service, key, value, update) => {
const currentValue = dataStorage.get(service) || false;
dataStorage.set(service, key, value, update);
if (options.ajaxFunction) {
const ajaxData = Object.assign({}, options.additionalData, {
service,
key,
value,
update,
currentValue,
});
options.ajaxFunction(options.ajaxUrl, ajaxData, options.ajaxOptions);
return true;
}
return false;
};
const removeItem = (service, key) => {
setItem(service, key, null, false);
dataStorage.delete(service, key);
return true;
};
return {
get: (service, key) => dataStorage.get(service, key),
set: (service, key, value, update) => setItem(service, key, value, update),
delete: (service, key) => removeItem(service, key),
getData: () => dataStorage.getData(),
};
};
export default Storage;