1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.stdin = exports.stderr = exports.stdout = void 0;
|
4 | const mock = require("stdout-stderr");
|
5 | const 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 | });
|
20 | exports.stdout = create('stdout');
|
21 | exports.stderr = create('stderr');
|
22 | const 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 | };
|
34 | exports.stdin = stdin;
|