Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/comfortablycoding/clickup.js
A Node.js wrapper for the Clickup API
https://github.com/comfortablycoding/clickup.js
api clickup clickup-api clickup-js clickupjs node-wrapper wrapper
Last synced: about 20 hours ago
JSON representation
A Node.js wrapper for the Clickup API
- Host: GitHub
- URL: https://github.com/comfortablycoding/clickup.js
- Owner: ComfortablyCoding
- License: mit
- Created: 2020-09-18T04:07:11.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-29T13:00:48.000Z (6 months ago)
- Last Synced: 2024-11-05T14:59:51.371Z (10 days ago)
- Topics: api, clickup, clickup-api, clickup-js, clickupjs, node-wrapper, wrapper
- Language: JavaScript
- Homepage: https://clickup-js.netlify.app/
- Size: 1.24 MB
- Stars: 28
- Watchers: 1
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# clickup.js
A Node.js wrapper for the [Clickup API](https://clickup.com/api).
[![Downloads](https://img.shields.io/npm/dm/clickup.js.svg?style=for-the-badge)](https://www.npmjs.com/package/clickup.js)
[![Install size](https://img.shields.io/bundlephobia/min/clickup.js?style=for-the-badge)](https://packagephobia.now.sh/result?p=clickup.js)
![Package version](https://img.shields.io/github/package-json/v/ComfortablyCoding/clickup.js?style=for-the-badge)## Install
```sh
npm install clickup.js
```or
```sh
yarn add clickup.js
```## Usage
Before you can use this library you will need to first authenticate with the Clickup API and obtain an `Access Token`. You can read how to do so at the [Clickup API docs](https://clickup.com/api).
In your project, initialize an instance of clickup.js:
```js
const { Clickup } = require('clickup.js');
const token = '...'; // API access token
const clickup = new Clickup(token);
```Once you've created an instance, you can use it to access all the features provided by the wrapper, the following example fetches a task by id and displays the response to the console:
```js
(async () => {
try {
// get a specific task
const { body } = await clickup.tasks.get('9hz');
console.log(body);
} catch (error) {
if (error.response) {
// The request was made and the server responded with a status code
// that falls out of the range of 2xx
console.log(error.response.body);
console.log(error.response.statusCode);
console.log(error.response.headers);
} else if (error.request) {
// The request was made but no response was received
console.log(error.request);
} else {
// Something happened in setting up the request that triggered an Error
console.log('Error', error.message);
}
console.log(error.options);
}
})();
```**Note:** Due to the HTTP request library being used each error contains an `options` property which are the options Got used to create a request - just to make debugging easier. Additionally, the errors may have `request` and `response` properties depending on which phase of the request failed. Read more about HTTP request library [Got](https://github.com/sindresorhus/got).
## Important Note
The library is structured to match classes with their respective routes, **NOT** how they are sectioned in the Clickup API docs. For example adding a guest to a task is under the `Tasks` class instead of the `Guests` class as its route is via `task` and not `guest`. Due to this a request to add a guest to a task will look like so:
```js
(async () => {
try {
// guest data
const guestData = {
permission_level: 'read',
};
// add guest to task
const { body } = await clickup.tasks.addGuest('c04', 403, guestData);
console.log(body);
} catch (error) {
if (error.response) {
// The request was made and the server responded with a status code
// that falls out of the range of 2xx
console.log(error.response.body);
console.log(error.response.statusCode);
console.log(error.response.headers);
} else if (error.request) {
// The request was made but no response was received
console.log(error.request);
} else {
// Something happened in setting up the request that triggered an Error
console.log('Error', error.message);
}
console.log(error.options);
}
})();
```## Documentation
You can read the library documentation at the [clickup.js docs](https://clickup-js.netlify.app)
## Features
The available features are:
- `Authorization`
- `Checklists`
- `Comments`
- `Folders`
- `Goals`
- `KeyResults`
- `Lists`
- `Spaces`
- `Tasks`
- `Teams`
- `Views`
- `Webhooks`## Disclaimer
The [clickup.js](https://github.com/ComfortablyCoding/clickup.js) package is **unofficial** and therefor not endorsed or affiliated with ClickUp or it's subsidiaries.