digitalocean-v2
A lightweight, Promise-based wrapper for the DigitalOcean v2 API.
#Installation
npm install digitalocean-v2 --save
#Usage
#All Interactions
If you want access to the full DigitalOcean API, then import the entire module:
const Digi = require('digitalocean-v2');
// initialize the API wrapper
const API = new Digi({token: 'your-digitalocean-access-token'});
// do something
API.listDroplets().then(data => {
console.log(data); // all droplets
});
#Customized Interactions
However, you may only want to interact with a certain component of the API, like domains and images, for example.
So you have the ability to inject the relevant modules into your Core:
const Core = require('digitalocean-v2/core');
const Domain = require('digitalocean-v2/domain');
const Image = require('digitalocean-v2/image');
// merge functionality into the API's Core prototype
Core.prototype.inject(Domain, Image);
// initialize the API wrapper
const API = new Core({token: 'your-digitalocean-access-token'});
API.listDomains().then(data => {
console.log(data); // all domains
});
// undefined function (Droplet component not injected)
API.getDroplet();
#API
#token
Type: string
Default: undefined
Your DigitalOcean access token. Required. Learn how to acquire a token.
Note: This is sensitive information! Do not share it freely.
It is a good idea to set your token as an environment variable:
DO_API_V2_TOKEN=my-token-from-digitalocean node index.js
const token = process.env.DO_API_V2_TOKEN;
const DOV2 = require('digitalocean-v2');
const API = new DOV2({token});
#Components
You may choose to inject a series of components instead of working with the full API wrapper, as demonstrated above.
These are the component names available for require():
- Account:
require('digitalocean-v2/account') - Domains:
require('digitalocean-v2/domain') - Droplets:
require('digitalocean-v2/droplet') - Images:
require('digitalocean-v2/image')
(Incomplete Component coverage)
#Component Methods
#Account.getUser()
Docs: Link
Return: Promise
Response: Object
#Account.listActions()
Docs: Link
Return: Promise
Response: Array
#Account.getAction(id)
Type: Integer
Docs: Link
Return: Promise
Response: Object
#Domain.listDomains()
Docs: Link
Return: Promise
Response: Array
#Domain.getDomain(name)
Type: String
@todo
#Domain.createDomain(options)
Type: Object
@todo
#Domain.deleteDomain(name)
Type: String
@todo
#Todos
- Finish docs (🔫)
- Add missing methods
- Add missing components (Regions, SSH Keys, Sizes, IPs, Tags)
- Add tests
- Better error-handling
#License
MIT © Luke Edwards
See also
clsx(3), @polka/cluster(3), @pwa/cli(3), uvu(3), taskr(3), sockette(3), klona(3), kleur(3), dequal(3), sirv-cli(3)