HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ai-notam/node_modules/eslint-plugin-node/lib/util/cache.js
/**
 * @author Toru Nagashima
 * See LICENSE file in root directory for full license.
 */
"use strict"

const SKIP_TIME = 5000

/**
 * The class of cache.
 * The cache will dispose of each value if the value has not been accessed
 * during 5 seconds.
 */
module.exports = class Cache {
    /**
     * Initialize this cache instance.
     */
    constructor() {
        this.map = new Map()
    }

    /**
     * Get the cached value of the given key.
     * @param {any} key The key to get.
     * @returns {any} The cached value or null.
     */
    get(key) {
        const entry = this.map.get(key)
        const now = Date.now()

        if (entry) {
            if (entry.expire > now) {
                entry.expire = now + SKIP_TIME
                return entry.value
            }
            this.map.delete(key)
        }
        return null
    }

    /**
     * Set the value of the given key.
     * @param {any} key The key to set.
     * @param {any} value The value to set.
     * @returns {void}
     */
    set(key, value) {
        const entry = this.map.get(key)
        const expire = Date.now() + SKIP_TIME

        if (entry) {
            entry.value = value
            entry.expire = expire
        } else {
            this.map.set(key, { value, expire })
        }
    }
}