autobase-discovery
Version:
Automatic service discovery with self-registering services, using autobase
130 lines (112 loc) • 3.36 kB
JavaScript
// This file is autogenerated by the hyperdb compiler
/* eslint-disable camelcase */
const { IndexEncoder, c } = require('hyperdb/runtime')
const { version, getEncoding, setVersion } = require('./messages.js')
// '@autodiscovery/service-entry' collection key
const collection0_key = new IndexEncoder([
IndexEncoder.BUFFER
], { prefix: 0 })
function collection0_indexify (record) {
const a = record.publicKey
return a === undefined ? [] : [a]
}
// '@autodiscovery/service-entry' value encoding
const collection0_enc = getEncoding('@autodiscovery/service-entry/hyperdb#0')
// '@autodiscovery/service-entry' reconstruction function
function collection0_reconstruct (version, keyBuf, valueBuf) {
const key = collection0_key.decode(keyBuf)
setVersion(version)
const record = c.decode(collection0_enc, valueBuf)
record.publicKey = key[0]
return record
}
// '@autodiscovery/service-entry' key reconstruction function
function collection0_reconstruct_key (keyBuf) {
const key = collection0_key.decode(keyBuf)
return {
publicKey: key[0]
}
}
// '@autodiscovery/service-entry'
const collection0 = {
name: '@autodiscovery/service-entry',
id: 0,
encodeKey (record) {
const key = [record.publicKey]
return collection0_key.encode(key)
},
encodeKeyRange ({ gt, lt, gte, lte } = {}) {
return collection0_key.encodeRange({
gt: gt ? collection0_indexify(gt) : null,
lt: lt ? collection0_indexify(lt) : null,
gte: gte ? collection0_indexify(gte) : null,
lte: lte ? collection0_indexify(lte) : null
})
},
encodeValue (version, record) {
setVersion(version)
return c.encode(collection0_enc, record)
},
trigger: null,
reconstruct: collection0_reconstruct,
reconstructKey: collection0_reconstruct_key,
indexes: []
}
// '@autodiscovery/services' collection key
const index1_key = new IndexEncoder([
IndexEncoder.STRING,
IndexEncoder.BUFFER
], { prefix: 1 })
function index1_indexify (record) {
const arr = []
const a0 = record.service
if (a0 === undefined) return arr
arr.push(a0)
const a1 = record.publicKey
if (a1 === undefined) return arr
arr.push(a1)
return arr
}
// '@autodiscovery/services'
const index1 = {
name: '@autodiscovery/services',
id: 1,
encodeKey (record) {
return index1_key.encode(index1_indexify(record))
},
encodeKeyRange ({ gt, lt, gte, lte } = {}) {
return index1_key.encodeRange({
gt: gt ? index1_indexify(gt) : null,
lt: lt ? index1_indexify(lt) : null,
gte: gte ? index1_indexify(gte) : null,
lte: lte ? index1_indexify(lte) : null
})
},
encodeValue: (doc) => index1.collection.encodeKey(doc),
encodeIndexKeys (record, context) {
return [index1_key.encode([record.service, record.publicKey])]
},
reconstruct: (keyBuf, valueBuf) => valueBuf,
offset: collection0.indexes.length,
collection: collection0
}
collection0.indexes.push(index1)
const collections = [
collection0
]
const indexes = [
index1
]
module.exports = { version, collections, indexes, resolveCollection, resolveIndex }
function resolveCollection (name) {
switch (name) {
case '@autodiscovery/service-entry': return collection0
default: return null
}
}
function resolveIndex (name) {
switch (name) {
case '@autodiscovery/services': return index1
default: return null
}
}