Skip to content

Latest commit

ย 

History

History
307 lines (205 loc) ยท 6.69 KB

README.md

File metadata and controls

307 lines (205 loc) ยท 6.69 KB
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).