Skip to content

igorskyflyer/npm-simple-exec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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