UNPKG

968 BJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.stdin = exports.stderr = exports.stdout = void 0;
4const mock = require("stdout-stderr");
5const create = (std) => (opts = {}) => ({
6 run(ctx) {
7 mock[std].start();
8 mock[std].print = opts.print || process.env.TEST_OUTPUT === '1';
9 mock[std].stripColor = opts.stripColor !== false;
10 if (ctx[std] !== undefined)
11 return;
12 Object.defineProperty(ctx, std, {
13 get: () => mock[std].output,
14 });
15 },
16 finally() {
17 mock[std].stop();
18 },
19});
20exports.stdout = create('stdout');
21exports.stderr = create('stderr');
22const stdin = (input, delay = 0) => {
23 let stdin;
24 return {
25 run: () => {
26 stdin = require('mock-stdin').stdin();
27 setTimeout(() => stdin.send(input), delay);
28 },
29 finally() {
30 stdin.restore();
31 },
32 };
33};
34exports.stdin = stdin;