- โก Synchronous command execution with trimmed output
- โณ Asynchronous command execution with error handling
- ๐ Callback-based result delivery for executed commands
- ๐ค Promise-based command execution returning standard output
- ๐งฉ Parallel execution of multiple commands in one call
- ๐ก๏ธ Input validation with descriptive error messages
- ๐๏ธ Flexible support for both rest parameters and string arrays
- ๐งน Automatic trimming of standard output for clean results
Install it by executing any of the following, depending on your preferred package manager:
pnpm add @igorskyflyer/simple-execyarn add @igorskyflyer/simple-execnpm i @igorskyflyer/simple-execThe API exposes two types:
ExecResultExecCallback
A simple object structured as:
{
error: string,
output: string
}A callback with the method signature of:
type ExecCallback = (result: ExecResult) => voidSynchronously 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 '@igorskyflyer/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
}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 '@igorskyflyer/simple-exec'
executeCallback('node --version', (result) => {
if (result.error) {
console.error(result.error) // log the error
} else {
console.log(result.output) // log Node version
}
})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 '@igorskyflyer/simple-exec'
try {
const result: string = await execute('npm --version')
console.log(result) // log NPM version
} catch(exp) {
console.error(exp) // log the error
}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 '@igorskyflyer/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
}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 '@igorskyflyer/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
}example.ts
import { executeParallel } from '@igorskyflyer/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' ]๐ The changelog is available here, CHANGELOG.md.
Licensed under the MIT license which is available here, MIT license.
Consider buying me a coffee. โ
Thank you for supporting my efforts! ๐๐
๐งฎ 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. ๐๏ธ
@igorskyflyer/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! ๐
@igorskyflyer/scrollend-polyfill
๐ด A performant and light (< 1.5KB) JavaScript polyfill for the scrollend Event. โธ๏ธ
Created by Igor Dimitrijeviฤ (@igorskyflyer).
