https://github.com/waitingsong/rxrunscript
https://github.com/waitingsong/rxrunscript
rxjs script spawn
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/waitingsong/rxrunscript
- Owner: waitingsong
- License: mit
- Created: 2018-05-26T11:17:27.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2022-07-05T07:33:03.000Z (over 3 years ago)
- Last Synced: 2025-02-19T12:53:34.301Z (10 months ago)
- Topics: rxjs, script, spawn
- Language: TypeScript
- Size: 396 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# RxRunScript
Run shell script or command in Node.js child process, Output `Observable`
[](https://www.npmjs.com/package/rxrunscript)
[](https://opensource.org/licenses/MIT)
[](https://travis-ci.org/waitingsong/rxrunscript)
[](https://ci.appveyor.com/project/waitingsong/rxrunscript/branch/master)
[](https://coveralls.io/github/waitingsong/rxrunscript?branch=master)
## Installing
```bash
$ npm install rxrunscript
```
## Usage
```ts
import { OutputRow, run, take } from 'rxrunscript'
run('openssl version')
.pipe(
take(1), // assume all output in one buffer
)
.subscribe({
next: (row) => {
console.log(row.data.toString()),
},
error: (err) => {
console.error(err),
},
})
// exec shell file
run('./test/openssl.sh')
.subscribe({
next: (row) => console.log(buf.toString()),
})
import { reduce } from 'rxjs'
// win32
run('tasklist')
.pipe(
reduce((acc: Buffer[], curr: OutputRow) => {
if (typeof curr.exitCode === 'undefined') {
acc.push(curr)
}
return acc
}, []),
)
.subscribe(
arr => console.log(Buffer.concat(arr).toString()),
err => console.error(err),
)
// run cmd file
run('./test/prepare.cmd')
.subscribe(
row => console.log(row.data.toString()),
)
```
## License
[MIT](LICENSE)
### Languages
- [English](README.md)
- [中文](README.zh-CN.md)