# src/cookie.js | tablefilter v0.4.16 API Document

# src/cookie.js

    import {root} from './root';

    /**
     * Cookie utilities
     */

    const doc = root.document;

    export default {

        /**
         * Write a cookie
         * @param {String} name Name of the cookie
         * @param {String} value Value of the cookie
         * @param {Number} hours Cookie duration in hours
         */
        write(name, value, hours) {
            let expire = '';
            if (hours) {
                expire = new Date((new Date()).getTime() + hours * 3600000);
                expire = '; expires=' + expire.toGMTString();
            }
            doc.cookie = name + '=' + escape(value) + expire;
        },

        /**
         * Read a cookie
         * @param {String} name Name of the cookie
         * @returns {String} Value of the cookie
         */
        read(name) {
            let cookieValue = '',
                search = name + '=';
            if (doc.cookie.length > 0) {
                let cookie = doc.cookie,
                    offset = cookie.indexOf(search);
                if (offset !== -1) {
                    offset += search.length;
                    let end = cookie.indexOf(';', offset);
                    if (end === -1) {
                        end = cookie.length;
                    }
                    cookieValue = unescape(cookie.substring(offset, end));
                }
            }
            return cookieValue;
        },

        /**
         * Remove a cookie
         * @param {String} name Name of the cookie
         */
        remove(name) {
            this.write(name, '', -1);
        }

    };