UNPKG

h-cookie

Version:

A simple API for JavaScript to handle cookie storage

2 lines (1 loc) 2.18 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).h=e.h||{},e.h.cookie=t())}(this,(function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}var t=function(e,t,r){if(arguments.length>1&&"[object Object]"!==String(t)){if(r=o({path:"/",expires:new Date((new Date).getTime()+864e5)},r),null==t&&(r.expires=-1),"number"==typeof r.expires){var i=r.expires,u=r.expires=new Date;u.setDate(u.getDate()+i)}return t=String(t),document.cookie=[encodeURIComponent(e),"=",r.raw?t:n(t),r.expires?"; expires="+r.expires.toUTCString():"",r.path?"; path="+r.path:"",r.domain?"; domain="+r.domain:"",r.secure?"; secure":""].join("")}var c,p=(r=t||{}).raw?function(e){return e}:decodeURIComponent;return(c=new RegExp("(?:^|; )"+encodeURIComponent(e)+"=([^;]*)").exec(document.cookie))?p(c[1]):null};function n(e){return encodeURIComponent(e).replace(/(%7B|%7D|%3A|%22|%23|%5B|%5D)/g,(function(e){return decodeURIComponent(e)}))}var o=function t(){var n,o,r,i,u,p,f=arguments[0]||{},a=1,s=arguments.length,l=!1;for("boolean"==typeof f&&(l=f,f=arguments[a]||{},a++),"object"===e(f)||isFunction(f)||(f={}),a===s&&(f=this,a--);a<s;a++)if(null!=(n=arguments[a]))for(o in n)i=n[o],"__proto__"!==o&&f!==i&&(l&&i&&(c(i)||(u=Array.isArray(i)))?(r=f[o],p=u&&!Array.isArray(r)?[]:u||c(r)?r:{},u=!1,f[o]=t(l,p,i)):void 0!==i&&(f[o]=i));return f},r=Object.getPrototypeOf,i={}.hasOwnProperty,u=i.toString,c=function(e){var t,n;return!(!e||"[object Object]"!==toString.call(e))&&(!(t=r(e))||"function"==typeof(n=i.call(t,"constructor")&&t.constructor)&&u.call(n)===ObjectFunctionString)};return{set:function(e,n,o){var r=o&&o.path||"/",i=o&&o.expires||1,u=isNaN(Number(i))?1:Number(i),c=new Date((new Date).getTime()+864e5*u);return t(e,JSON.stringify(n),{path:r,expires:c})},get:function(e){return t(e)?JSON.parse(t(e)):null},del:function(e){return t(e,null,{expires:-1})}}}));