UNPKG

firebase-tools

Version:
46 lines (45 loc) 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.list_projects = void 0; const zod_1 = require("zod"); const tool_js_1 = require("../../tool.js"); const util_js_1 = require("../../util.js"); const projects_js_1 = require("../../../management/projects.js"); const PROJECT_LIST_PAGE_SIZE = 20; exports.list_projects = (0, tool_js_1.tool)({ name: "list_projects", description: "Retrieves a list of Firebase projects up to the specified total count.", inputSchema: zod_1.z.object({ page_size: zod_1.z .number() .min(1) .default(PROJECT_LIST_PAGE_SIZE) .describe("the number of projects to list per page (defaults to 1000)"), page_token: zod_1.z.string().optional().describe("the page token to start listing from"), }), annotations: { title: "List Firebase Projects", readOnlyHint: true, idempotentHint: true, }, _meta: { requiresAuth: true, }, }, async ({ page_size, page_token }) => { try { const projectPage = await (0, projects_js_1.getFirebaseProjectPage)(page_size, page_token); return (0, util_js_1.toContent)({ projects: projectPage.projects, next_page_token: projectPage.nextPageToken, }, { contentPrefix: `Here are ${projectPage.projects.length} Firebase projects${page_token ? " (continued)" : ""}:\n\n`, contentSuffix: projectPage.nextPageToken ? "\nThere are more projects available. To see the next page, call this tool again with the next_page_token shown above." : "", }); } catch (err) { const originalMessage = err.original ? `: ${err.original.message}` : ""; throw new Error(`Failed to list Firebase projects${originalMessage}`); } });