UNPKG

nest-redoc

Version:

A NestJS Frontend for your OpenAPI Specs powered by ReDoc

53 lines (52 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.joinUrl = joinUrl; exports.normalizeUrl = normalizeUrl; exports.isBuffer = isBuffer; exports.isString = isString; exports.deleteKey = deleteKey; exports.sendHttpAsset = sendHttpAsset; const shared_utils_1 = require("@nestjs/common/utils/shared.utils"); function joinUrl(...parts) { return parts.filter(p => !!(p === null || p === void 0 ? void 0 : p.trim())).map(p => normalizeUrl(p.trim())).join('/'); } function normalizeUrl(url) { return url.replace(/^\/+|\/+$/g, ''); } function isBuffer(value) { return Buffer.isBuffer(value); } function isString(value) { return typeof value === 'string'; } function deleteKey(obj, key) { const keys = (Array.isArray(key) ? key : [key]).filter(k => !!k); for (let key of keys) { try { delete obj[key]; } catch (_a) { } } } function sendHttpAsset(adapter, path, assetUrlOrBuffer, bufferContentType) { return adapter.get(path, async (request, response) => { if (isString(assetUrlOrBuffer)) { response.redirect(301, assetUrlOrBuffer); return; } else if (isBuffer(assetUrlOrBuffer)) { response.header('Content-Type', bufferContentType || 'application/octet-stream'); response.end(assetUrlOrBuffer); return; } else if ((0, shared_utils_1.isObject)(assetUrlOrBuffer)) { response.status(200).end(JSON.stringify(assetUrlOrBuffer, null, 2)); return; } else { response.status(404).end(); return; } }); }