UNPKG

@message-queue-toolkit/core

Version:

Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently

25 lines 1.1 kB
import { FsReadableProvider } from '@lokalise/node-core'; import { JsonStreamStringify } from 'json-stream-stringify'; import { tmpNameSync } from 'tmp'; export const defaultTemporaryFilePathResolver = () => tmpNameSync(); export class JsonStreamStringifySerializer { temporaryFilePathResolver; constructor(temporaryFilePathResolver = defaultTemporaryFilePathResolver) { this.temporaryFilePathResolver = temporaryFilePathResolver; } async serialize(payload) { const fsReadableProvider = await FsReadableProvider.persistReadableToFs({ sourceReadable: new JsonStreamStringify(payload), targetFile: this.temporaryFilePathResolver(), }); return { value: await fsReadableProvider.createStream(), size: await fsReadableProvider.getContentLength(), destroy: async () => { await fsReadableProvider.destroy(); }, }; } } export const jsonStreamStringifySerializer = new JsonStreamStringifySerializer(); //# sourceMappingURL=JsonStreamStringifySerializer.js.map