Interface: MigrationStore
Defined in: migrate.ts:303
Storage you provide (Redis, Postgres, DynamoDB, a file, a Map in tests). Values are JSON strings. Methods may be sync or async.
Cross-process safety depends on MigrationStore.compareAndSet. If it is implemented atomically, every transition is atomic across processes and machines that share the store. If it is absent, transitions are only serialised inside one process.
Methods
compareAndSet()?
optionalcompareAndSet(key,expected,value):boolean|Promise<boolean>
Defined in: migrate.ts:314
Optional but strongly recommended. Atomically sets key to value only if its current value is exactly expected (undefined means "the key must not exist"). Returns whether the write happened. Recipes: Redis WATCH/MULTI or a Lua script; Postgres UPDATE ... WHERE value = $expected (and INSERT ... ON CONFLICT DO NOTHING for absent); DynamoDB ConditionExpression; SQLite BEGIN IMMEDIATE. FileMigrationStore (subpath quantum-safe-ts/file-store) is a tested single-host implementation.
Parameters
key
string
expected
string | undefined
value
string
Returns
boolean | Promise<boolean>
get()
get(
key):string|Promise<string|undefined> |undefined
Defined in: migrate.ts:304
Parameters
key
string
Returns
string | Promise<string | undefined> | undefined
keys()
keys():
Iterable<string,any,any> |Promise<Iterable<string,any,any>>
Defined in: migrate.ts:306
Returns
Iterable<string, any, any> | Promise<Iterable<string, any, any>>
set()
set(
key,value):void|Promise<void>
Defined in: migrate.ts:305
Parameters
key
string
value
string
Returns
void | Promise<void>