UNPKG

expand-short-url

Version:

This library is designed to expand short URLs for Node.JS

43 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.expand = void 0; const http_1 = require("http"); const https_1 = require("https"); const defaultOptions = { timeout: 5000, // Default timeout of 5 seconds maxRedirects: 3, // Default max redirects }; const fireRequest = (url, options) => { return new Promise((resolve, reject) => { const request = url.startsWith('https') ? https_1.request : http_1.request; const req = request(url, options, (res) => { if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) { // Handle redirects if (options.maxRedirects > 0) { options.maxRedirects--; return resolve(fireRequest(res.headers.location, options)); } else { return reject(new Error('Max redirects exceeded')); } } else if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) { // Successful response resolve(res.headers.location || url); } else { // Error response reject(new Error(`Request failed with status code ${res.statusCode}`)); } }); req.on('error', reject); req.setTimeout(options.timeout, () => req.destroy()); req.end(); }); }; const expand = (url, options) => { const finalOptions = Object.assign(Object.assign({}, defaultOptions), options); return fireRequest(url, finalOptions); }; exports.expand = expand; //# sourceMappingURL=index.js.map