UNPKG

@n1k1t/mock-server

Version:

The ultimate toolkit to intercept, transform, and simulate HTTP/WS traffic with type-safe expectations

36 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const node_gzip_1 = require("node-gzip"); const models_1 = require("../models"); const utils_1 = require("../utils"); const logger_1 = require("../../logger"); const logger = logger_1.Logger.build('Endpoints.CacheBackup'); exports.default = models_1.EndpointFactory .build() .http({ method: 'POST', path: `/cache/backup` }) .io({ path: 'cache:backup' }) .compile(async ({ reply, server }) => { const backup = { redis: [] }; if (server.databases.redis) { const converter = utils_1.RxConverter.build(server.services.redis.iterate('*', { trim: true, })); for await (const key of converter.iterate()) { const value = await server.databases.redis.get(key).catch((error) => { logger.error(`Got error while fetching redis value for key [${key}]`, error?.stack ?? error); return null; }); value ? backup.redis.push([key, value]) : logger.warn(`Got [${value}] for key [${key}]`); } } const zipped = await (0, node_gzip_1.gzip)(JSON.stringify(backup)).catch((error) => { logger.error('Got error while zip payload', error?.stack ?? error); return null; }); zipped ? reply.ok(zipped.toString('base64')) : reply.internalError('Cannot zip backup payload'); }); //# sourceMappingURL=cache.backup.endpoint.js.map