https://github.com/stackblogger/link-exists
A super lightweight JavaScript / TypeScript library to check whether a given url is valid and exists or not.
https://github.com/stackblogger/link-exists
exists is-link-valid is-url-valid javascript link link-exists link-validator nodejs typescript url url-exist url-validator
Last synced: about 2 months ago
JSON representation
A super lightweight JavaScript / TypeScript library to check whether a given url is valid and exists or not.
- Host: GitHub
- URL: https://github.com/stackblogger/link-exists
- Owner: stackblogger
- License: mit
- Created: 2023-05-07T15:19:38.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2026-04-15T00:44:08.000Z (2 months ago)
- Last Synced: 2026-04-15T02:33:17.006Z (2 months ago)
- Topics: exists, is-link-valid, is-url-valid, javascript, link, link-exists, link-validator, nodejs, typescript, url, url-exist, url-validator
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/link-exists
- Size: 110 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README



# link-exists
A super lightweight JavaScript / TypeScript library to check whether a given url is valid and exists or not.
## Installation
```bash
npm install link-exists
```
## Features
A super lightweight library to validate if a given url is valid or not. Some additional features are-
- less than 1 kb in size
- additional configuration to validate as per custom requirement
- supports node.js latest version
- TypeScript and JavaScript support
- built on ES6 modules
- Jest test cases with 100% coverage
- Promise based result
## Usage
**[Full documentation](https://opensource.stackblogger.com/link-exists/)** — API, config options, behavior notes, and more examples.
### TypeScript
```typescript
import { linkExists } from 'link-exists';
await linkExists('https://stackblogger.com'); // true when any HTTP answer comes back
// response: true
await linkExists('www.stackblogger.com'); // false: no protocol in the string by default
// response: false
await linkExists('www.stackblogger.com', { ignoreProtocol: true }); // same host, protocol added
// response: true
await linkExists('https://example.com', { details: true }); // object, exists follows ok status
// response: { exists: true, status: 200, url: 'https://example.com/' }
await linkExists('stackblogger.com', { ignoreProtocol: true }); // allow link with no protocol
// response: true
await linkExists('https://example.com', { timeout: 5000 }); // stop after 5 seconds
// response: true (or false on timeout / error)
await linkExists('https://example.com', { method: 'GET' }); // use GET not HEAD
// response: true
await linkExists('https://example.com', { fallbackToGet: false }); // no GET retry after HEAD
// response: true
await linkExists('https://example.com', { details: true, timeout: 8000, method: 'HEAD' }); // mix of options
// response: { exists: true, status: 200, url: 'https://example.com/' }
```
### JavaScript
```javascript
const { linkExists } = require('link-exists');
await linkExists('https://stackblogger.com'); // true when any HTTP answer comes back
// response: true
await linkExists('www.stackblogger.com'); // false: no protocol in the string by default
// response: false
await linkExists('www.stackblogger.com', { ignoreProtocol: true }); // same host, protocol added
// response: true
await linkExists('https://example.com', { details: true }); // object, exists follows ok status
// response: { exists: true, status: 200, url: 'https://example.com/' }
await linkExists('stackblogger.com', { ignoreProtocol: true }); // allow link with no protocol
// response: true
await linkExists('https://example.com', { timeout: 5000 }); // stop after 5 seconds
// response: true (or false on timeout / error)
await linkExists('https://example.com', { method: 'GET' }); // use GET not HEAD
// response: true
await linkExists('https://example.com', { fallbackToGet: false }); // no GET retry after HEAD
// response: true
await linkExists('https://example.com', { details: true, timeout: 8000, method: 'HEAD' }); // mix of options
// response: { exists: true, status: 200, url: 'https://example.com/' }
```
### License
[MIT](https://choosealicense.com/licenses/mit/)