Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Stacked on #102
The extensions API provides the place to initiate Postgres extensions or plugins:
plugins would have the interface:
pglite/packages/pglite/src/interface.ts
Lines 23 to 42 in c0f5766
setup
will be called after the runtime is ready, but before starting PG, and would be passed the Emscripten modulemod
and the PGlite instancepg
:init
will be called after starting PG, but before the instance is marked as ready to receive calls.namespaceObj
is an object to include on the main PGlite instance, this can be used to expose additional methods provided by the extension.In order for the typescript type to be correctly added to the PGlite instance you can call the
PGlite.withExtensions()
factory function, this would ensure all the namespace added by the extension is known to typescript. (there is no way to do this on the standard constructor)An example of a first extension (js only) is the live query plugin: #104