[메모] devtalk util 모음

임택·2021년 3월 5일
0

메모

목록 보기
2/14
export const $ = (sel) => document.querySelector(sel);
export const create = (name = 'div') => document.createElement(name);
export const append = (child, parent = $('#root')) => parent.appendChild(child);
export const editClass = method => (name, el) => el.classList[method](name);
export const removeClass = editClass('remove');
export const addClass = editClass('add');
export const toggleClass = editClass('toggle');
export const tap = f => (a, ...rest) => (f(a, ...rest), a);
export const transitioned = f => el => new Promise(resolve => 
    setTimeout(_ => {
        f(el);
        el.addEventListener('transitionend', () => resolve(el), { once: true });
    }), 1);
export const show = transitioned(el => removeClass('hide', el));
export const delay = (time, a) => new Promise(resolve => 
    setTimeout(_ => resolve(a), time)
);
export const nop = Symbol('nop');
export const race50 = async (...promises) => await Promise.race(
    [
        ...promises, 
        delay(50, nop)
    ]
);

// local storage
window.Storage.prototype.setObj = function (key, obj) {
    return this.setItem(key, JSON.stringify(obj));
};
window.Storage.prototype.getObj = function (key) {
    return JSON.parse(this.getItem(key));
};
export const setObjtoLocal = (k, v) => {
    return window.localStorage.setObj(k, v);
};
export const getObjfromLocal = (k, v) => {
    return window.localStorage.getObj(k, v);
};
profile
캬-!

0개의 댓글