PHP 8.2.30
Preview: exec.js Size: 2.54 KB
/proc/thread-self/root/proc/self/root/opt/alt/alt-nodejs19/root/lib/node_modules/npm/lib/commands/exec.js

const { resolve } = require('path')
const libexec = require('libnpmexec')
const BaseCommand = require('../base-command.js')

class Exec extends BaseCommand {
  static description = 'Run a command from a local or remote npm package'
  static params = [
    'package',
    'call',
    'workspace',
    'workspaces',
    'include-workspace-root',
  ]

  static name = 'exec'
  static usage = [
    '-- <pkg>[@<version>] [args...]',
    '--package=<pkg>[@<version>] -- <cmd> [args...]',
    '-c \'<cmd> [args...]\'',
    '--package=foo -c \'<cmd> [args...]\'',
  ]

  static workspaces = true
  static ignoreImplicitWorkspace = false
  static isShellout = true

  async exec (args) {
    return this.callExec(args)
  }

  async execWorkspaces (args) {
    await this.setWorkspaces()

    for (const [name, path] of this.workspaces) {
      const locationMsg =
        `in workspace ${this.npm.chalk.green(name)} at location:\n${this.npm.chalk.dim(path)}`
      await this.callExec(args, { locationMsg, runPath: path })
    }
  }

  async callExec (args, { locationMsg, runPath } = {}) {
    // This is where libnpmexec will look for locally installed packages
    const localPrefix = this.npm.localPrefix

    // This is where libnpmexec will actually run the scripts from
    if (!runPath) {
      runPath = process.cwd()
    }

    const call = this.npm.config.get('call')
    let globalPath
    const {
      flatOptions,
      localBin,
      globalBin,
      globalDir,
    } = this.npm
    const output = this.npm.output.bind(this.npm)
    const scriptShell = this.npm.config.get('script-shell') || undefined
    const packages = this.npm.config.get('package')
    const yes = this.npm.config.get('yes')
    // --prefix sets both of these to the same thing, meaning the global prefix
    // is invalid (i.e. no lib/node_modules).  This is not a trivial thing to
    // untangle and fix so we work around it here.
    if (this.npm.localPrefix !== this.npm.globalPrefix) {
      globalPath = resolve(globalDir, '..')
    }

    if (call && args.length) {
      throw this.usageError()
    }

    return libexec({
      ...flatOptions,
      // we explicitly set packageLockOnly to false because if it's true
      // when we try to install a missing package, we won't actually install it
      packageLockOnly: false,
      // copy args so they dont get mutated
      args: [...args],
      call,
      localBin,
      locationMsg,
      globalBin,
      globalPath,
      output,
      packages,
      path: localPrefix,
      runPath,
      scriptShell,
      yes,
    })
  }
}

module.exports = Exec

Directory Contents

Dirs: 0 × Files: 66

Name Size Perms Modified Actions
6.08 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.32 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
13.86 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
815 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
7.07 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
3.51 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
8.73 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
10.04 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.40 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.03 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
8.12 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
5.45 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
447 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
11.51 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.00 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.54 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
3.55 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.30 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
622 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
6.51 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
524 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
5.49 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
3.54 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
3.77 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
6.90 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
373 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
370 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
5.11 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
5.15 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
234 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.32 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.30 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
16.73 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
4.14 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
8.76 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
5.91 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.37 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
917 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
3.50 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
303 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
11.19 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
779 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
6.50 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.90 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.14 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.24 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
310 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
258 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
6.81 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.68 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
572 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
2.64 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.87 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.03 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
300 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
295 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
4.44 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
295 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
6.64 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.51 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
4.54 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
182 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download
1.71 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
3.58 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
14.38 KB lrw-r--r-- 2023-12-06 18:07:50
Edit Download
474 B lrw-r--r-- 2023-12-06 18:07:50
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).