0.3.2 • Published 2 years ago

@keg-hub/spawn-cmd v0.3.2

Weekly downloads
14
License
MIT
Repository
github
Last release
2 years ago

Spawn-CMD

  • Cross-Platform child_process library for Node

Dependencies

Install

  • Install with 'yarn' or 'npm'
      // With Yarn
      yarn add @keg-hub/spawn-cmd
      // With NPM
      npm install @keg-hub/spawn-cmd
  • Add to your code

      // * Require code
      const { spawnCmd } = require('@keg-hub/spawn-cmd')
    
      // Spawns a new terminal session and runs `ls -la` inside of it
      await spawnCmd('ls -la')
    
      // Pass in a config object as the second argument
      // See more information about the config in the config section
      const config = { args: [ '-la' ] cwd: __dirname }
      await spawnCmd('ls', config)
    
      // Pass in a directory to run the command from as the third argument
      const config = { args: [ '-la' ] cwd: __dirname }
      await spawnCmd('ls', config, path.join(__dirname, '../'))

Config Object

  • args - Arguments to pass to the spawned command
  • cwd - Directory to run the command from
    • This can be overwirtten by passing the cwd as a third argument
  • onExit - Called when the process exits
  • onStdErr - Called on stderr output
  • onError - Called on an error other then stderr
  • onStdOut - Called on stdout
  • options - Settings to pass to the spawned process
    • Is joined with the default settings below
        defaultSettings = {
          gid: process.getgid(),
          uid: process.getuid(),
          env: process.env,
          cwd: rootDir, // Project root directory, NOT spawn-cmd directory
          stdio: 'inherit',
        }

Extra Command

asyncCmd

  • Extra command that wraps around nodes child_process.exec
  • Makes it a promise wrapped in a try/catch
  • Also adds the commands exit code
  • Promise resolves consistently
  • Example =>

      const { asyncCmd } = require('@keg-hub/spawn-cmd')
      
      ;(()=>{
    
        const { error, data, exitCode } = await asyncCmd('echo test')
    
        // String output of stderr
        console.log(error)
    
        // String output of stdout
        console.log(data)
    
        // Numbered exit code from the command
        // 0 === success, anything else is exit from error
        console.log(exitCode)
    
      })()
      
  ```