Библиотека для работы с cookies (tasty-cookies)

от автора

История старая, я так думаю, все помнят window.cookie = ‘…’ (а может кто этим пользуется), жутко неудобная штука.

Приведу пример на нативном js:

// Добавление печенья function setCookie(key, value) {   window.cookie = key + '=' + encodeURIComponent(JSON.stringify(value)); }  // Получение печенья function getCookie(key) {   var matches = document.cookie.match(new RegExp(     '(?:^|; )' + key.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'   ));   return JSON.parse(decodeURIComponent(matches[1])); }  // Добавляем строку setCookie('string', 'Моя строка'); // Добавляю объект setCookie('object', {a: 1, b: 2});  // Получаю объект var object = getCookie('object'); 


Давным-давно в закаулках сети я нашёл такую замечательнуюи вещь как jQuery cookie, но со временем я стал осознавать, что одного метода мне уже не хватает для удобной работы с печеньем.

Тот же пример с jQuery cookie:

// Добавляем строку $.cookie('string', 'Моя строка'); // Добавляю объект $.cookie('object', {a: 1, b: 2});  // Получаю объект var object = $.cookie('object'); 

Совсем не давно я стал знакомиться с angular, и как не странно у них тоже своя реализация cookies, не много лучше, но мне она кажется немного «странной», «мудрёной». Методы putObject, getObject — вообще ужас, и зачем они?

И опять пример:

angular.module('cookiesExample', ['ngCookies']) .controller('ExampleController', ['$cookies', function($cookies) {   // Добавляем строку   $cookies.put('string', 'Моя строка');   // Добавляю объект   $cookies.putObject('object', {a: 1, b: 2});    // Получаю объект   var object = $cookies.getObject('object'); }]); 

Мне надоело это разнообразие красок, хотелось бы чего нибудь одного такого теплого, уютного что бы выполняло самые простые вещи и давало отличные инструменты для работы с cookie. Я ушёл глубоко в поиск и к моему удивлению я не чего подходящего мне не нашёл, в не которые библиотеках не хватало методов, в других методов достаточно но они странные для меня. Может я слишком придирчив?

На почве этого всего я решил изобрести свой велосипед с максимально круглыми колёсами и удобным сидением. Мне кажется это правильно. Работа затянулась на несколько суток, в общем вот что получилось сама библиотека tasty-cookies ну и русская документация.

Пример работы tasty-cookies:

Cookie.set({   // Добавляем строку   string: 'Моя строка',   // Добавляю объект   object: {a: 1, b: 2} });  // Получаю объект var object = Cookie.get('object'); 

Она использует объект JSON поэтому если надо поддержка старых браузеров можно подтянуть грабли типо JSON 3, хотя, о чем это я?

Хотелось бы услышать критики, оценки работы, ну и само собой предложений по улучшению библиотеки.

ссылка на оригинал статьи https://habrahabr.ru/post/280998/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *