Coder Social home page Coder Social logo

digitalocean-v2's Introduction

DigitalOcean-v2

A lightweight, Promise-based wrapper for the DigitalOcean v2 API.

npm package

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 (:gun:)
  • Add missing methods
  • Add missing components (Regions, SSH Keys, Sizes, IPs, Tags)
  • Add tests
  • Better error-handling

License

MIT © Luke Edwards

digitalocean-v2's People

Contributors

from-the-river-to-the-sea avatar lukeed avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.