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 = ; // initialize the API wrapperconst API = token: 'your-digitalocean-access-token'; // do somethingAPI;
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 = ;const Domain = ;const Image = ; // merge functionality into the API's Core prototypeCoreprototype; // initialize the API wrapperconst API = token: 'your-digitalocean-access-token'; API; // undefined function (Droplet component not injected)API;
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 = processenvDO_API_V2_TOKEN;const DOV2 = ;const API = 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