mirror of https://codeberg.org/pzp/pzp-sdk.git
Create account when creating peer
This commit is contained in:
parent
dd0f0d042f
commit
707550e708
16
lib/index.js
16
lib/index.js
|
@ -1,5 +1,6 @@
|
|||
const { join } = require('node:path')
|
||||
const os = require('node:os')
|
||||
const { promisify: p } = require('node:util')
|
||||
const Keypair = require('pzp-keypair')
|
||||
|
||||
/**
|
||||
|
@ -37,10 +38,10 @@ const Keypair = require('pzp-keypair')
|
|||
* }} Peer
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {{ path?: string }=} opts
|
||||
* @returns {Promise<Peer>}
|
||||
*/
|
||||
async function createPeer(opts) {
|
||||
let { path } = opts ?? {}
|
||||
|
@ -97,9 +98,20 @@ async function createPeer(opts) {
|
|||
|
||||
await peer.db.loaded()
|
||||
|
||||
// @ts-ignore
|
||||
const id = await p(peer.db.account.findOrCreate)({ subdomain: 'person' })
|
||||
/** @type {string} */
|
||||
const globalAccountID = id
|
||||
|
||||
await p(peer.set.load)(id)
|
||||
await p(peer.dict.load)(id)
|
||||
|
||||
await peer.net.start()
|
||||
|
||||
return peer
|
||||
return {
|
||||
peer,
|
||||
account: globalAccountID,
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
|
|
@ -1,31 +1,20 @@
|
|||
const { test } = require('node:test')
|
||||
const assert = require('node:assert')
|
||||
const p = require('node:util').promisify
|
||||
const { createPeer } = require('../lib/')
|
||||
|
||||
test('Basic createPeer', async (t) => {
|
||||
const peer = await createPeer()
|
||||
const { peer, account } = await createPeer()
|
||||
|
||||
// TODO: getting warning
|
||||
//Warning: A resource generated asynchronous activity after the test ended. This activity created the error "Error: Cannot call values() before loading" which triggered an uncaughtException event, caught by the test runner.
|
||||
await new Promise((res, rej) => {
|
||||
peer.db.account.create({
|
||||
subdomain: 'account',
|
||||
_nonce: 'bob',
|
||||
}, (err, account) => {
|
||||
assert(!err)
|
||||
peer.db.feed.publish({
|
||||
account,
|
||||
domain: "post",
|
||||
data: {
|
||||
text: 'woo a post'
|
||||
}
|
||||
}, (err, rec) => {
|
||||
if (err) return rej(err)
|
||||
|
||||
peer.db.feed.publish({
|
||||
account,
|
||||
domain: "post",
|
||||
data: {
|
||||
text: 'woo a post'
|
||||
}
|
||||
}, (err, rec) => {
|
||||
assert(!err)
|
||||
|
||||
peer.close(() => res(null))
|
||||
})
|
||||
peer.close(() => res(null))
|
||||
})
|
||||
})
|
||||
})
|
Loading…
Reference in New Issue