1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict'
- const npmConfig = require('./config/figgy-config.js')
- const fetch = require('libnpm/fetch')
- const figgyPudding = require('figgy-pudding')
- const log = require('npmlog')
- const npm = require('./npm.js')
- const output = require('./utils/output.js')
- const PingConfig = figgyPudding({
- json: {},
- registry: {}
- })
- module.exports = ping
- ping.usage = 'npm ping\nping registry'
- function ping (args, silent, cb) {
- if (typeof cb !== 'function') {
- cb = silent
- silent = false
- }
- const opts = PingConfig(npmConfig())
- const registry = opts.registry
- log.notice('PING', registry)
- const start = Date.now()
- return fetch('/-/ping?write=true', opts).then(
- res => res.json().catch(() => ({}))
- ).then(details => {
- if (silent) {
- } else {
- const time = Date.now() - start
- log.notice('PONG', `${time / 1000}ms`)
- if (npm.config.get('json')) {
- output(JSON.stringify({
- registry,
- time,
- details
- }, null, 2))
- } else if (Object.keys(details).length) {
- log.notice('PONG', `${JSON.stringify(details, null, 2)}`)
- }
- }
- }).nodeify(cb)
- }
|