firebase-tools
Version:
Command-Line Interface for Firebase
47 lines (46 loc) • 1.43 kB
JavaScript
;
var { Command } = require("../command");
var configstore = require("../configstore");
var logger = require("../logger");
var clc = require("cli-color");
var utils = require("../utils");
var api = require("../api");
var auth = require("../auth");
var _ = require("lodash");
module.exports = new Command("logout")
.description("log the CLI out of Firebase")
.action(function (options) {
var user = configstore.get("user");
var tokens = configstore.get("tokens");
var currentToken = _.get(tokens, "refresh_token");
var token = utils.getInheritedOption(options, "token") || currentToken;
api.setRefreshToken(token);
var next;
if (token) {
next = auth.logout(token);
}
else {
next = Promise.resolve();
}
var cleanup = function () {
if (token || user || tokens) {
var msg = "Logged out";
if (token === currentToken) {
if (user) {
msg += " from " + clc.bold(user.email);
}
}
else {
msg += ' token "' + clc.bold(token) + '"';
}
utils.logSuccess(msg);
}
else {
logger.info("No need to logout, not logged in");
}
};
return next.then(cleanup, function () {
utils.logWarning("Invalid refresh token, did not need to deauthorize");
cleanup();
});
});