@igor.dvlpr/simple-exec
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published
SimpleExec

SimpleExec


🕺Command. Execution. Made. Simple. ▶



💖 Support further development

I work hard for every project, including this one
and your support means a lot to me!

Consider buying me a coffee. ☕
Thank you for supporting my efforts! 🙏😊


Donate to igorskyflyer

@igorskyflyer




📃 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

@igor.dvlpr/mp3size

🧮 Calculates an estimated file size of Mp3 files. 🎶


@igor.dvlpr/windev

🍃 Provides ways of checking whether a path is a legacy Windows device. 💾


@igor.dvlpr/emojilyzer

💬 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).

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
2.0.01latest

Version History

VersionDownloads (Last 7 Days)Published
2.0.01
1.0.00

Package Sidebar

Install

npm i @igor.dvlpr/simple-exec

Weekly Downloads

1

Version

2.0.0

License

MIT

Unpacked Size

13.7 kB

Total Files

5

Last publish

Collaborators

  • igor.dvlpr