UNPKG

moip-sdk-node-ts

Version:
53 lines (52 loc) 2.11 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const safe_buffer_1 = require("safe-buffer"); const resources_1 = __importDefault(require("./resources")); const lodash_1 = require("lodash"); const environment = (isProduction) => { return isProduction ? 'production' : 'sandbox'; }; const authorization = (opts) => { let auth; if (opts.accessToken) { auth = 'OAuth ' + opts.accessToken; } else if (opts.token && opts.key) { auth = 'Basic ' + new safe_buffer_1.Buffer(opts.token + ':' + opts.key).toString('base64'); } else { throw Error('You must provide either an `accessToken` or your `token` with the corresponding `key`.'); } return auth; }; const binder = (func, args) => lodash_1.bind(func, null, args); const looper = (result, resource, authObject) => lodash_1.reduce(resource, (result, func, key) => { result[key] = lodash_1.isFunction(func) ? binder(func, authObject) : looper(result, func, authObject); return result; }, {}); const connect = (opts) => { const auth = authorization(opts); const env = environment(opts.production); return lodash_1.reduce(resources_1.default, (result, resource, key) => { result[key] = looper(result, resource, { auth, env }); return result; }, {}); }; __exportStar(require("./resources"), exports); __exportStar(require("./types"), exports); exports.default = connect;