UNPKG

nestjs-protobuf-es

Version:

Protobuf-ES integration for NestJS

23 lines (22 loc) 1.55 kB
import type { DescMessage, MessageShape, MessageValidType } from '@bufbuild/protobuf'; import { type ReflectMessage } from '@bufbuild/protobuf/reflect'; import type { MessageInit, MessagePopulationOptions, PopulatedMessage } from './types'; /** * Create a new message instance. * * This is similar to `create` from `@bufbuild/protobuf`, with the difference that it handles JS dates and converts them to `Timestamp`. */ export declare function initMessage<Desc extends DescMessage>(schema: Desc, init?: MessageInit<MessageShape<Desc>>): MessageShape<Desc>; /** * Create a deep copy of the message and populate it and/or convert `Timestamp` fields into JS `Date`. * * This method may be slow because of the cloning. * If you don't worry about modifying the original message, you can use `populateInPlace` instead. */ export declare function populate<Desc extends DescMessage, Options extends MessagePopulationOptions>(schema: Desc, message: MessageShape<Desc>, options?: Options): PopulatedMessage<Options['validTypes'] extends false ? MessageShape<Desc> : MessageValidType<Desc>, Options>; /** * Deep populate the message and/or convert `Timestamp` fields into JS `Date`. * * This method is more performant, but mutates the original message. */ export declare function populateInPlace<Desc extends DescMessage, Options extends MessagePopulationOptions>(schema: Desc, message: MessageShape<Desc> | ReflectMessage, options?: Options): PopulatedMessage<Options['validTypes'] extends false ? MessageShape<Desc> : MessageValidType<Desc>, Options>;