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 { join } = require('node:path')
|
||||||
const os = require('node:os')
|
const os = require('node:os')
|
||||||
|
const { promisify: p } = require('node:util')
|
||||||
const Keypair = require('pzp-keypair')
|
const Keypair = require('pzp-keypair')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,10 +38,10 @@ const Keypair = require('pzp-keypair')
|
||||||
* }} Peer
|
* }} Peer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {{ path?: string }=} opts
|
* @param {{ path?: string }=} opts
|
||||||
* @returns {Promise<Peer>}
|
|
||||||
*/
|
*/
|
||||||
async function createPeer(opts) {
|
async function createPeer(opts) {
|
||||||
let { path } = opts ?? {}
|
let { path } = opts ?? {}
|
||||||
|
@ -97,9 +98,20 @@ async function createPeer(opts) {
|
||||||
|
|
||||||
await peer.db.loaded()
|
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()
|
await peer.net.start()
|
||||||
|
|
||||||
return peer
|
return {
|
||||||
|
peer,
|
||||||
|
account: globalAccountID,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
@ -1,20 +1,10 @@
|
||||||
const { test } = require('node:test')
|
const { test } = require('node:test')
|
||||||
const assert = require('node:assert')
|
|
||||||
const p = require('node:util').promisify
|
|
||||||
const { createPeer } = require('../lib/')
|
const { createPeer } = require('../lib/')
|
||||||
|
|
||||||
test('Basic createPeer', async (t) => {
|
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) => {
|
await new Promise((res, rej) => {
|
||||||
peer.db.account.create({
|
|
||||||
subdomain: 'account',
|
|
||||||
_nonce: 'bob',
|
|
||||||
}, (err, account) => {
|
|
||||||
assert(!err)
|
|
||||||
|
|
||||||
peer.db.feed.publish({
|
peer.db.feed.publish({
|
||||||
account,
|
account,
|
||||||
domain: "post",
|
domain: "post",
|
||||||
|
@ -22,10 +12,9 @@ test('Basic createPeer', async (t) => {
|
||||||
text: 'woo a post'
|
text: 'woo a post'
|
||||||
}
|
}
|
||||||
}, (err, rec) => {
|
}, (err, rec) => {
|
||||||
assert(!err)
|
if (err) return rej(err)
|
||||||
|
|
||||||
peer.close(() => res(null))
|
peer.close(() => res(null))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
|
Loading…
Reference in New Issue