Giter Site home page Giter Site logo

francislow82 / robin-js-sdk-public Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robinpowered/robin-js-sdk-public

0.0 0.0 0.0 1.46 MB

Robin Javascript SDK

Home Page: https://docs.robinpowered.com

License: Apache License 2.0

JavaScript 100.00%

robin-js-sdk-public's Introduction

Robin JavaScript SDK

A JavaScript SDK to communicate with the Robin platform.

This SDK provides the ability to communicate both with the Robin API and the Robin Grid.

Installation

node

npm install [email protected]:robinpowered/robin-js-sdk.git --save will save this to the dependencies section of your package.json

You may then require this sdk as follows:

var Robin = require('robin-js-sdk');
browser

Include the script from https://static.robinpowered.com/js/sdk/$version/robin.browser.min.js, where $version is the npm version number in package.json. robin-js-sdk will be automatically attached to the window object as window.Robin.

Instantiation

robin-js-sdk is instantiated with two arguments, the first is a Robin Access Token. The second is an optional argument that can be null, a string, an object or undefined.

Options

If the second argument is undefined or null, this SDK will be instantiated with endpoints pointing to production.

If it is a string, it must be a valid robin endpoint. Valid values are test, staging or production. Otherwise an error is thrown.

If it is an object:

  • An empty object will result in all endpoints defaulting to production.
  • If it contains an env property, all endpoints will default to that env. Values other than string types for this property will throw errors.
  • If it has a urls property, then values for core, grid or places will override the default endpoint for any of those apps. Types for this property other than object will throw errors. Properties of this object other than core, grid or places will throw errors.

Robin API

The Robin API is a REST based API. Calls to the API return a promise.

Core API Routes:

Route Source
Accounts accounts.js
Apps apps.js
Auth auth.js
Channels channels.js
DeviceManifests devicemanifests.js
Devices devices.js
Identifiers identifiers.js
Locations locations.js
Me me.js
Organizations organizations.js
Projects projects.js
Spaces spaces.js
Triggers triggers.js
Users users.js

Places API Routes:

Route Source
Events events.js

Robin Grid

TODO: Improve this section in a future PR

The Grid is a websocket server that allows PubSub between clients and devices through configured channels. The Grid module is an EventEmitter, to allow real-time updates.

The Grid exposes several modules, which allow you to connect and listen:

  • join - Allows clients to listen to updates from channels
  • leave - Disconnects the client from receiving updates for a particular channel
  • send - Allows a client to send messages to a channel.

Development Roadmap

The following should be implemented:

  • Support for use in browsers, as well as node.js
  • [ ] Add winston for logging - will this work in browsers?
  • Handle scope of access tokens for extended functionality (such as retrieving all API items)
  • Adhere to Robin Javascript Coding Standards - this is TBD.
  • Implement API function arguments based on API documentation
  • Expand documentation to include all API modules
  • Can we autogenerate API module functions based on a object template?

Browserify

Running grunt browser generates two files in the browser/ folder.

  • browser/robin.browser.js is the full file after being run through browserify.
  • browser/robin.browser.min.js is the minified version.

robin-js-sdk-public's People

Contributors

atticoos 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.