nest-redoc
Version:
A NestJS Frontend for your OpenAPI Specs powered by ReDoc
53 lines (52 loc) • 1.67 kB
JavaScript
;
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;
}
});
}