Facilitates the connection between the stremio-api and Stremio, with extras such as user/add-on sync and persistence.
Contains two main modules:
This is a stateless module to request the stremio-api
It's constructed like this:
var StremioAPIClient = require('stremio-api-client').StremioAPIClient
var API = new StremioAPIClient(options)-
endpoint- URL to the API, default ishttps://api.strem.io -
authKey- session auth key, default isnull
request(method, params)- returns a promise
This is a stateful class that, when created, would take care of persistance and sync of the user and her add-ons collection
It's constructed like this:
var StremioAPIStore = require('stremio-api-client').StremioAPIStore
var APIStore = new StremioAPIStore(options)-
endpoint- URL to the API, default ishttps://api.strem.io -
storage- a storage object with synchronousgetJSONandsetJSONproperties
APIStore.user - User object
APIStore.addons - AddonCollection
NOTE: All the methods return promises
APIStore.login({ email, password, fbLoginToken }) - logs in; fbLoginToken is optional
APIStore.authWithApple({ token, sub, email, name }) - authenticates with Apple Sign In; requires token, sub, email, name for authentication
APIStore.register({ email, password }) - registers a new user
APIStore.logout() - logs out
All of the above 3 methods change API.user and therefore will emit (upon success) user-change
APIStore.pushUser() - pushes the local API.user to the API; requires to be logged in
APIStore.pullUser() - pull the latest user from the API; requires to be logged in
pullUser() may emit user-change if the remote user is more recent
APIStore.pushAddonCollection() - pushes local API.addons collection to the API (via addonCollectionSet); requires to be logged in
APIStore.pullAddonCollection() - pulls the remote add-on collection (via addonCollectionGet), may emit addons-change or addons-different
user-change: emitted when the User is changed (by ID, i.e. completely different user)
addons-change: emitted when the add-on set (AddonCollection) is changed
addons-different: emitted when the add-on collection is different (compared through transportUrls)