Skip to content

API reference / @jsprismarine/leveldb / Database

Class: Database ​

Defined in: Database.ts:84

A LevelDB database, able to read and write the ones Minecraft: Bedrock Edition keeps its worlds in.

The one deliberate departure from upstream: we read manifests the game wrote, but never append to one. After recovery a fresh MANIFEST-<n> holding a full snapshot is written and CURRENT repointed at it. Upstream does the same whenever it decides the manifest wants replacing; doing it unconditionally bounds manifest growth and means the only VersionEdit encoding that has to be exactly right is the one a round-trip test covers.

Accessors ​

levelSizes ​

Get Signature ​

get levelSizes(): number[]

Defined in: Database.ts:793

For diagnostics: how many files sit at each level.

Returns ​

number[]


stats ​

Get Signature ​

get stats(): DatabaseStats

Defined in: Database.ts:781

Returns ​

DatabaseStats

Methods ​

close() ​

close(): Promise<void>

Defined in: Database.ts:229

Returns ​

Promise<void>


del() ​

del(key): void

Defined in: Database.ts:466

Parameters ​

key ​

Buffer

Returns ​

void


entries() ​

entries(range?): IterableIterator<[Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>]>

Defined in: Database.ts:306

Every live key and value in order.

A merge across the memtable and every table, taking the newest version of each user key and dropping the ones whose newest version is a deletion.

Parameters ​

range? ​

KeyRange = {}

Returns ​

IterableIterator<[Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>]>


flush() ​

flush(): Promise<void>

Defined in: Database.ts:498

Turns the memtable into a table off-thread, then compacts any level over its size budget.

Returns ​

Promise<void>


get() ​

get(key): Buffer<ArrayBufferLike> | null

Defined in: Database.ts:263

Parameters ​

key ​

Buffer

Returns ​

Buffer<ArrayBufferLike> | null


has() ​

has(key): boolean

Defined in: Database.ts:292

Parameters ​

key ​

Buffer

Returns ​

boolean


keys() ​

keys(range?): IterableIterator<Buffer<ArrayBufferLike>>

Defined in: Database.ts:296

Parameters ​

range? ​

KeyRange = {}

Returns ​

IterableIterator<Buffer<ArrayBufferLike>>


put() ​

put(key, value): void

Defined in: Database.ts:462

Parameters ​

key ​

Buffer

value ​

Buffer

Returns ​

void


write() ​

write(batch): void

Defined in: Database.ts:470

Parameters ​

batch ​

WriteBatch

Returns ​

void


open() ​

static open(directory, options?): Promise<Database>

Defined in: Database.ts:113

Parameters ​

directory ​

string

options? ​

DatabaseOptions = {}

Returns ​

Promise<Database>