Plugin an existing JS SDK
#
IntroductionIn this guide, we'll walk you through creating your own JavaScript-based plugin wrapper that can be added to the JavaScript Polywrap Client.
caution
Plugins do not retain all of Polywrap's benefits. We recommend re-writing your existing JavaScript SDKs as Wasm wrappers if possible.
As always, if you need any help, message us on Discord!
#
PrerequisitesYou'll need the following installed before building your plugin:
nvm
yarn
You'll be using TypeScript to implement your Polywrap plugin.
tip
In the future, TypeScript will be one of many supported languages for implementing plugins. As more Polywrap Clients are released in various languages, implementing plugins in those languages will be supported as well.
#
Getting startedTo get started, use the following command to spin up a project folder for your plugin.
Where <project-name>
is replaced with a custom name of your choosing. For example my-plugin
.
Once complete, you'll see a new folder appear, named after the custom name you've chosen. Please navigate into this new directory (using cd
for example).
#
InstallationLet's ensure all of your project's dependencies are installed. From inside your project's directory, simply run:
nvm install && nvm use
yarn
#
Overview of project filesYour project should look something like this:
polywrap.plugin.yaml
#
The Plugin Manifest describes the layout of a plugin.
schema.graphql
#
Each wrapper project has a Wrapper Schema. The schema defines the wrapper's dependencies, methods, and custom types. In short, it's an interface describing how to use the wrapper.
src/index.ts
#
The index.ts
file exports the wrapper's method's implementations, which contain the plugin's logic.
Learn more about the plugin's code architecture by reading Plugin Architecture
#
Building the pluginTo build your plugin, all you need is the following command:
#
Example PluginsFor inspiration, please refer to these existing JavaScript plugins: