-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathinterface.ts
More file actions
52 lines (32 loc) · 1.36 KB
/
interface.ts
File metadata and controls
52 lines (32 loc) · 1.36 KB
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
47
48
49
50
51
52
import { CID } from 'multiformats/cid'
import { BlockCodec } from 'multiformats/codecs/interface'
import { MultihashHasher } from 'multiformats/hashes/interface'
export interface SignalOptions {
signal?: AbortSignal
}
export interface HashMap<V> {
readonly cid: CID
get (key: string | Uint8Array, options?: SignalOptions): Promise<V|void>
has (key: string | Uint8Array, options?: SignalOptions): Promise<boolean>
size (options?: SignalOptions): Promise<number>
set (key: string | Uint8Array, value: V, options?: SignalOptions): Promise<void>
delete (key: string | Uint8Array, options?: SignalOptions): Promise<void>
values (options?: SignalOptions): AsyncIterable<V>
keys (options?: SignalOptions): AsyncIterable<string>
keysRaw (options?: SignalOptions): AsyncIterable<Uint8Array>
entries (options?: SignalOptions): AsyncIterable<[string, V]>
entriesRaw (options?: SignalOptions): AsyncIterable<[Uint8Array, V]>
cids (options?: SignalOptions): AsyncIterable<CID>
}
export interface CreateOptions<Codec extends number, V> {
blockCodec: BlockCodec<Codec, V>
blockHasher: MultihashHasher
hasher?: MultihashHasher
hashBytes?: number
bitWidth?: number
bucketSize?: number
}
export interface Loader {
get (cid: CID, options?: SignalOptions): Promise<Uint8Array>
put (cid: CID, bytes: Uint8Array, options?: SignalOptions): Promise<void>
}