HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
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/zaklada/html/node_modules/istanbul/lib/store/tmp.js
/*
 Copyright (c) 2012, Yahoo! Inc.  All rights reserved.
 Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */

var util = require('util'),
    path = require('path'),
    os = require('os'),
    fs = require('fs'),
    mkdirp = require('mkdirp'),
    Store = require('./index');

function makeTempDir() {
    var dir = path.join(os.tmpDir ? os.tmpDir() : /* istanbul ignore next */ (process.env.TMPDIR || '/tmp'), 'ts' + new Date().getTime());
    mkdirp.sync(dir);
    return dir;
}
/**
 * a `Store` implementation using temporary files.
 *
 * Usage
 * -----
 *
 *      var store = require('istanbul').Store.create('tmp');
 *
 *
 * @class TmpStore
 * @extends Store
 * @module store
 * @param {Object} opts Optional.
 * @param {String} [opts.tmp] a pre-existing directory to use as the `tmp` directory. When not specified, a random directory
 *      is created under `os.tmpDir()`
 * @constructor
 */
function TmpStore(opts) {
    opts = opts || {};
    this.tmp = opts.tmp || makeTempDir();
    this.map = {};
    this.seq = 0;
    this.prefix = 't' + new Date().getTime() + '-';
}

TmpStore.TYPE = 'tmp';
util.inherits(TmpStore, Store);

Store.mix(TmpStore, {
    generateTmpFileName: function () {
        this.seq += 1;
        return this.prefix + this.seq + '.tmp';
    },

    set: function (key, contents) {
        var tmpFile = this.generateTmpFileName();
        fs.writeFileSync(tmpFile, contents, 'utf8');
        this.map[key] = tmpFile;
    },

    get: function (key) {
        var tmpFile = this.map[key];
        if (!tmpFile) { throw new Error('Unable to find tmp entry for [' + tmpFile + ']'); }
        return fs.readFileSync(tmpFile, 'utf8');
    },

    hasKey: function (key) {
        return !!this.map[key];
    },

    keys: function () {
        return Object.keys(this.map);
    },

    dispose: function () {
        var map = this.map;
        Object.keys(map).forEach(function (key) {
            fs.unlinkSync(map[key]);
        });
        this.map = {};
    }
});

module.exports = TmpStore;