hunk.code_window:   pnpm-list: ^1.0.0
     pnpm-logger: ^0.6.1
     ramda: ^0.24.1
     rimraf: ^2.5.4
     supi: ^0.2.21
     text-table: ^0.2.0
     tslint: ^5.4.2
     typescript: ^2.4.1
  
hunk.labels: keep keep keep add keep keep keep keep
hunk.after_edit:   strip-color: ^0.1.0
  
hunk.file_path: shrinkwrap.yaml
hunk.type: add
file: import {install, installPkgs, PnpmOptions} from 'supi'
  import path = require('path')
  import logger from 'pnpm-logger'
  
  /**
   * Perform installation.
   * @example
   *     installCmd([ 'lodash', 'foo' ], { silent: true })
   */
  export default function installCmd (input: string[], opts: PnpmOptions) {
    // `pnpm install ""` is going to be just `pnpm install`
    input = input.filter(Boolean)
  
    const prefix = opts.prefix || process.cwd()
    opts['hooks'] = requireHooks(prefix)
  
    if (!input || !input.length) {
      return install(opts)
    }
    return installPkgs(input, opts)
  }
  
  function requireHooks (prefix: string) {
    try {
      const pnpmFilePath = path.join(prefix, 'pnpmfile.js')
      const pnpmFile = require(pnpmFilePath)
      const hooks = pnpmFile && pnpmFile.hooks
      if (!hooks) return {}
      if (hooks.readPackage) {
        if (typeof hooks.readPackage !== 'function') {
          throw new TypeError('hooks.readPackage should be a function')
        }
        logger.info('readPackage hook is declared. Manifests of dependencies might get overridden')
      }
      return hooks
    } catch (err) {
      if (err['code'] !== 'MODULE_NOT_FOUND') throw err
      return {}
    }
  }
  