Promise-based, No-dependency URL unshortner (expander) module for Node.js 12+.
Note: This library is written in TypeScript and type definitions are provided.
Using npm
npm install --save tall
or with yarn
yarn add tall
ES6+ usage:
import { tall } from 'tall'
tall('http://www.loige.link/codemotion-rome-2017')
.then(unshortenedUrl => console.log('Tall url', unshortenedUrl))
.catch(err => console.error('AAAW 👻', err))
With Async await:
import { tall } from 'tall';
async function someFunction() {
try {
const unshortenedUrl = await tall('http://www.loige.link/codemotion-rome-2017');
console.log('Tall url', unshortenedUrl);
} catch (err) {
console.error('AAAW 👻', err);
}
}
someFunction();
ES5:
var { tall } = require('tall')
tall('http://www.loige.link/codemotion-rome-2017')
.then(function(unshortenedUrl) {
console.log('Tall url', unshortenedUrl)
})
.catch(function(err) {
console.error('AAAW 👻', err)
})
It is possible to specify some options as second parameter to the tall
function.
Available options are the following:
method
(default"GET"
): any available HTTP methodmaxRedirects
(default3
): the number of maximum redirects that will be followed in case of multiple redirects.headers
(default{}
): change request headers - e.g.{'User-Agent': 'your-custom-user-agent'}
timeout
: (default:120000
): timeout in milliseconds after which the request will be cancelled
In addition, any other options available on http.request() or https.request()
are accepted. This for example includes rejectUnauthorized
to disable certificate checks.
Example:
import { tall } from 'tall'
tall('http://www.loige.link/codemotion-rome-2017', {
method: 'HEAD',
maxRedirect: 10
})
.then(unshortenedUrl => console.log('Tall url', unshortenedUrl))
.catch(err => console.error('AAAW 👻', err))
Everyone is very welcome to contribute to this project. You can contribute just by submitting bugs or suggesting improvements by opening an issue on GitHub.
Licensed under MIT License. © Luciano Mammino.