hyperns-service
Version:
HyperNS service, based on autobase
71 lines (62 loc) • 1.3 kB
JavaScript
const path = require('path')
const HyperDB = require('hyperdb/builder')
const Hyperschema = require('hyperschema')
const SCHEMA_DIR = path.join(__dirname, 'hyperschema')
const DB_DIR = path.join(__dirname, 'hyperdb')
const schema = Hyperschema.from(SCHEMA_DIR)
const hypernsOpsNs = schema.namespace('hyperns')
hypernsOpsNs.register({
name: 'name-entry',
fields: [
{
name: 'publicKey',
type: 'fixed32',
required: true
},
{
name: 'name',
type: 'string',
required: true
},
{
name: 'blindPeers',
type: 'fixed32',
array: true,
required: true // Can be empty of course
}
]
})
hypernsOpsNs.register({
name: 'op',
fields: [
{
name: 'op', // command id
type: 'uint',
required: true
},
{
name: 'blindPeerKey',
type: 'fixed32',
required: false
},
{
name: 'writerKey',
type: 'fixed32',
required: false
},
{
name: 'record',
type: '@hyperns/name-entry',
required: false
}
]
})
Hyperschema.toDisk(schema)
const db = HyperDB.from(SCHEMA_DIR, DB_DIR)
const hypernsOpsDb = db.namespace('hyperns')
hypernsOpsDb.collections.register({
name: 'op',
schema: '@hyperns/op',
key: ['op']
})
HyperDB.toDisk(db)