Comments (1)
Modern days you can use async iterables instead of duplexify
I use spawn wrapper like
const someCmd = (cmd:string) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
let resolve_ = (_value?: unknown) => {
//
};
// eslint-disable-next-line @typescript-eslint/no-unused-vars
let reject_ = (_e: Error) => {
//
};
const pWait = new Promise((r, rj) => {
resolve_ = r;
reject_ = rj;
});
const psql = spawn(execCmd, [...execArgs, ...commonArgs, '-c', cmd], {
stdio: ['pipe', 'pipe', process.stderr],
});
psql.on('exit', code => {
if (code != null && code > 0) {
// throw new Error('process exited with error');
console.error('EXIT CODE');
reject_(new Error('process exited with non null code'));
}
resolve_();
});
// return stream;
return async function* (source: NodeJS.ReadableStream) {
if (source != null) {
source.setEncoding('utf8');
pipeline(source, psql.stdin, err => {
if (err != null) {
reject_(err);
}
});
}
for await (const chunk of psql.stdout) {
yield chunk;
}
await pWait;
} as never;
};
Then
try {
await pipeline(
eee(),
someCmd(),
blabla()
)
} catch(e) {
<--- In case of spawn returns error code will be here
}
from duplexify.
Related Issues (15)
- `Buffer()` without a `new` keyword is going to be hard-deprecated soon HOT 4
- Support `objectMode` for one side only HOT 2
- socket.io-stream question HOT 1
- Publish new version HOT 1
- BUG: 'Uint8Array 未定义' in IE9 HOT 2
- Drop dependency on readable-stream HOT 5
- Convert to TypeScript HOT 2
- Errors emitted by non-streams2 unhandled HOT 1
- race condition HOT 2
- 'drain' event not forwarder HOT 1
- wtf HOT 1
- Unhandled 'error' event HOT 1
- state is undefined HOT 11
- Incompatible with ReadableStream from [email protected]
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from duplexify.