Skip to content

Instantly share code, notes, and snippets.

View morellodev's full-sized avatar

Dennis Morello morellodev

View GitHub Profile
@morellodev
morellodev / localstorage-1.js
Created April 26, 2019 10:00
LocalStorage - Save Data
if ('localStorage' in window) {
localStorage.setItem('theme', 'dark');
}
@morellodev
morellodev / localstorage-2.js
Created April 26, 2019 10:01
LocalStorage - Save Serialized Data
const serializedData = JSON.stringify(myData);
localStorage.setItem('data', serializedData);
@morellodev
morellodev / localstorage-3.js
Created April 26, 2019 10:02
LocalStorage - Retrieve Data
let savedTheme;
if ('localStorage' in window) {
savedTheme = localStorage.getItem('theme');
}
@morellodev
morellodev / localstorage-4.js
Created April 26, 2019 10:03
LocalStorage - Retrieve Serialized Data
const serializedData = localStorage.getItem('data');
const myData = JSON.parse(serializedData);
@morellodev
morellodev / kv-storage.js
Created April 26, 2019 10:04
KV Storage - Example
import { storage } from 'std:kv-storage';
(async () => {
await storage.set('mycat', 'Tom');
console.assert((await storage.get('mycat')) === 'Tom');
for await (const [key, value] of storage.entries()) {
console.log(key, value);
}
@morellodev
morellodev / strictEquals.js
Last active November 5, 2020 14:08
JS Strict Equal Operator (===) Implementation using Object.is Value Identity
/**
* a === b is true if a and b have the same value, with the following exceptions:
* - NaN === NaN is false
* - 0 === -0 is true
*/
function strictEquals(a, b) {
if (Object.is(a, NaN) && Object.is(b, NaN)) {
return false;
}
@morellodev
morellodev / urlSafeBase64Utils.js
Created February 20, 2021 10:52
Functions to encode and decode URL safe Base64 strings
const objectToUrlSafeBase64 = (obj) => {
const stringifiedObject = JSON.stringify(obj);
const base64String = btoa(stringifiedObject);
return encodeURIComponent(base64String);
};
const urlSafeBase64ToObject = (urlSafeBase64String) => {
const base64String = decodeURIComponent(urlSafeBase64String);
const stringifiedObject = atob(base64String);
@morellodev
morellodev / useCookieValue.js
Last active March 24, 2021 10:33
Custom React Hook for reading a cookie value and listening for changes (by polling, to be compatible with all browsers)
import Cookie from "js-cookie";
import { useCallback, useEffect, useRef, useState } from "react";
const useCookieValue = (name) => {
const cookieUpdaterId = useRef();
const [currentCookie, setCurrentCookie] = useState(() => Cookie.get(name));
const updateCookie = useCallback(() => {
const cookie = Cookie.get(name);