feat: migration 2

This commit is contained in:
TrèsAbhi committed 2024-09-06 23:17:53 -05:00
1 parent e1c8194beb
commit 6285f33989
305 files changed
+414 -414

No files matched your search

@@ -0,0 +1,9 @@
import { lookupProtobufType, ProtoSource } from './lookupProtobufType';
export function decodeProtobuf<Type>(
source: ProtoSource,
type: string,
data: Uint8Array,
) {
return lookupProtobufType(source, type).decode(data).toJSON() as Type;
}
@@ -0,0 +1,14 @@
import { lookupProtobufType, ProtoSource } from './lookupProtobufType';
export function encodeProtobuf(
source: ProtoSource,
type: string,
data: Record<string, any>,
) {
const message = lookupProtobufType(source, type);
const verification = message.verify(data);
if (verification !== null) throw new Error(verification);
return message.encode(message.create(data)).finish();
}
@@ -0,0 +1,11 @@
import { encodeProtobuf } from './encodeProtobuf';
import { ProtoSource } from './lookupProtobufType';
export async function encodeProtobufToBase64(
source: ProtoSource,
type: string,
data: any,
) {
const array = encodeProtobuf(source, type, data);
return Buffer.from(array).toString('base64');
}
+4
View File
@@ -0,0 +1,4 @@
export * from './decodeProtobuf';
export * from './encodeProtobuf';
export * from './encodeProtobufToBase64';
export * from './lookupProtobufType';
@@ -0,0 +1,11 @@
import { parse } from 'protobufjs';
import average_definitions from '../../protos/average_definitions.proto';
import reviews from '../../protos/reviews.proto';
export type ProtoSource = keyof typeof protos;
const protos = { reviews, average_definitions };
export function lookupProtobufType(source: ProtoSource, type: string) {
return parse(protos[source]).root.lookupType(type);
}