-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.js
More file actions
46 lines (33 loc) · 1000 Bytes
/
setup.js
File metadata and controls
46 lines (33 loc) · 1000 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const Hyperschema = require('hyperschema')
const HyperDB = require('hyperdb/builder')
const SCHEMA_DIR = '/spec/hyperschema'
const DB_DIR = './spec/hyperdb'
const schema = Hyperschema.from(SCHEMA_DIR)
const reg = schema.namespace('schema')
reg.register({
name: 'messages',
compact: true,
fields: [
{ name: 'cipher', type: 'string', required: true },
{ name: 'timestamp', type: 'uint', required: true },
{ name: 'pub', type: 'string', required: true },
{ name: 'hash', type: 'string', required: true },
{ name: 'signature', type: 'string', required: true },
]
})
Hyperschema.toDisk(schema)
const db = HyperDB.from(SCHEMA_DIR, DB_DIR)
const hyperDB = db.namespace('messages')
hyperDB.collections.register({
name: 'messages',
schema: '@messages/messages',
key: ['timestamp']
})
hyperDB.indexes.register({
name: 'messages-by-pub',
collection: '@messages/messages',
unique: false,
key: ['pub']
})
HyperDB.toDisk(db)
console.log("DB Setup complete.")