UNPKG

@berlingske-media/bm.node-module.gateway_jwt

Version:

AuthGateway JWT verification library based on public JWKS endpoint

44 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.request = void 0; const tslib_1 = require("tslib"); const node_http_1 = tslib_1.__importDefault(require("node:http")); const node_https_1 = tslib_1.__importDefault(require("node:https")); const node_url_1 = require("node:url"); const request = (options) => { if (options.fetcher) { return options.fetcher(options.uri); } return new Promise((resolve, reject) => { const { hostname, pathname, port, protocol, } = new node_url_1.URL(options.uri); const requestOptions = Object.assign(Object.assign(Object.assign({ hostname, path: pathname, port, method: 'GET' }, (options.headers && { headers: Object.assign({}, options.headers) })), (options.timeout && { timeout: options.timeout })), (options.agent && { agent: options.agent })); const httpRequestLib = protocol === 'https:' ? node_https_1.default : node_http_1.default; const httpRequest = httpRequestLib.request(requestOptions, (res) => { let rawData = ''; res.setEncoding('utf8'); res.on('data', (chunk) => { rawData += chunk; }); res.on('end', () => { if (res.statusCode < 200 || res.statusCode >= 300) { const errorMsg = res.body && (res.body.message || res.body) || res.statusMessage || `Http Error ${res.statusCode}`; reject({ errorMsg }); } else { try { resolve(rawData && JSON.parse(rawData)); } catch (error) { reject(error); } } }); }); httpRequest .on('timeout', () => httpRequest.destroy()) .on('error', (e) => reject(e)) .end(); }); }; exports.request = request; //# sourceMappingURL=request.js.map