File Explorer

/var/lang/lib/node_modules/npm/node_modules/read/dist/commonjs

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

read.js3.1 KB · 94 lines
"use strict";var __importDefault = (this && this.__importDefault) || function (mod) {    return (mod && mod.__esModule) ? mod : { "default": mod };};Object.defineProperty(exports, "__esModule", { value: true });exports.read = read;const mute_stream_1 = __importDefault(require("mute-stream"));const readline_1 = require("readline");async function read({ default: def, input = process.stdin, output = process.stdout, completer, prompt = '', silent, timeout, edit, terminal, replace, history, }) {    if (typeof def !== 'undefined' &&        typeof def !== 'string' &&        typeof def !== 'number') {        throw new Error('default value must be string or number');    }    let editDef = false;    const defString = def?.toString();    prompt = prompt.trim() + ' ';    terminal = !!(terminal || output.isTTY);    if (defString) {        if (silent) {            prompt += '(<default hidden>) ';            // TODO: add tests for edit            /* c8 ignore start */        }        else if (edit) {            editDef = true;            /* c8 ignore stop */        }        else {            prompt += '(' + defString + ') ';        }    }    const m = new mute_stream_1.default({ replace, prompt });    m.pipe(output, { end: false });    output = m;    return new Promise((resolve, reject) => {        const rl = (0, readline_1.createInterface)({ input, output, terminal, completer, history });        // TODO: add tests for timeout        /* c8 ignore start */        const timer = timeout && setTimeout(() => onError(new Error('timed out')), timeout);        /* c8 ignore stop */        m.unmute();        rl.setPrompt(prompt);        rl.prompt();        if (silent) {            m.mute();            // TODO: add tests for edit + default            /* c8 ignore start */        }        else if (editDef && defString) {            const rlEdit = rl;            rlEdit.line = defString;            rlEdit.cursor = defString.length;            rlEdit._refreshLine();        }        /* c8 ignore stop */        const done = () => {            rl.close();            clearTimeout(timer);            m.mute();            m.end();        };        // TODO: add tests for rejecting        /* c8 ignore start */        const onError = (er) => {            done();            reject(er);        };        /* c8 ignore stop */        rl.on('error', onError);        rl.on('line', line => {            // TODO: add tests for silent            /* c8 ignore start */            if (silent && terminal) {                m.unmute();            }            /* c8 ignore stop */            done();            // TODO: add tests for default            /* c8 ignore start */            // truncate the \n at the end.            return resolve(line.replace(/\r?\n?$/, '') || defString || '');            /* c8 ignore stop */        });        // TODO: add tests for sigint        /* c8 ignore start */        rl.on('SIGINT', () => {            rl.close();            onError(new Error('canceled'));        });        /* c8 ignore stop */    });}//# sourceMappingURL=read.js.map