update
This commit is contained in:
3
package/node_modules/read/dist/commonjs/package.json
generated
vendored
Normal file
3
package/node_modules/read/dist/commonjs/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
95
package/node_modules/read/dist/commonjs/read.js
generated
vendored
Normal file
95
package/node_modules/read/dist/commonjs/read.js
generated
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.read = void 0;
|
||||
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, }) {
|
||||
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 });
|
||||
// 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 */
|
||||
});
|
||||
}
|
||||
exports.read = read;
|
||||
//# sourceMappingURL=read.js.map
|
3
package/node_modules/read/dist/esm/package.json
generated
vendored
Normal file
3
package/node_modules/read/dist/esm/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
88
package/node_modules/read/dist/esm/read.js
generated
vendored
Normal file
88
package/node_modules/read/dist/esm/read.js
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
import Mute from 'mute-stream';
|
||||
import { createInterface } from 'readline';
|
||||
export async function read({ default: def, input = process.stdin, output = process.stdout, completer, prompt = '', silent, timeout, edit, terminal, replace, }) {
|
||||
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({ replace, prompt });
|
||||
m.pipe(output, { end: false });
|
||||
output = m;
|
||||
return new Promise((resolve, reject) => {
|
||||
const rl = createInterface({ input, output, terminal, completer });
|
||||
// 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
|
Reference in New Issue
Block a user