UNPKG

core-cookie

Version:

cookie

94 lines (93 loc) 3.15 kB
"use strict"; Object.defineProperty(exports,"__esModule",{value:true}); var DefaultCookieService=(function(){ function DefaultCookieService(document){ this.documentIsAccessible = true; this.document = document; } DefaultCookieService.prototype.check=function(name){ if (!this.documentIsAccessible){ return false; } name = encodeURIComponent(name); var regExp = this.getCookieRegExp(name); var exists = regExp.test(this.document.cookie); return exists; }; DefaultCookieService.prototype.get=function(name){ if (this.documentIsAccessible && this.check(name)){ name = encodeURIComponent(name); var regExp = this.getCookieRegExp(name); var result = regExp.exec(this.document.cookie); return decodeURIComponent(result[1]); } else { return ''; } }; DefaultCookieService.prototype.getAll=function(){ if (!this.documentIsAccessible){ return {}; } var cookies = {}; var document = this.document; if (document.cookie && document.cookie !== ''){ var split = document.cookie.split(';'); for (var _i = 0, split_1 = split; _i < split_1.length; _i++){ var item = split_1[_i]; var currentCookie = item.split('='); currentCookie[0] = currentCookie[0].replace(/^ /, ''); cookies[decodeURIComponent(currentCookie[0])] = decodeURIComponent(currentCookie[1]); } } return cookies; }; DefaultCookieService.prototype.set=function(name, value, expires, path, domain, secure){ if (!this.documentIsAccessible){ return; } var cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';'; if (expires){ if (typeof expires === 'number'){ var dateExpires = new Date(new Date().getTime() + expires * 1000 * 60 * 60 * 24); cookieString += 'expires=' + dateExpires.toUTCString() + ';'; } else { cookieString += 'expires=' + expires.toUTCString() + ';'; } } if (path){ cookieString += 'path=' + path + ';'; } if (domain){ cookieString += 'domain=' + domain + ';'; } if (secure){ cookieString += 'secure;'; } this.document.cookie = cookieString; }; DefaultCookieService.prototype.delete=function(name, path, domain){ if (!this.documentIsAccessible){ return; } this.set(name, '', -1, path, domain); }; DefaultCookieService.prototype.deleteAll=function(path, domain){ if (!this.documentIsAccessible){ return; } var cookies = this.getAll(); for (var cookieName in cookies){ if (cookies.hasOwnProperty(cookieName)){ this.delete(cookieName, path, domain); } } }; DefaultCookieService.prototype.getCookieRegExp=function(name){ var escapedName = name.replace(/([\[\]\{\}\(\)\|\=\;\+\?\,\.\*\^\$])/ig, '\\$1'); return new RegExp('(?:^' + escapedName + '|;\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g'); }; return DefaultCookieService; }()); exports.DefaultCookieService = DefaultCookieService;