url-status-code
Version:
Get status code for url
34 lines (26 loc) • 832 B
JavaScript
const validUrl = require('valid-url')
const { name, version } = require('../package.json')
const validStart = require('./valid-start')
module.exports = (uri, callback) => {
if (!uri) {
return callback(new Error('Missing required input: uri'), null)
}
if (!validUrl.isWebUri(uri)) {
return callback(new Error('Supplied uri is not valid'), null)
}
if (!validStart(uri)) {
return callback(new Error('Supplied uri is not valid'), null)
}
const protocol = /https/.test(uri) ? 'https' : 'http'
const http = require(protocol)
const options = new URL(uri)
options.agent = false
options.headers = {
'User-Agent': `${name}/${version}`,
Accept: '*/*'
}
http.get(options, response => {
return callback(null, response.statusCode)
}).on('error', error => callback(error))
}