TypeScript (Node)

Install

First things first, let’s install the TypeScript library!

(If you already installed the VSCode extension, the extension setup may have already installed the Tyepscript library.)

Run this command to ensure the TypeScript library is installed:

$ npm install polyapi

Important

PolyAPI requires Node JS 14.0.0 or higher and TypeScript 4.0.0 or higher.

Note

You may encounter an EACCESS error trying to npm install polyapi.

npm error [Error: EACCES: permission denied, open '/home/username/foo/package.json']
npm error The operation was rejected by your operating system.
npm error It is likely you do not have the permissions to access this file as the current user

These errors usually come from mixing sudo npm install and npm install commands.

If you are experiencing permission issues, PolyAPI recommends the following:

  • open a new terminal

  • create a new folder and cd into it

  • run npm init

  • run npm install polyapi WITHOUT sudo

In most cases, that should resolve the issues.

If you still see EACCESS issues, please read the npm error message carefully. Oftentimes the problem is with your npm cache and npm recommends the command you need to fix the cache permissions issues.

If you continue to experience issues, please email us at support@polyapi.io.

Setup and Generate

First configure your client:

$ npx poly setup

Enter your server and API Key when prompted.

Note

This command will also request for you to install/update some dependencies like ts-node and TypeScript.

Next, let’s go ahead and retrieve all the trained Poly functions and generate the TypeScript SDK for them:

$ npx poly generate

Warning

Please be sure to add node_modules to your .gitignore file.

Not only is it good practice in general, with PolyAPI your api key is stored in node_modules/.poly/.config.env so you can quickly run npx poly generate (and other commands) without having to re-enter your api key each time.

So be sure to add node_modules to your .gitignore file to avoid accidentally committing your api key to your git repo.

Develop First Function

Next, let’s develop our first custom function!

Open a new file called hello-world.ts and add the following code:

function helloWorld(): string {
    return 'Hello Poly World!';
}

Next use the PolyAPI TypeScript SDK to deploy this function:

$ npx poly function add helloWorld ./hello-world.ts --context "myContext" --server

This will deploy a new serverless function to Poly. You can also use –client option to create functions which are packaged into the generated SDK.

Run First Function

Finally, let’s open a new file called index.ts and add the following code:

import poly from 'polyapi';

(async () => {
    console.log(await poly.myContext.helloWorld());
})();

Now run your file:

$ npx ts-node ./index.ts

The function will run and you should see “Hello Poly World!” printed in the console.

Glide Farther

Deploying one-off functions this way is fine, but it won’t necessarily scale with more functions or if we have a team of people writing and deploying these functions.

To make building and deploying even easier, we’ve put together Project Glide, which lets you integrate PolyAPI more deeply into your git-based workflow backed by Github.

With a pre-commit hook in git, we can write functions and Poly will detect them automatically, validate them, and document them before we commit them.

And then once committed, the PolyAPI deployment action on Github picks up all our functions and deploys them to Poly.

See documentation in Project Glide to learn more and to setup this workflow.

Onward

That’s it! You have now:

  • Setup your Typescript SDK

  • Trained your first server function

  • Ran your first server function

This is the last step on the guided tour of Poly.

To further explore aspects of Poly and what it can do, head over to Next Steps.