Add NPM libraries

You can write the task using just plain javascript but more often than not, you may want to use a third party library to make your life easier. For example, if you are dealing with time conversion and timzones, you may want to use dayjs. This way you don't need to re-invent the wheel and you can use widely used & properly tested libraries to do the job for you.

How to add a new NPM library

In the task editor, you can see the "dependencies" section on the left.
Click on "Add dependency", then you can search for the NPM package you want to install. Currently, only the latest version are available for install.
Note that the dependencies are added on the app level, so if you add package A to one task, it is immediately available to all the other tasks in the same app.
Adding node libraries will increase the memory consumption of the task run. So make sure to only add libraries that you are using.

Required NPM libraries for app integrations

Certain app integrations may require a library in order to properly make API calls/interact. For example, with mongo integration requires mongodb library. See Shypyard SDK for more details.

Common NPM libraries

Purpose
Libraries
Making HTTP request
Axios, Request, node-fetch, got
General Utility
lodash
Time
Day.js, Moment.js, moment-timezone
Templates
Handlebars, liquid, EJS
Database
Mysql, MongoDB, redis, pg
Compression
zlip
FTP
SFTP
Email
Nodemailer
Security
jsonwebtoken
Generate unique ID
uuid
PDF
pdfkit
In-memory filesystem
memfs
Validation
joi, validator.js
Image transform
Sharp
Note that Shypyard by default already comes with axios. You can access it this way:
const { libs } = require('platform');
const http = libs.http.get();
// http.get(...)