Security News
JavaScript Leaders Demand Oracle Release the JavaScript Trademark
In an open letter, JavaScript community leaders urge Oracle to give up the JavaScript trademark, arguing that it has been effectively abandoned through nonuse.
link-check
Advanced tools
Checks whether a hyperlink is alive (200 OK
) or dead.
npm install --save link-check
A link is said to be 'alive' if an HTTP HEAD or HTTP GET for the given URL
eventually ends in a 200 OK
response. To minimize bandwidth, an HTTP HEAD
is performed. If that fails (e.g. with a 405 Method Not Allowed
), an HTTP
GET is performed. Redirects are followed.
In the case of mailto:
links, this module validates the e-mail address
using isemail.
Given a link
and a callback
, attempt an HTTP HEAD and possibly an HTTP GET.
Parameters:
url
string containing a URL.opts
optional options object containing any of the following optional fields:
anchors
array of anchor strings (e.g. [ "#foo", "#bar" ]
) for checking anchor links (e.g. <a href="#foo">Foo</a>
).baseUrl
the base URL for relative links.timeout
timeout in zeit/ms format. (e.g. "2000ms"
, 20s
, 1m
). Default 10s
.user_agent
the user-agent string. Default ${name}/${version}
(e.g. link-check/4.5.5
)aliveStatusCodes
an array of numeric HTTP Response codes which indicate that the link is alive. Entries in this array may also be regular expressions. Example: [ 200, /^[45][0-9]{2}$/ ]
. Default [ 200 ]
.headers
a string based attribute value object to send custom HTTP headers. Example: { 'Authorization' : 'Basic Zm9vOmJhcg==' }
.retryOn429
a boolean indicating whether to retry on a 429 (Too Many Requests) response. When true, if the response has a 429 HTTP code and includes an optional retry-after
header, a retry will be attempted after the delay indicated in the retry-after
header. If no retry-after
header is present in the response or the retry-after
header value is not valid according to RFC7231 (value must be in seconds), a default retry delay of 60 seconds will apply. This default can be overriden by the fallbackRetryDelay
parameter.retryCount
the number of retries to be made on a 429 response. Default 2
.fallbackRetryDelay
the delay in zeit/ms format. (e.g. "2000ms"
, 20s
, 1m
) for retries on a 429 response when no retry-after
header is returned or when it has an invalid value. Default is 60s
.callback
function which accepts (err, result)
.
err
an Error object when the operation cannot be completed, otherwise null
.result
an object with the following properties:
link
the link
provided as inputstatus
a string set to either alive
or dead
.statusCode
the HTTP status code. Set to 0
if no HTTP status code was returned (e.g. when the server is down).err
any connection error that occurred, otherwise null
.'use strict';
const linkCheck = require('link-check');
linkCheck('http://example.com', function (err, result) {
if (err) {
console.error(err);
return;
}
console.log(`${result.link} is ${result.status}`);
});
With basic authentication:
'use strict';
const linkCheck = require('link-check');
linkCheck('http://example.com', { headers: { 'Authorization': 'Basic Zm9vOmJhcg==' } }, function (err, result) {
if (err) {
console.error(err);
return;
}
console.log(`${result.link} is ${result.status}`);
});
npm test
See LICENSE.md
FAQs
checks whether a hyperlink is alive (200 OK) or dead
We found that link-check demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
In an open letter, JavaScript community leaders urge Oracle to give up the JavaScript trademark, arguing that it has been effectively abandoned through nonuse.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.