Skip to content

spinframework/spin-js-sdk

Repository files navigation

Spin JS SDK

This is an SDK for Javascript and Typescript based on ComponentizeJS.

Note that this SDK supersedes an earlier, experimental version, which may be found in the sdk-v1 branch.

Installing the templates

Spin is a prerequisite.

The templates can be installed with the following command:

spin templates install --update --git https://github.com/fermyon/spin-js-sdk 

Creating and building a new app

Create a new app from the template installed in the previous step:

spin new -t http-ts hello-world -a

Change directory into the app:

cd hello-world

Install the dependencies and build the app:

npm install
spin build

Running the app

spin up

Finally, you can test your app using e.g. curl in another terminal:

curl -i http://127.0.0.1:3000

If all goes well, you should see something like:

HTTP/1.1 200 OK
content-type: text/plain
content-length: 14
date: Thu, 11 Apr 2024 17:42:31 GMT

hello universe

Please file an issue if you have any trouble.

See the examples directory in the repository for more examples.

To learn more about the JS SDK checkout the documentation

Structure of this repository

This repository contains multiple packages under the packages/ directory. Packages whose names start with spin- host provide access to Spin-specific interfaces, whereas the http-trigger package can be used for creating runtime-agnostic components that just rely on wasi:[email protected].

The build-tools package provides the tools for componentizing JavaScript/TypeScript source code, regardless of the interfaces used.

The examples directory contains various examples of common patterns and using popular SDKs.

The templates directory contains all the Spin templates. It currently has four templates - http-js, http-rs, redis-jsandredis-ts`.

Testing the packages together (integration testing)

There is a test script (test.sh) that builds and runs a Spin app which tests itself for various functionalities by making fetch requests to various endpoints. To run:

cd test
./test.sh
``