@igor.dvlpr/simple-exec
v2.0.0
Published
🕺 Command. Execution. Made. Simple. ▶
Downloads
9
Maintainers
Readme
📃 Table of contents
🕵🏼 Usage
Install it by executing:
npm i '@igor.dvlpr/simple-exec'
🤹🏼 API
The API exposes two types:
ExecResult
ExecCallback
Types
ExecResult
A simple object structured as:
{
error: string,
output: string
}
ExecCallback
A callback with the method signature of:
type ExecCallback = (result: ExecResult) => void
Functions
executeSync(command: string): ExecResult
Synchronously executes the specified command.
command
- Command to execute.
Will throw an error if no command is provided.
Returns the ExecResult
object with standard and error outputs.
import { executeSync } from '@igor.dvlpr/simple-exec'
const result = executeSync('dir /b')
if (result.error) {
console.error(result.error) // log the error
} else {
console.log(result.output) // log the contents of the directory
}
executeCallback(command: string, callback: ExecCallback): void
Asynchronously, with a callback executes the specified command.
command
- Command to execute.callback
- The function to call after the command is executed.
Will throw an error if no command is provided.
import { executeCallback } from '@igor.dvlpr/simple-exec'
executeCallback('node --version', (result) => {
if (result.error) {
console.error(result.error) // log the error
} else {
console.log(result.output) // log Node version
}
})
execute(command: string): Promise<string>
Asynchronously executes the specified command.
command
- Command to execute.
Will throw an error if no command is provided.
Returns the standard output.
import { execute } from '@igor.dvlpr/simple-exec'
try {
const result: string = await execute('npm --version')
console.log(result) // log NPM version
} catch(exp) {
console.error(exp) // log the error
}
executeParallel(...commands: string[]): Promise<string[]>;
Asynchronously and in parallel executes the specified commands.
commands
- Commands to execute, rest string parameters, e.g. executeParallel('command-one', 'command-two', 'command-three')
.
Will throw an error if any of the commands causes an error.
Returns the standard output of each command.
import { executeParallel } from '@igor.dvlpr/simple-exec'
try {
const results: string[] = await executeParallel('npm --version', 'node --version', 'npm pack')
console.log(results) // log the results which is a string array
} catch(exp) {
console.error(exp) // log the error
}
executeParallel(commands: string[]): Promise<string[]>
Asynchronously and in parallel executes the specified commands.
commands
- Commands to execute, a string array, e.g. executeParallel(['command-one', 'command-two', 'command-three'])
.
Will throw an error if any of the commands causes an error.
Returns the standard output of each command.
import { executeParallel } from '@igor.dvlpr/simple-exec'
try {
const results: string[] = executeParallel(['npm --version', 'node --version', 'npm pack'])
console.log(results) // log the results which is a string array
} catch(exp) {
console.error(exp) // log the error
}
✨ Examples
example.ts
import { executeParallel } from '@igor.dvlpr/simple-exec'
const result: string[] = await executeParallel([
'npm --version',
'node --version',
'npm --version'
]) // will log ['<npm version>', '<Node version>', '<npm version>']
// e.g. [ '10.8.2', 'v22.5.1', '10.8.2' ]
📝 Changelog
📑 The changelog is available here: CHANGELOG.md.
🪪 License
Licensed under the MIT license which is available here, MIT license.
🧬 Related
🧮 Calculates an estimated file size of Mp3 files. 🎶
🍃 Provides ways of checking whether a path is a legacy Windows device. 💾
💬 Emojifies strings, converting textual representations of emojis to graphical ones. 🖌️
@igor.dvlpr/astro-post-excerpt
⭐ An Astro component that renders post excerpts for your Astro blog - directly from your Markdown and MDX files. Astro v2+ collections are supported as well! 💎
@igor.dvlpr/scrollend-polyfill
🛴 A performant and light (< 1.5KB) JavaScript polyfill for the scrollend Event. ⛸️
👨🏻💻 Author
Created by Igor Dimitrijević (@igorskyflyer).