UNPKG

firebase-tools

Version:
56 lines (55 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.markdownDocsOfResources = exports.resolveResource = exports.resourceTemplates = exports.resources = void 0; const docs_1 = require("./docs"); const init_ai_1 = require("./guides/init_ai"); const init_auth_1 = require("./guides/init_auth"); const init_backend_1 = require("./guides/init_backend"); const init_firestore_1 = require("./guides/init_firestore"); const init_firestore_rules_1 = require("./guides/init_firestore_rules"); const init_hosting_1 = require("./guides/init_hosting"); const track_1 = require("../../track"); exports.resources = [ init_backend_1.init_backend, init_ai_1.init_ai, init_firestore_1.init_firestore, init_firestore_rules_1.init_firestore_rules, init_auth_1.init_auth, init_hosting_1.init_hosting, ]; exports.resourceTemplates = [docs_1.docs]; async function resolveResource(uri, ctx, track = true) { const resource = exports.resources.find((r) => r.mcp.uri === uri); if (resource) { if (track) void (0, track_1.trackGA4)("mcp_read_resource", { resource_name: uri }); const result = await resource.fn(uri, ctx); return { type: "resource", mcp: resource.mcp, result }; } const template = exports.resourceTemplates.find((rt) => rt.match(uri)); if (template) { if (track) void (0, track_1.trackGA4)("mcp_read_resource", { resource_name: uri }); const result = await template.fn(uri, ctx); return { type: "template", mcp: template.mcp, result }; } if (track) void (0, track_1.trackGA4)("mcp_read_resource", { resource_name: uri, not_found: "true" }); return null; } exports.resolveResource = resolveResource; function markdownDocsOfResources() { const allResources = [...exports.resources, ...exports.resourceTemplates]; const headings = ` | Resource Name | Description | | ------------- | ----------- |`; const resourceRows = allResources.map((res) => { let desc = res.mcp.title ? `${res.mcp.title}: ` : ""; desc += res.mcp.description || ""; desc = desc.replaceAll("\n", "<br>"); return ` | ${res.mcp.name} | ${desc} |`; }); return headings + resourceRows.join(""); } exports.markdownDocsOfResources = markdownDocsOfResources;