valkeyrie / Valkeyrie
Class: Valkeyrie<TRegistry>
Defined in: valkeyrie.ts:104
Valkeyrie database instance with optional schema registry type tracking.
Type Parameters
TRegistry
TRegistry extends SchemaRegistryType = readonly []
Compile-time schema registry for automatic type inference
Accessors
[kSchemaRegistry]
Get Signature
get kSchemaRegistry: SchemaRegistry | undefined;Defined in: valkeyrie.ts:1197
Internal symbol-based accessor for schema registry. Used by AtomicOperation for validation.
Returns
SchemaRegistry | undefined
Methods
commitVersionstamp()
commitVersionstamp(): symbol;Defined in: valkeyrie.ts:128
Returns
symbol
withSchema()
static withSchema<TPattern, TSchema>(pattern: TPattern, schema: TSchema): ValkeyrieBuilder<readonly [readonly [TPattern, TSchema] extends SchemaRegistryEntry ? SchemaRegistryEntry & readonly [TPattern, TSchema] : never]>;Defined in: valkeyrie.ts:140
Creates a builder for registering schemas before opening the database. Uses const type parameter to automatically infer literal types without as const.
Type Parameters
TPattern
TPattern extends Key
TSchema
TSchema extends StandardSchemaV1<unknown, unknown>
Parameters
pattern
TPattern
Key pattern with optional '*' wildcards
schema
TSchema
Standard schema for validation
Returns
ValkeyrieBuilder<readonly [readonly [TPattern, TSchema] extends SchemaRegistryEntry ? SchemaRegistryEntry & readonly [TPattern, TSchema] : never]>
A builder instance for chaining with type tracking
open()
static open(path?: string, options?: {
serializer?: () => Serializer;
destroyOnClose?: boolean;
}): Promise<Valkeyrie<readonly []>>;Defined in: valkeyrie.ts:153
Opens a new Valkeyrie database instance
Parameters
path?
string
Optional path to the database file (defaults to in-memory)
options?
Optional configuration options
serializer?
() => Serializer
destroyOnClose?
boolean
Returns
Promise<Valkeyrie<readonly []>>
A new Valkeyrie instance
[kOpen]()
static [kOpen](
path?: string,
options?: {
serializer?: () => Serializer;
destroyOnClose?: boolean;
},
schemaRegistry?: SchemaRegistry): Promise<Valkeyrie<readonly []>>;Defined in: valkeyrie.ts:167
Internal method to open a database with schemas. Used by ValkeyrieBuilder.
Parameters
path?
string
options?
serializer?
() => Serializer
destroyOnClose?
boolean
schemaRegistry?
SchemaRegistry
Returns
Promise<Valkeyrie<readonly []>>
from()
static from<T>(iterable: Iterable<T>, options: FromOptions<T>): Promise<Valkeyrie<readonly []>>;Defined in: valkeyrie.ts:240
Creates and populates a Valkeyrie database from a synchronous iterable.
Type Parameters
T
T
Parameters
iterable
Iterable<T>
The iterable to populate the database from
options
FromOptions<T>
Configuration options including prefix and key extraction
Returns
Promise<Valkeyrie<readonly []>>
A populated Valkeyrie instance
Example
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
]
const db = await Valkeyrie.from(users, {
prefix: ['users'],
keyProperty: 'id'
})[kFrom]()
static [kFrom]<T>(
iterable: Iterable<T>,
options: FromOptions<T>,
schemaRegistry?: SchemaRegistry): Promise<Valkeyrie<readonly []>>;Defined in: valkeyrie.ts:251
Internal method to create and populate a database with schemas. Used by ValkeyrieBuilder.
Type Parameters
T
T
Parameters
iterable
Iterable<T>
options
FromOptions<T>
schemaRegistry?
SchemaRegistry
Returns
Promise<Valkeyrie<readonly []>>
fromAsync()
static fromAsync<T>(iterable: AsyncIterable<T>, options: FromOptions<T>): Promise<Valkeyrie<readonly []>>;Defined in: valkeyrie.ts:368
Creates and populates a Valkeyrie database from an asynchronous iterable.
Type Parameters
T
T
Parameters
iterable
AsyncIterable<T>
The async iterable to populate the database from
options
FromOptions<T>
Configuration options including prefix and key extraction
Returns
Promise<Valkeyrie<readonly []>>
A populated Valkeyrie instance
Example
async function* generateUsers() {
yield { id: 1, name: 'Alice' }
yield { id: 2, name: 'Bob' }
}
const db = await Valkeyrie.fromAsync(generateUsers(), {
prefix: ['users'],
keyProperty: 'id'
})[kFromAsync]()
static [kFromAsync]<T>(
iterable: AsyncIterable<T>,
options: FromOptions<T>,
schemaRegistry?: SchemaRegistry): Promise<Valkeyrie<readonly []>>;Defined in: valkeyrie.ts:379
Internal method to create and populate a database with schemas from async iterable. Used by ValkeyrieBuilder.
Type Parameters
T
T
Parameters
iterable
AsyncIterable<T>
options
FromOptions<T>
schemaRegistry?
SchemaRegistry
Returns
Promise<Valkeyrie<readonly []>>
close()
close(): Promise<void>;Defined in: valkeyrie.ts:477
Returns
Promise<void>
destroy()
destroy(): Promise<void>;Defined in: valkeyrie.ts:490
Destroys the database by removing the underlying database file. This operation cannot be undone and will result in permanent data loss.
Returns
Promise<void>
A promise that resolves when the database has been destroyed
clear()
clear(): Promise<void>;Defined in: valkeyrie.ts:499
Clears all data from the database but keeps the database file. This operation cannot be undone and will result in permanent data loss.
Returns
Promise<void>
A promise that resolves when the database has been cleared
validateKeys()
validateKeys(keys: unknown[]): asserts keys is Key[];Defined in: valkeyrie.ts:510
Validates that the provided keys are arrays.
Parameters
keys
unknown[]
The keys to validate.
Returns
asserts keys is Key[]
Throws
If any key is not an array.
get()
get<TKey>(key: TKey): Promise<EntryMaybe<InferTypeForKey<TRegistry, TKey>>>;Defined in: valkeyrie.ts:747
Gets a value from the database with automatic type inference based on registered schemas. Uses const type parameter to automatically infer literal key types without as const.
Type Parameters
TKey
TKey extends Key
Parameters
key
TKey
The key to retrieve (supports literal type inference)
Returns
Promise<EntryMaybe<InferTypeForKey<TRegistry, TKey>>>
Entry with the value or null if not found. Type is automatically inferred from schema registry.
getMany()
getMany<T>(keys: Key[]): Promise<EntryMaybe<T>[]>;Defined in: valkeyrie.ts:777
Gets multiple values from the database. Note: For type inference, use individual get() calls instead.
Type Parameters
T
T = unknown
Parameters
keys
Key[]
Array of keys to retrieve
Returns
Promise<EntryMaybe<T>[]>
Array of entries with values or nulls
set()
set<TKey>(
key: TKey,
value: InferTypeForKey<TRegistry, TKey>,
options: SetOptions): Promise<{
ok: true;
versionstamp: string;
}>;Defined in: valkeyrie.ts:797
Sets a value in the database with automatic type checking based on registered schemas. Uses const type parameter to automatically infer literal key types without as const.
Type Parameters
TKey
TKey extends Key
Parameters
key
TKey
The key to set (supports literal type inference)
value
InferTypeForKey<TRegistry, TKey>
The value to set. Type is automatically checked against schema registry.
options
SetOptions = {}
Optional settings like expireIn
Returns
Promise<{ ok: true; versionstamp: string; }>
Result with versionstamp
delete()
delete(key: Key): Promise<void>;Defined in: valkeyrie.ts:827
Parameters
key
Returns
Promise<void>
list()
Call Signature
list<TPrefix>(selector:
| {
prefix: TPrefix;
}
| {
prefix: TPrefix;
start: Key;
}
| {
prefix: TPrefix;
end: Key;
}, options?: ListOptions): AsyncIterableIterator<Entry<InferTypeForPrefix<TRegistry, TPrefix>>, void, any> & {
cursor: string;
[asyncDispose]: Promise<void>;
};Defined in: valkeyrie.ts:1076
Type Parameters
TPrefix
TPrefix extends Key
Parameters
selector
{ prefix: TPrefix; } | { prefix: TPrefix; start: Key; } | { prefix: TPrefix; end: Key; }
options?
ListOptions
Returns
AsyncIterableIterator<Entry<InferTypeForPrefix<TRegistry, TPrefix>>, void, any> & { cursor: string; [asyncDispose]: Promise<void>; }
Call Signature
list<T>(selector: {
start: Key;
end: Key;
}, options?: ListOptions): AsyncIterableIterator<Entry<T>, void, any> & {
cursor: string;
[asyncDispose]: Promise<void>;
};Defined in: valkeyrie.ts:1090
Type Parameters
T
T = unknown
Parameters
selector
start
end
options?
ListOptions
Returns
AsyncIterableIterator<Entry<T>, void, any> & { cursor: string; [asyncDispose]: Promise<void>; }
cleanup()
cleanup(): Promise<void>;Defined in: valkeyrie.ts:1182
Returns
Promise<void>
atomic()
atomic(): AtomicOperation<TRegistry>;Defined in: valkeyrie.ts:1188
Returns
AtomicOperation<TRegistry>
executeAtomicOperation()
executeAtomicOperation(checks: Check[], mutations: Mutation<unknown>[]): Promise<
| {
ok: true;
versionstamp: string;
}
| {
ok: false;
}>;Defined in: valkeyrie.ts:1201
Parameters
checks
Check[]
mutations
Mutation<unknown>[]
Returns
Promise< | { ok: true; versionstamp: string; } | { ok: false; }>
[dispose]()
dispose: void;Defined in: valkeyrie.ts:1288
Returns
void
[asyncDispose]()
asyncDispose: Promise<void>;Defined in: valkeyrie.ts:1292
Returns
Promise<void>
watch()
watch<TKeys>(keys: [...TKeys[]]): ReadableStream<{ [K in string | number | symbol]: TKeys[K<K>] extends Key ? EntryMaybe<InferTypeForKey<TRegistry, any[any]>> : never }>;Defined in: valkeyrie.ts:1309
Watches multiple keys for changes with automatic type inference based on registered schemas. Uses const type parameter to automatically infer literal key types without as const.
Type Parameters
TKeys
TKeys extends readonly Key[]
Parameters
keys
[...TKeys[]]
Array of keys to watch (supports literal type inference)
Returns
ReadableStream<{ [K in string | number | symbol]: TKeys[K<K>] extends Key ? EntryMaybe<InferTypeForKey<TRegistry, any[any]>> : never }>
ReadableStream of entry arrays. Types are automatically inferred from schema registry.
