fix: multi-repo local dev (file:../ deps, package exports, missing deps)
This commit is contained in:
+103
@@ -0,0 +1,103 @@
|
||||
// This file is autogenerated by the hyperschema compiler
|
||||
// Schema Version: 2
|
||||
/* eslint-disable camelcase */
|
||||
/* eslint-disable quotes */
|
||||
/* eslint-disable space-before-function-paren */
|
||||
|
||||
const { c } = require('hyperschema/runtime')
|
||||
|
||||
const VERSION = 2
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
let version = VERSION
|
||||
|
||||
// @hyperdht/address.nodes
|
||||
const encoding0_1 = c.array(c.ipv4Address)
|
||||
|
||||
// @hyperdht/address
|
||||
const encoding0 = {
|
||||
preencode(state, m) {
|
||||
c.fixed32.preencode(state, m.key)
|
||||
state.end++ // max flag is 1 so always one byte
|
||||
|
||||
if (version >= 2 && m.nodes) encoding0_1.preencode(state, m.nodes)
|
||||
},
|
||||
encode(state, m) {
|
||||
const flags = version >= 2 && m.nodes ? 1 : 0
|
||||
|
||||
c.fixed32.encode(state, m.key)
|
||||
c.uint.encode(state, flags)
|
||||
|
||||
if (version >= 2 && m.nodes) encoding0_1.encode(state, m.nodes)
|
||||
},
|
||||
decode(state) {
|
||||
const r0 = c.fixed32.decode(state)
|
||||
const flags = state.start < state.end ? c.uint.decode(state) : 0
|
||||
|
||||
return {
|
||||
key: r0,
|
||||
nodes: version >= 2 && (flags & 1) !== 0 ? encoding0_1.decode(state) : null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setVersion(v) {
|
||||
version = v
|
||||
}
|
||||
|
||||
function encode(name, value, v = VERSION) {
|
||||
version = v
|
||||
return c.encode(getEncoding(name), value)
|
||||
}
|
||||
|
||||
function decode(name, buffer, v = VERSION) {
|
||||
version = v
|
||||
return c.decode(getEncoding(name), buffer)
|
||||
}
|
||||
|
||||
function getEnum(name) {
|
||||
switch (name) {
|
||||
default:
|
||||
throw new Error('Enum not found ' + name)
|
||||
}
|
||||
}
|
||||
|
||||
function getEncoding(name) {
|
||||
switch (name) {
|
||||
case '@hyperdht/address':
|
||||
return encoding0
|
||||
default:
|
||||
throw new Error('Encoder not found ' + name)
|
||||
}
|
||||
}
|
||||
|
||||
function getStruct(name, v = VERSION) {
|
||||
const enc = getEncoding(name)
|
||||
return {
|
||||
preencode(state, m) {
|
||||
version = v
|
||||
enc.preencode(state, m)
|
||||
},
|
||||
encode(state, m) {
|
||||
version = v
|
||||
enc.encode(state, m)
|
||||
},
|
||||
decode(state) {
|
||||
version = v
|
||||
return enc.decode(state)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const resolveStruct = getStruct // compat
|
||||
|
||||
module.exports = {
|
||||
resolveStruct,
|
||||
getStruct,
|
||||
getEnum,
|
||||
getEncoding,
|
||||
encode,
|
||||
decode,
|
||||
setVersion,
|
||||
version
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"version": 2,
|
||||
"schema": [
|
||||
{
|
||||
"name": "address",
|
||||
"namespace": "hyperdht",
|
||||
"compact": false,
|
||||
"flagsPosition": 1,
|
||||
"fields": [
|
||||
{
|
||||
"name": "key",
|
||||
"required": true,
|
||||
"type": "fixed32",
|
||||
"version": 1
|
||||
},
|
||||
{
|
||||
"name": "nodes",
|
||||
"array": true,
|
||||
"type": "ipv4Address",
|
||||
"version": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user