@omneedia/client-js
Version:
Isomorphic Javascript client for Omneedia
58 lines • 2.12 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const socket_io_client_1 = require("socket.io-client");
const db_1 = __importDefault(require("./lib/db"));
const realtime_1 = __importDefault(require("./lib/realtime"));
const auth_1 = __importDefault(require("./lib/auth"));
const request_1 = __importDefault(require("./lib/request"));
const prefix_1 = __importDefault(require("./env/prefix"));
class OmneediaClient {
headers() {
return {
'Content-Type': 'application/json',
Authorization: 'Basic ' + this.KEY,
apikey: this.KEY,
};
}
constructor(omneediaUrl, omneediaKey, options) {
this.omneediaUrl = omneediaUrl;
this.omneediaKey = omneediaKey;
this.PREFIX = prefix_1.default;
this.KEY = '';
this.URI = '';
this.socket = null;
if (!omneediaUrl)
throw new Error('omneediaUrl is required.');
if (!omneediaKey)
throw new Error('omneediaKey is required.');
this.URI = omneediaUrl;
this.KEY = omneediaKey;
this.request = new request_1.default(this);
this.auth = new auth_1.default(this, options);
this.options = options;
}
from(table) {
return new db_1.default(table, this);
}
channel(channel) {
this.socket = (0, socket_io_client_1.io)(String(this.URI), {
path: this.PREFIX.REALTIME,
withCredentials: true,
extraHeaders: {
apikey: `${this.KEY}`,
Authorization: `Bearer ${this.KEY}`,
},
});
this.socket.on('connect_error', function (e) {
if (e.description == 401)
throw `Invalid authentication credentials (401)`;
throw `unhandled exception`;
});
return new realtime_1.default(channel, this);
}
}
exports.default = OmneediaClient;
//# sourceMappingURL=OmneediaClient.js.map