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

Commit 10b4cc2

Browse files
authored
fix: use protons (#39)
Also updates aegir and removes boilerplate config.
1 parent c703e81 commit 10b4cc2

10 files changed

+63
-321
lines changed

package.json

+15-16
Original file line numberDiff line numberDiff line change
@@ -145,30 +145,29 @@
145145
]
146146
},
147147
"scripts": {
148+
"clean": "aegir clean",
148149
"lint": "aegir lint",
149-
"pretest": "npm run build",
150-
"test": "aegir test -f ./dist/test",
151-
"test:node": "npm run test -- -t node",
152-
"test:chrome": "npm run test -- -t browser",
153-
"test:chrome-webworker": "npm run test -- -t webworker",
154-
"test:firefox": "npm run test -- -t browser -- --browser firefox",
155-
"test:firefox-webworker": "npm run test -- -t webworker -- --browser firefox",
156-
"build": "tsc",
157-
"postbuild": "npm run build:copy-proto-files",
158-
"generate:proto": "pbjs -t static-module -w es6 -r libp2p-record --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/record/record.js ./src/record/record.proto",
159-
"generate:proto-types": "pbts -o src/record/record.d.ts src/record/record.js",
160-
"build:copy-proto-files": "cp src/record* dist/src",
161-
"release": "semantic-release"
150+
"dep-check": "aegir dep-check",
151+
"test": "aegir test",
152+
"test:node": "aegir test -t node",
153+
"test:chrome": "aegir test -t browser",
154+
"test:chrome-webworker": "aegir test -t webworker",
155+
"test:firefox": "aegir test -t browser -- --browser firefox",
156+
"test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
157+
"build": "aegir build",
158+
"generate": "protons ./src/record.proto",
159+
"release": "aegir release"
162160
},
163161
"dependencies": {
164162
"err-code": "^3.0.1",
165163
"multiformats": "^9.4.5",
166-
"protobufjs": "^6.11.2",
164+
"protons-runtime": "^1.0.2",
167165
"uint8arrays": "^3.0.0"
168166
},
169167
"devDependencies": {
170168
"@libp2p/crypto": "^0.22.9",
171-
"@libp2p/interfaces": "^1.3.18",
172-
"aegir": "^36.1.3"
169+
"@libp2p/interfaces": "^1.3.20",
170+
"aegir": "^37.0.10",
171+
"protons": "^3.0.2"
173172
}
174173
}

src/index.ts

+10-18
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import {
2-
IRecord,
3-
Record as PBRecord
2+
Record
43
} from './record.js'
54
import * as utils from './utils.js'
65

76
export class Libp2pRecord {
87
public key: Uint8Array
98
public value: Uint8Array
10-
public timeReceived?: Date
9+
public timeReceived: Date
1110

12-
constructor (key: Uint8Array, value: Uint8Array, timeReceived?: Date) {
11+
constructor (key: Uint8Array, value: Uint8Array, timeReceived: Date) {
1312
if (!(key instanceof Uint8Array)) {
1413
throw new Error('key must be a Uint8Array')
1514
}
@@ -24,7 +23,7 @@ export class Libp2pRecord {
2423
}
2524

2625
serialize () {
27-
return PBRecord.encode(this.prepareSerialize()).finish()
26+
return Record.encode(this.prepareSerialize())
2827
}
2928

3029
/**
@@ -34,31 +33,24 @@ export class Libp2pRecord {
3433
return {
3534
key: this.key,
3635
value: this.value,
37-
timeReceived: this.timeReceived != null ? utils.toRFC3339(this.timeReceived) : undefined
36+
timeReceived: utils.toRFC3339(this.timeReceived)
3837
}
3938
}
4039

4140
/**
4241
* Decode a protobuf encoded record
4342
*/
4443
static deserialize (raw: Uint8Array) {
45-
const message = PBRecord.decode(raw)
46-
return Libp2pRecord.fromDeserialized(PBRecord.toObject(message, {
47-
defaults: false,
48-
arrays: true,
49-
longs: Number,
50-
objects: false
51-
}))
44+
const rec = Record.decode(raw)
45+
46+
return new Libp2pRecord(rec.key, rec.value, new Date(rec.timeReceived))
5247
}
5348

5449
/**
5550
* Create a record from the raw object returned from the protobuf library
5651
*/
57-
static fromDeserialized (obj: IRecord) {
58-
let recvtime
59-
if (obj.timeReceived != null) {
60-
recvtime = utils.parseRFC3339(obj.timeReceived)
61-
}
52+
static fromDeserialized (obj: Record) {
53+
const recvtime = utils.parseRFC3339(obj.timeReceived)
6254

6355
if (obj.key == null) {
6456
throw new Error('key missing from deserialized object')

src/record.d.ts

-71
This file was deleted.

src/record.js

-202
This file was deleted.

0 commit comments

Comments
 (0)