@berlingske-media/bm.node-module.gateway_jwt
Version:
AuthGateway JWT verification library based on public JWKS endpoint
44 lines • 1.99 kB
JavaScript
;
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