Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/maxmechanic/node-pinboard

A Node.js wrapper for the Pinboard API.
https://github.com/maxmechanic/node-pinboard

pinboard

Last synced: 2 days ago
JSON representation

A Node.js wrapper for the Pinboard API.

Awesome Lists containing this project

README

        

# node-pinboard

[![npm package](https://img.shields.io/npm/v/node-pinboard.svg?style=flat-square)](https://www.npmjs.org/package/node-pinboard)
[![Build Status](https://travis-ci.org/maxmechanic/node-pinboard.svg?branch=master)](https://travis-ci.org/maxmechanic/node-pinboard)

A Node.js wrapper for the Pinboard API.

### Installation

npm install node-pinboard

### Available functions

node-pinboard follows the [Pinboard v1 API](https://pinboard.in/api/) with [token auth](https://pinboard.in/api/#authentication) (token can be found on [settings/password](https://pinboard.in/settings/password)).

### Errors

Under the hood, node-pinboard uses node-fetch, so API call errors will follow that library's patterns.

### Tests

npm test

To determine code coverage:

npm run coverage

### Examples

```javascript
const Pinboard = require('node-pinboard').default;
const api_token = 'user:NNNNNN';

const pinboard = new Pinboard(api_token);

const options = {
url: 'https://github.com/maxmechanic/node-pinboard',
description: 'node pinboard',
tags: 'github,node-pinboard,test',
toread: 'yes'
};

pinboard.add(options, (err, res) => {
console.log(res);
//{ result_code: 'done' }
});

pinboard.get({ tag: 'node-pinboard' }, (err, res) => {
console.log(res);
//date: date,
//user: 'user',
//posts:
//[ { href: 'https://github.com/maxmechanic/node-pinboard',
//description: 'node pinboard',
//extended: '',
//meta: 'meta',
//hash: 'hash',
//time: 'time',
//shared: 'no',
//toread: 'yes',
//tags: 'git node-pinboard test' } ] }
});

// promise version

pinboard.get({ tag: 'node-pinboard' }).then(res => {
console.log(res);
});
```