|
Server IP : 185.61.154.36 / Your IP : 216.73.216.44 Web Server : Apache System : Linux host67.registrar-servers.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64 User : gettoplisting ( 12043) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/../opt/../usr/lib/node_modules/npm/node_modules/http-cache-semantics/../libnpmsearch/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
'use strict'
const figgyPudding = require('figgy-pudding')
const getStream = require('get-stream')
const npmFetch = require('npm-registry-fetch')
const SearchOpts = figgyPudding({
detailed: { default: false },
limit: { default: 20 },
from: { default: 0 },
quality: { default: 0.65 },
popularity: { default: 0.98 },
maintenance: { default: 0.5 },
sortBy: {}
})
module.exports = search
function search (query, opts) {
return getStream.array(search.stream(query, opts))
}
search.stream = searchStream
function searchStream (query, opts) {
opts = SearchOpts(opts)
switch (opts.sortBy) {
case 'optimal': {
opts = opts.concat({
quality: 0.65,
popularity: 0.98,
maintenance: 0.5
})
break
}
case 'quality': {
opts = opts.concat({
quality: 1,
popularity: 0,
maintenance: 0
})
break
}
case 'popularity': {
opts = opts.concat({
quality: 0,
popularity: 1,
maintenance: 0
})
break
}
case 'maintenance': {
opts = opts.concat({
quality: 0,
popularity: 0,
maintenance: 1
})
break
}
}
return npmFetch.json.stream('/-/v1/search', 'objects.*',
opts.concat({
query: {
text: Array.isArray(query) ? query.join(' ') : query,
size: opts.limit,
from: opts.from,
quality: opts.quality,
popularity: opts.popularity,
maintenance: opts.maintenance
},
mapJson (obj) {
if (obj.package.date) {
obj.package.date = new Date(obj.package.date)
}
if (opts.detailed) {
return obj
} else {
return obj.package
}
}
})
)
}