Guest Support
A Scale Function written in TypeScript often looks something like this:HTTP Signature
,
which provides an interface for handling HTTP requests and responses. To learn more about the HTTP Signature
and the
interfaces it provides, you can check out the HTTP Signature Reference. Learn more about Signatures in the Signatures Overview.
Host Support
To use a compiled Scale Function (written in any supported language) inside a TypeScript or JavaScript application, there are 3 steps:- Import the Scale Function(s) into the TS/JS application by embedding them
- Create a new Scale Runtime and pass in the Scale Function(s)
- Call the
Run
method on the Scale Runtime with your request
Importing Scale Functions
Scale Functions can be imported into a TS/JS application:Embedding Scale Functions
Use the@loopholelabs/scale
package directly to embed functions.
Creating a Scale Runtime
Once you’ve imported your Scale Function(s) into your TS/JS application, you can create a new instance of the Scale Runtime, passing the function, as well as a newConfig
, with a NewSiginature
.
Running a Scale Function
Once you’ve created the Scale Runtime, you can call theInstance
method on it to get a new runtime instance.
The Context
method of the Instance
can then be used to set the request body, and the Run
method can be used to
run the Scale Function (or Functions).
You’ll notice that we’re passing in
null
to the r.Instance
method above. This is because it’s possible to chain
native functions alongside Scale Functions, and the Instance
method will automatically pass the result of the
previous function to the next one (and pass the responses back up through the chain).If you’re not using a native handler at the end of the chain, you can pass in null
to the Instance
method.Instance
can be reused multiple times, but it’s not thread-safe. If you need to run
multiple instances of a Scale Function concurrently, you’ll need to create a new Instance
for each one.
Instances are heavily optimized and will recycle themselves automatically when they’re no longer in use. This means that
creating instances are very cheap and you can create as many as you need as often as you need.
The
Instance
method itself is thread-safe and can be called concurrently.