mirror of
https://github.com/github/codeql-action.git
synced 2025-12-13 19:17:12 +08:00
* Bump @ava/typescript from 3.0.1 to 4.0.0 Bumps [@ava/typescript](https://github.com/avajs/typescript) from 3.0.1 to 4.0.0. - [Release notes](https://github.com/avajs/typescript/releases) - [Commits](https://github.com/avajs/typescript/compare/v3.0.1...v4.0.0) --- updated-dependencies: - dependency-name: "@ava/typescript" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Update checked-in dependencies --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions@github.com>
43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
import {createWriteStream} from 'node:fs';
|
|
import {ChildProcess} from 'node:child_process';
|
|
import {isWritableStream} from 'is-stream';
|
|
|
|
const isExecaChildProcess = target => target instanceof ChildProcess && typeof target.then === 'function';
|
|
|
|
const pipeToTarget = (spawned, streamName, target) => {
|
|
if (typeof target === 'string') {
|
|
spawned[streamName].pipe(createWriteStream(target));
|
|
return spawned;
|
|
}
|
|
|
|
if (isWritableStream(target)) {
|
|
spawned[streamName].pipe(target);
|
|
return spawned;
|
|
}
|
|
|
|
if (!isExecaChildProcess(target)) {
|
|
throw new TypeError('The second argument must be a string, a stream or an Execa child process.');
|
|
}
|
|
|
|
if (!isWritableStream(target.stdin)) {
|
|
throw new TypeError('The target child process\'s stdin must be available.');
|
|
}
|
|
|
|
spawned[streamName].pipe(target.stdin);
|
|
return target;
|
|
};
|
|
|
|
export const addPipeMethods = spawned => {
|
|
if (spawned.stdout !== null) {
|
|
spawned.pipeStdout = pipeToTarget.bind(undefined, spawned, 'stdout');
|
|
}
|
|
|
|
if (spawned.stderr !== null) {
|
|
spawned.pipeStderr = pipeToTarget.bind(undefined, spawned, 'stderr');
|
|
}
|
|
|
|
if (spawned.all !== undefined) {
|
|
spawned.pipeAll = pipeToTarget.bind(undefined, spawned, 'all');
|
|
}
|
|
};
|