firebase-tools
Version:
Command-Line Interface for Firebase
56 lines (55 loc) • 2.33 kB
JavaScript
;
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;