Configure Long
before requiring compiled protobuf
This commit is contained in:
parent
6d97976179
commit
e8651afa0b
4 changed files with 19 additions and 9 deletions
|
@ -1,12 +1,8 @@
|
||||||
// Copyright 2018-2020 Signal Messenger, LLC
|
// Copyright 2018-2020 Signal Messenger, LLC
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
import * as protobuf from 'protobufjs/minimal';
|
import './wrap';
|
||||||
import Long from 'long';
|
|
||||||
|
|
||||||
import { signalservice as SignalService } from './compiled';
|
import { signalservice as SignalService } from './compiled';
|
||||||
|
|
||||||
protobuf.util.Long = Long;
|
|
||||||
protobuf.configure();
|
|
||||||
|
|
||||||
export { SignalService };
|
export { SignalService };
|
||||||
|
|
10
ts/protobuf/wrap.ts
Normal file
10
ts/protobuf/wrap.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// Copyright 2022 Signal Messenger, LLC
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
|
import * as protobuf from 'protobufjs/minimal';
|
||||||
|
import Long from 'long';
|
||||||
|
|
||||||
|
protobuf.util.Long = Long;
|
||||||
|
protobuf.configure();
|
||||||
|
|
||||||
|
export default protobuf;
|
|
@ -2,12 +2,14 @@
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { Writer } from 'protobufjs';
|
import protobuf from '../protobuf/wrap';
|
||||||
|
|
||||||
import * as Bytes from '../Bytes';
|
import * as Bytes from '../Bytes';
|
||||||
import { SignalService as Proto } from '../protobuf';
|
import { SignalService as Proto } from '../protobuf';
|
||||||
import { ContactBuffer, GroupBuffer } from '../textsecure/ContactsParser';
|
import { ContactBuffer, GroupBuffer } from '../textsecure/ContactsParser';
|
||||||
|
|
||||||
|
const { Writer } = protobuf;
|
||||||
|
|
||||||
describe('ContactsParser', () => {
|
describe('ContactsParser', () => {
|
||||||
function generateAvatar(): Uint8Array {
|
function generateAvatar(): Uint8Array {
|
||||||
const result = new Uint8Array(255);
|
const result = new Uint8Array(255);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
/* eslint-disable max-classes-per-file */
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
import { Reader } from 'protobufjs';
|
import protobuf from '../protobuf/wrap';
|
||||||
|
|
||||||
import { SignalService as Proto } from '../protobuf';
|
import { SignalService as Proto } from '../protobuf';
|
||||||
import { normalizeUuid } from '../util/normalizeUuid';
|
import { normalizeUuid } from '../util/normalizeUuid';
|
||||||
|
@ -11,10 +11,12 @@ import * as log from '../logging/log';
|
||||||
|
|
||||||
import Avatar = Proto.ContactDetails.IAvatar;
|
import Avatar = Proto.ContactDetails.IAvatar;
|
||||||
|
|
||||||
|
const { Reader } = protobuf;
|
||||||
|
|
||||||
type OptionalAvatar = { avatar?: Avatar | null };
|
type OptionalAvatar = { avatar?: Avatar | null };
|
||||||
|
|
||||||
type DecoderBase<Message extends OptionalAvatar> = {
|
type DecoderBase<Message extends OptionalAvatar> = {
|
||||||
decodeDelimited(reader: Reader): Message | undefined;
|
decodeDelimited(reader: protobuf.Reader): Message | undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type MessageWithAvatar<Message extends OptionalAvatar> = Omit<
|
export type MessageWithAvatar<Message extends OptionalAvatar> = Omit<
|
||||||
|
@ -32,7 +34,7 @@ class ParserBase<
|
||||||
Message extends OptionalAvatar,
|
Message extends OptionalAvatar,
|
||||||
Decoder extends DecoderBase<Message>
|
Decoder extends DecoderBase<Message>
|
||||||
> {
|
> {
|
||||||
protected readonly reader: Reader;
|
protected readonly reader: protobuf.Reader;
|
||||||
|
|
||||||
constructor(bytes: Uint8Array, private readonly decoder: Decoder) {
|
constructor(bytes: Uint8Array, private readonly decoder: Decoder) {
|
||||||
this.reader = new Reader(bytes);
|
this.reader = new Reader(bytes);
|
||||||
|
|
Loading…
Add table
Reference in a new issue