🐐 GOAT Shell
Current path:
lib
/
node_modules
/
npm
/
lib
/
👤 Create WP Admin
⬆️
Go up: npm
✏️ Editing: search.js
'use strict' module.exports = exports = search const npm = require('./npm.js') const allPackageSearch = require('./search/all-package-search') const figgyPudding = require('figgy-pudding') const formatPackageStream = require('./search/format-package-stream.js') const libSearch = require('libnpm/search') const log = require('npmlog') const ms = require('mississippi') const npmConfig = require('./config/figgy-config.js') const output = require('./utils/output.js') const usage = require('./utils/usage') search.usage = usage( 'search', 'npm search [--long] [search terms ...]' ) search.completion = function (opts, cb) { cb(null, []) } const SearchOpts = figgyPudding({ description: {}, exclude: {}, include: {}, limit: {}, log: {}, staleness: {}, unicode: {} }) function search (args, cb) { const opts = SearchOpts(npmConfig()).concat({ description: npm.config.get('description'), exclude: prepareExcludes(npm.config.get('searchexclude')), include: prepareIncludes(args, npm.config.get('searchopts')), limit: npm.config.get('searchlimit') || 20, log: log, staleness: npm.config.get('searchstaleness'), unicode: npm.config.get('unicode') }) if (opts.include.length === 0) { return cb(new Error('search must be called with arguments')) } // Used later to figure out whether we had any packages go out let anyOutput = false const entriesStream = ms.through.obj() let esearchWritten = false libSearch.stream(opts.include, opts).on('data', pkg => { entriesStream.write(pkg) !esearchWritten && (esearchWritten = true) }).on('error', err => { if (esearchWritten) { // If esearch errored after already starting output, we can't fall back. return entriesStream.emit('error', err) } log.warn('search', 'fast search endpoint errored. Using old search.') allPackageSearch(opts) .on('data', pkg => entriesStream.write(pkg)) .on('error', err => entriesStream.emit('error', err)) .on('end', () => entriesStream.end()) }).on('end', () => entriesStream.end()) // Grab a configured output stream that will spit out packages in the // desired format. var outputStream = formatPackageStream({ args: args, // --searchinclude options are not highlighted long: npm.config.get('long'), description: npm.config.get('description'), json: npm.config.get('json'), parseable: npm.config.get('parseable'), color: npm.color }) outputStream.on('data', chunk => { if (!anyOutput) { anyOutput = true } output(chunk.toString('utf8')) }) log.silly('search', 'searching packages') ms.pipe(entriesStream, outputStream, err => { if (err) return cb(err) if (!anyOutput && !npm.config.get('json') && !npm.config.get('parseable')) { output('No matches found for ' + (args.map(JSON.stringify).join(' '))) } log.silly('search', 'search completed') log.clearProgress() cb(null, {}) }) } function prepareIncludes (args, searchopts) { if (typeof searchopts !== 'string') searchopts = '' return searchopts.split(/\s+/).concat(args).map(function (s) { return s.toLowerCase() }).filter(function (s) { return s }) } function prepareExcludes (searchexclude) { var exclude if (typeof searchexclude === 'string') { exclude = searchexclude.split(/\s+/) } else { exclude = [] } return exclude.map(function (s) { return s.toLowerCase() }) }
Save
📁
auth
|
✏️ Rename
|
🗑️ Delete
📁
config
|
✏️ Rename
|
🗑️ Delete
📁
doctor
|
✏️ Rename
|
🗑️ Delete
📁
install
|
✏️ Rename
|
🗑️ Delete
📁
search
|
✏️ Rename
|
🗑️ Delete
📁
utils
|
✏️ Rename
|
🗑️ Delete
📄
access.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
adduser.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
audit.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
bin.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
bugs.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
build.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
cache.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ci.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
completion.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
config.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
dedupe.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
deprecate.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
dist-tag.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
docs.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
doctor.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
edit.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
explore.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
fetch-package-metadata.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
fetch-package-metadata.md
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
fund.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
get.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
help-search.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
help.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
hook.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
init.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
install-ci-test.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
install-test.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
install.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
link.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
logout.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ls.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
npm.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
org.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
outdated.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
owner.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
pack.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ping.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
prefix.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
profile.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
prune.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
publish.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rebuild.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
repo.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
restart.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
root.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
run-script.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
search.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
set.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
shrinkwrap.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
star.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
stars.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
start.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
stop.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
substack.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
team.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
test.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
token.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
unbuild.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
uninstall.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
unpublish.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
update.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
version.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
view.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
visnup.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
whoami.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
xmas.js
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📤 Upload File
Upload
📁 Create Folder
Create Folder