refactor: Return hash. (#44)

This commit is contained in:
Hayden Young
2023-03-18 02:53:52 +08:00
committed by GitHub
parent 1990cb9b87
commit 2a563bac79
13 changed files with 66 additions and 62 deletions

View File

@@ -37,7 +37,7 @@ const DocumentStore = async ({ OpLog, Database, ipfs, identity, address, name, a
*/
const get = async (key) => {
for await (const doc of iterator()) {
if (key === doc[indexBy]) {
if (key === doc.key) {
return doc
}
}
@@ -53,8 +53,8 @@ const DocumentStore = async ({ OpLog, Database, ipfs, identity, address, name, a
const results = []
for await (const doc of iterator()) {
if (findFn(doc)) {
results.push(doc)
if (findFn(doc.value)) {
results.push(doc.value)
}
}
@@ -69,7 +69,8 @@ const DocumentStore = async ({ OpLog, Database, ipfs, identity, address, name, a
if (op === 'PUT' && !keys[key]) {
keys[key] = true
count++
yield value
const hash = entry.hash
yield { hash, key, value }
} else if (op === 'DEL' && !keys[key]) {
keys[key] = true
}

View File

@@ -19,7 +19,9 @@ const Events = async ({ OpLog, Database, ipfs, identity, address, name, accessCo
const iterator = async function * ({ gt, gte, lt, lte, amount } = {}) {
const it = log.iterator({ gt, gte, lt, lte, amount })
for await (const event of it) {
yield event.payload.value
const hash = event.hash
const value = event.payload.value
yield { hash, value }
}
}

View File

@@ -44,8 +44,8 @@ const KeyValuePersisted = async ({ OpLog, Database, ipfs, identity, address, nam
const iterator = async function * ({ amount } = {}) {
await queue.onIdle()
for await (const { key, value } of keyValueStore.iterator({ amount })) {
yield { key, value }
for await (const { hash, key, value } of keyValueStore.iterator({ amount })) {
yield { hash, key, value }
}
}

View File

@@ -30,7 +30,8 @@ const KeyValue = async ({ OpLog, Database, ipfs, identity, address, name, access
if (op === 'PUT' && !keys[key]) {
keys[key] = true
count++
yield { key, value }
const hash = entry.hash
yield { hash, key, value }
} else if (op === 'DEL' && !keys[key]) {
keys[key] = true
}

View File

@@ -69,7 +69,7 @@ describe('DocumentStore Database', function () {
await db.put(expected)
const doc = await db.get(key)
deepStrictEqual(doc, expected)
deepStrictEqual(doc.value, expected)
})
it('throws an error when putting a document with the wrong key', async () => {
@@ -173,7 +173,7 @@ describe('DocumentStore Database', function () {
await db.put(expected)
const doc = await db.get(key)
deepStrictEqual(doc, expected)
deepStrictEqual(doc.value, expected)
})
it('deletes a document', async () => {

View File

@@ -95,7 +95,7 @@ describe('EventStore Database', function () {
const all = await db.all()
deepStrictEqual(all, events)
deepStrictEqual(all.map(e => e.value), events)
})
describe('Iterator Options', () => {
@@ -118,7 +118,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 1)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns two items', async () => {
@@ -130,7 +130,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 2)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns three items', async () => {
@@ -142,7 +142,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 3)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('sets \'amount\' greater than items available', async () => {
@@ -154,7 +154,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 5)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('sets \'amount\' to 0', async () => {
@@ -166,7 +166,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 0)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -180,7 +180,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 4)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns one item less than head', async () => {
@@ -192,7 +192,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 1)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns two items less than head', async () => {
@@ -204,7 +204,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 2)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -218,7 +218,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 5)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns one item less than or equal to head', async () => {
@@ -230,7 +230,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 1)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns two items less than or equal to head', async () => {
@@ -242,7 +242,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 2)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -256,7 +256,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 4)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns one item greater than root', async () => {
@@ -268,7 +268,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 1)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns two items greater than root', async () => {
@@ -280,7 +280,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 2)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -294,7 +294,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 5)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns one item greater than or equal to root', async () => {
@@ -306,7 +306,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 1)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('returns two items greater than or equal to root', async () => {
@@ -318,7 +318,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 2)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -332,7 +332,7 @@ describe('EventStore Database', function () {
}
strictEqual(all.length, 3)
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
})

View File

@@ -173,13 +173,13 @@ describe('KeyValuePersisted Database', function () {
it('returns all key/value pairs', async () => {
const keyvalue = [
{ key: 'key1', value: 'init' },
{ key: 'key2', value: true },
{ key: 'key3', value: 'hello' },
{ key: 'key4', value: 'friend' },
{ key: 'key5', value: '12345' },
{ key: 'key6', value: 'empty' },
{ key: 'key7', value: 'friend33' }
{ hash: 'zdpuAm6QEA29wFnd6re7X2XWe7AmrzVbsvdHhSPXci2CqXryw', key: 'key1', value: 'init' },
{ hash: 'zdpuAvfTQwogEAhEaAtb85ugEzxvfDVUnALoZeNbrz3s4jMYd', key: 'key2', value: true },
{ hash: 'zdpuB2CBCwvPBdHjZRKfFtL5JuDo9sc5QinKhbtYu1YkCLq22', key: 'key3', value: 'hello' },
{ hash: 'zdpuAyWWtvFfxKWMcV3NJ7XXbjiQC6MkA8h6TrhFA2ihLrt82', key: 'key4', value: 'friend' },
{ hash: 'zdpuB2Z5coKXGMAZtb7X8UQYgo6vWAP4VshBvE4xwBCrR5Laa', key: 'key5', value: '12345' },
{ hash: 'zdpuAnn2kuStzcTCJ5ULMxCvB7RtgAScJPmg3YAVYju4oPEtC', key: 'key6', value: 'empty' },
{ hash: 'zdpuAv1jSFz4GHRieAXGvRGnVWdEdxDp2HefREoTJJWYC8Zqw', key: 'key7', value: 'friend33' }
]
for (const { key, value } of Object.values(keyvalue)) {

View File

@@ -165,13 +165,13 @@ describe('KeyValue Database', function () {
it('returns all key/value pairs', async () => {
const keyvalue = [
{ key: 'key1', value: 'init' },
{ key: 'key2', value: true },
{ key: 'key3', value: 'hello' },
{ key: 'key4', value: 'friend' },
{ key: 'key5', value: '12345' },
{ key: 'key6', value: 'empty' },
{ key: 'key7', value: 'friend33' }
{ hash: 'zdpuAm6QEA29wFnd6re7X2XWe7AmrzVbsvdHhSPXci2CqXryw', key: 'key1', value: 'init' },
{ hash: 'zdpuAvfTQwogEAhEaAtb85ugEzxvfDVUnALoZeNbrz3s4jMYd', key: 'key2', value: true },
{ hash: 'zdpuB2CBCwvPBdHjZRKfFtL5JuDo9sc5QinKhbtYu1YkCLq22', key: 'key3', value: 'hello' },
{ hash: 'zdpuAyWWtvFfxKWMcV3NJ7XXbjiQC6MkA8h6TrhFA2ihLrt82', key: 'key4', value: 'friend' },
{ hash: 'zdpuB2Z5coKXGMAZtb7X8UQYgo6vWAP4VshBvE4xwBCrR5Laa', key: 'key5', value: '12345' },
{ hash: 'zdpuAnn2kuStzcTCJ5ULMxCvB7RtgAScJPmg3YAVYju4oPEtC', key: 'key6', value: 'empty' },
{ hash: 'zdpuAv1jSFz4GHRieAXGvRGnVWdEdxDp2HefREoTJJWYC8Zqw', key: 'key7', value: 'friend33' }
]
for (const { key, value } of Object.values(keyvalue)) {

View File

@@ -125,10 +125,10 @@ describe('Events Database Replication', function () {
for await (const event of db2.iterator()) {
all2.unshift(event)
}
deepStrictEqual(all2, expected)
deepStrictEqual(all2.map(e => e.value), expected)
const all1 = await db2.all()
deepStrictEqual(all1, expected)
deepStrictEqual(all1.map(e => e.value), expected)
})
it('loads the database after replication', async () => {
@@ -179,9 +179,9 @@ describe('Events Database Replication', function () {
for await (const event of db2.iterator()) {
all2.unshift(event)
}
deepStrictEqual(all2, expected)
deepStrictEqual(all2.map(e => e.value), expected)
const all1 = await db2.all()
deepStrictEqual(all1, expected)
deepStrictEqual(all1.map(e => e.value), expected)
})
})

View File

@@ -126,7 +126,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv2.iterator()) {
all2.push(keyValue)
}
deepStrictEqual(all2, [
deepStrictEqual(all2.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])
@@ -135,7 +135,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv1.iterator()) {
all1.push(keyValue)
}
deepStrictEqual(all1, [
deepStrictEqual(all1.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])
@@ -200,7 +200,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv2.iterator()) {
all2.push(keyValue)
}
deepStrictEqual(all2, [
deepStrictEqual(all2.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])
@@ -209,7 +209,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv1.iterator()) {
all1.push(keyValue)
}
deepStrictEqual(all1, [
deepStrictEqual(all1.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])

View File

@@ -126,7 +126,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv2.iterator()) {
all2.push(keyValue)
}
deepStrictEqual(all2, [
deepStrictEqual(all2.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])
@@ -135,7 +135,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv1.iterator()) {
all1.push(keyValue)
}
deepStrictEqual(all1, [
deepStrictEqual(all1.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])
@@ -200,7 +200,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv2.iterator()) {
all2.push(keyValue)
}
deepStrictEqual(all2, [
deepStrictEqual(all2.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])
@@ -209,7 +209,7 @@ describe('KeyValue Database Replication', function () {
for await (const keyValue of kv1.iterator()) {
all1.push(keyValue)
}
deepStrictEqual(all1, [
deepStrictEqual(all1.map(e => { return { key: e.key, value: e.value } }), [
{ key: 'hello', value: 'friend3' },
{ key: 'init', value: true }
])

View File

@@ -212,7 +212,7 @@ describe('Open databases', function () {
all.unshift(event)
}
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -263,7 +263,7 @@ describe('Open databases', function () {
all.unshift(event)
}
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -337,7 +337,7 @@ describe('Open databases', function () {
}
console.timeEnd('replicate')
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
it('opens the replicated database', async () => {
@@ -366,7 +366,7 @@ describe('Open databases', function () {
all.unshift(event)
}
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
@@ -483,7 +483,7 @@ describe('Open databases', function () {
all.unshift(doc)
}
deepStrictEqual(all, expected)
deepStrictEqual(all.map(e => e.value), expected)
})
})
})

View File

@@ -94,7 +94,7 @@ describe('Replicating databases', function () {
console.timeEnd('replicate')
deepStrictEqual(eventsFromDb2, expected)
deepStrictEqual(eventsFromDb2.map(e => e.value), expected)
console.time('query 2')
const eventsFromDb1 = []
@@ -103,7 +103,7 @@ describe('Replicating databases', function () {
}
console.timeEnd('query 2')
deepStrictEqual(eventsFromDb1, expected)
deepStrictEqual(eventsFromDb1.map(e => e.value), expected)
console.log('events:', amount)
})