Skip to content
This repository has been archived by the owner on Jul 21, 2023. It is now read-only.

Commit

Permalink
deps: update protons to 5.1.0 (#24)
Browse files Browse the repository at this point in the history
  • Loading branch information
achingbrain committed Aug 11, 2022
1 parent ff76148 commit 9eed384
Show file tree
Hide file tree
Showing 3 changed files with 323 additions and 34 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
"it-pipe": "^2.0.3",
"mortice": "^3.0.0",
"multiformats": "^9.6.3",
"protons-runtime": "^2.0.2",
"protons-runtime": "^3.1.0",
"uint8arraylist": "^2.1.1",
"uint8arrays": "^3.1.0"
},
Expand All @@ -175,7 +175,7 @@
"delay": "^5.0.0",
"p-defer": "^4.0.0",
"p-wait-for": "^5.0.0",
"protons": "^4.0.1",
"protons": "^5.1.0",
"sinon": "^14.0.0"
}
}
229 changes: 209 additions & 20 deletions src/pb/peer.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable import/export */
/* eslint-disable @typescript-eslint/no-namespace */

import { encodeMessage, decodeMessage, message, string, bytes, bool } from 'protons-runtime'
import type { Codec } from 'protons-runtime'
import { encodeMessage, decodeMessage, message } from 'protons-runtime'
import type { Uint8ArrayList } from 'uint8arraylist'
import type { Codec } from 'protons-runtime'

export interface Peer {
addresses: Address[]
Expand All @@ -14,17 +14,97 @@ export interface Peer {
}

export namespace Peer {
let _codec: Codec<Peer>

export const codec = (): Codec<Peer> => {
return message<Peer>({
1: { name: 'addresses', codec: Address.codec(), repeats: true },
2: { name: 'protocols', codec: string, repeats: true },
3: { name: 'metadata', codec: Metadata.codec(), repeats: true },
4: { name: 'pubKey', codec: bytes, optional: true },
5: { name: 'peerRecordEnvelope', codec: bytes, optional: true }
})
if (_codec == null) {
_codec = message<Peer>((obj, writer, opts = {}) => {
if (opts.lengthDelimited !== false) {
writer.fork()
}

if (obj.addresses != null) {
for (const value of obj.addresses) {
writer.uint32(10)
Address.codec().encode(value, writer)
}
} else {
throw new Error('Protocol error: required field "addresses" was not found in object')
}

if (obj.protocols != null) {
for (const value of obj.protocols) {
writer.uint32(18)
writer.string(value)
}
} else {
throw new Error('Protocol error: required field "protocols" was not found in object')
}

if (obj.metadata != null) {
for (const value of obj.metadata) {
writer.uint32(26)
Metadata.codec().encode(value, writer)
}
} else {
throw new Error('Protocol error: required field "metadata" was not found in object')
}

if (obj.pubKey != null) {
writer.uint32(34)
writer.bytes(obj.pubKey)
}

if (obj.peerRecordEnvelope != null) {
writer.uint32(42)
writer.bytes(obj.peerRecordEnvelope)
}

if (opts.lengthDelimited !== false) {
writer.ldelim()
}
}, (reader, length) => {
const obj: any = {
addresses: [],
protocols: [],
metadata: []
}

const end = length == null ? reader.len : reader.pos + length

while (reader.pos < end) {
const tag = reader.uint32()

switch (tag >>> 3) {
case 1:
obj.addresses.push(Address.codec().decode(reader, reader.uint32()))
break
case 2:
obj.protocols.push(reader.string())
break
case 3:
obj.metadata.push(Metadata.codec().decode(reader, reader.uint32()))
break
case 4:
obj.pubKey = reader.bytes()
break
case 5:
obj.peerRecordEnvelope = reader.bytes()
break
default:
reader.skipType(tag & 7)
break
}
}

return obj
})
}

return _codec
}

export const encode = (obj: Peer): Uint8ArrayList => {
export const encode = (obj: Peer): Uint8Array => {
return encodeMessage(obj, Peer.codec())
}

Expand All @@ -39,14 +119,65 @@ export interface Address {
}

export namespace Address {
let _codec: Codec<Address>

export const codec = (): Codec<Address> => {
return message<Address>({
1: { name: 'multiaddr', codec: bytes },
2: { name: 'isCertified', codec: bool, optional: true }
})
if (_codec == null) {
_codec = message<Address>((obj, writer, opts = {}) => {
if (opts.lengthDelimited !== false) {
writer.fork()
}

if (obj.multiaddr != null) {
writer.uint32(10)
writer.bytes(obj.multiaddr)
} else {
throw new Error('Protocol error: required field "multiaddr" was not found in object')
}

if (obj.isCertified != null) {
writer.uint32(16)
writer.bool(obj.isCertified)
}

if (opts.lengthDelimited !== false) {
writer.ldelim()
}
}, (reader, length) => {
const obj: any = {
multiaddr: new Uint8Array(0)
}

const end = length == null ? reader.len : reader.pos + length

while (reader.pos < end) {
const tag = reader.uint32()

switch (tag >>> 3) {
case 1:
obj.multiaddr = reader.bytes()
break
case 2:
obj.isCertified = reader.bool()
break
default:
reader.skipType(tag & 7)
break
}
}

if (obj.multiaddr == null) {
throw new Error('Protocol error: value for required field "multiaddr" was not found in protobuf')
}

return obj
})
}

return _codec
}

export const encode = (obj: Address): Uint8ArrayList => {
export const encode = (obj: Address): Uint8Array => {
return encodeMessage(obj, Address.codec())
}

Expand All @@ -61,14 +192,72 @@ export interface Metadata {
}

export namespace Metadata {
let _codec: Codec<Metadata>

export const codec = (): Codec<Metadata> => {
return message<Metadata>({
1: { name: 'key', codec: string },
2: { name: 'value', codec: bytes }
})
if (_codec == null) {
_codec = message<Metadata>((obj, writer, opts = {}) => {
if (opts.lengthDelimited !== false) {
writer.fork()
}

if (obj.key != null) {
writer.uint32(10)
writer.string(obj.key)
} else {
throw new Error('Protocol error: required field "key" was not found in object')
}

if (obj.value != null) {
writer.uint32(18)
writer.bytes(obj.value)
} else {
throw new Error('Protocol error: required field "value" was not found in object')
}

if (opts.lengthDelimited !== false) {
writer.ldelim()
}
}, (reader, length) => {
const obj: any = {
key: '',
value: new Uint8Array(0)
}

const end = length == null ? reader.len : reader.pos + length

while (reader.pos < end) {
const tag = reader.uint32()

switch (tag >>> 3) {
case 1:
obj.key = reader.string()
break
case 2:
obj.value = reader.bytes()
break
default:
reader.skipType(tag & 7)
break
}
}

if (obj.key == null) {
throw new Error('Protocol error: value for required field "key" was not found in protobuf')
}

if (obj.value == null) {
throw new Error('Protocol error: value for required field "value" was not found in protobuf')
}

return obj
})
}

return _codec
}

export const encode = (obj: Metadata): Uint8ArrayList => {
export const encode = (obj: Metadata): Uint8Array => {
return encodeMessage(obj, Metadata.codec())
}

Expand Down
Loading

0 comments on commit 9eed384

Please sign in to comment.