UNPKG

@domoinc/ryuu-proxy

Version:

a middleware that provides a proxy for local domo app development

55 lines 2.5 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOauthTokens = exports.getProxyId = exports.isOauthEnabled = exports.getMostRecentLogin = void 0; var Domo = require("ryuu-client"); var glob = require("glob"); var fs = require("fs-extra"); var Configstore = require("configstore"); var constants_1 = require("../constants"); function getMostRecentLogin() { var home = Domo.getHomeDir(); var logins = glob.sync("".concat(home, "/ryuu/*.json")); if (logins.length === 0) return Promise.resolve({}); var recent = logins.reduce(function (prev, next) { return fs.statSync(prev).mtime > fs.statSync(next).mtime ? prev : next; }); var loginData = fs.readJsonSync(recent); var configstore = new Configstore("/ryuu/".concat(loginData.instance)); loginData.refreshToken = configstore.get("refreshToken"); loginData.devToken = configstore.get("devToken"); return Promise.resolve(loginData); } exports.getMostRecentLogin = getMostRecentLogin; var isOauthEnabled = function (manifest) { return Object.keys(manifest).includes(constants_1.OAUTH_ENABLED) && manifest[constants_1.OAUTH_ENABLED]; }; exports.isOauthEnabled = isOauthEnabled; var getProxyId = function (manifest) { var _a; return (_a = manifest.proxyId) !== null && _a !== void 0 ? _a : Domo.createUUID(); }; exports.getProxyId = getProxyId; function getOauthTokens(proxyId, scopes) { return getMostRecentLogin() .then(function (loginData) { var configstore = new Configstore("/ryuu/".concat(loginData.instance)); var allScopes = scopes !== undefined ? __spreadArray(["domoapps"], scopes, true) : ["domoapps"]; return Promise.all([ configstore.get("".concat(proxyId, "-").concat(allScopes.join("-"), "-accessToken")), configstore.get("".concat(proxyId, "-").concat(allScopes.join("-"), "-refreshToken")), ]); }) .then(function (tokens) { return ({ access: tokens[0], refresh: tokens[1], }); }); } exports.getOauthTokens = getOauthTokens; //# sourceMappingURL=index.js.map