Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ const initializeSQLite = async () => {

log('Done initializing. Running demo...');

const configResponse = await promiser('config-get');
const configResponse = await promiser('config-get', {});
log('Running SQLite3 version', configResponse.result.version.libVersion);

const openResponse = await promiser('open', {
Expand All @@ -93,10 +93,6 @@ const initializeSQLite = async () => {
await initializeSQLite();
```

For `config-get`, `promiser('config-get')` is the preferred form. For backward
compatibility, `promiser('config-get', undefined)` and
`promiser('config-get', {})` are also supported.

The `promiser` object above implements the
[Worker1 API](https://sqlite.org/wasm/doc/trunk/api-worker1.md#worker1-methods).

Expand Down
26 changes: 4 additions & 22 deletions src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1703,21 +1703,12 @@ type Worker1ConfigGetResult = {
/** Map of Worker API #1 operation types to their argument types. */
type Worker1ArgsMap = {
open: Worker1OpenArgs;
close: Worker1CloseArgs | undefined;
close: Worker1CloseArgs;
exec: Worker1ExecArgs | string;
export: undefined;
'config-get': undefined | Record<string, never>;
export: Record<string, never>;
'config-get': Record<string, never>;
};

type Worker1OptionalArgsOp = {
[K in keyof Worker1ArgsMap]: undefined extends Worker1ArgsMap[K] ? K : never;
}[keyof Worker1ArgsMap];

type Worker1RequiredArgsOp = Exclude<
keyof Worker1ArgsMap,
Worker1OptionalArgsOp
>;

/** Map of Worker API #1 operation types to their result types. */
type Worker1ResultMap = {
open: Worker1OpenResult;
Expand All @@ -1733,20 +1724,11 @@ export type Worker1Promiser = {
* Sends a message to the worker and returns a Promise which resolves to the
* response message.
*/
<T extends Worker1RequiredArgsOp>(
<T extends keyof Worker1ArgsMap>(
type: T,
args: Worker1ArgsMap[T],
): Promise<Worker1OutputEnvelope<T, Worker1ResultMap[T]>>;

/**
* Sends a message to the worker and returns a Promise which resolves to the
* response message.
*/
<T extends Worker1OptionalArgsOp>(
type: T,
args?: Worker1ArgsMap[T],
): Promise<Worker1OutputEnvelope<T, Worker1ResultMap[T]>>;

/**
* Sends a message to the worker and returns a Promise which resolves to the
* response message.
Expand Down
Loading