firebase-tools
Version:
Command-Line Interface for Firebase
48 lines (47 loc) • 2.25 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.command = void 0;
const clc = require("colorette");
const Table = require("cli-table3");
const command_1 = require("../command");
const error_1 = require("../error");
const utils_1 = require("../utils");
const publisherApi_1 = require("../extensions/publisherApi");
const logger_1 = require("../logger");
const extensionsHelper_1 = require("../extensions/extensionsHelper");
const requireAuth_1 = require("../requireAuth");
exports.command = new command_1.Command("ext:dev:list <publisherId>")
.description("list all extensions uploaded under publisher ID")
.before(requireAuth_1.requireAuth)
.action(async (publisherId) => {
let extensions;
try {
extensions = await (0, publisherApi_1.listExtensions)(publisherId);
}
catch (err) {
throw new error_1.FirebaseError((0, error_1.getErrMsg)(err));
}
if (extensions.length < 1) {
throw new error_1.FirebaseError(`There are no extensions uploaded under publisher ID ${clc.bold(publisherId)}. This could happen for two reasons:\n` +
" - The publisher ID doesn't exist or could be misspelled\n" +
" - This publisher has not uploaded any extensions\n\n" +
"If you are expecting some extensions to appear, please make sure you have the correct publisher ID and try again.");
}
const table = new Table({
head: ["Extension ID", "State", "Latest Version", "Version in Extensions Hub"],
style: { head: ["yellow"] },
});
const sorted = extensions.sort((a, b) => a.ref.localeCompare(b.ref));
sorted.forEach((extension) => {
var _a, _b;
table.push([
(0, utils_1.last)(extension.ref.split("/")),
(0, extensionsHelper_1.unpackExtensionState)(extension),
(_a = extension.latestVersion) !== null && _a !== void 0 ? _a : "-",
(_b = extension.latestApprovedVersion) !== null && _b !== void 0 ? _b : "-",
]);
});
(0, utils_1.logLabeledBullet)(extensionsHelper_1.logPrefix, `list of uploaded extensions for publisher ${clc.bold(publisherId)}:`);
logger_1.logger.info(table.toString());
return { extensions: sorted };
});
;