Skip to main content
Glama
optimizers.ts3.32 kB
import { ListCard, ListDashboard, ListTable, ListDatabase, ListCollection } from './types.js'; /** * Optimize card response for list view - only essential identifier fields */ export function optimizeCardForList(card: any): ListCard { const optimized: ListCard = { id: card.id, name: card.name, database_id: card.database_id, }; if (card.description) { optimized.description = card.description; } if (card.collection_id !== null && card.collection_id !== undefined) { optimized.collection_id = card.collection_id; } if (card.archived !== undefined) { optimized.archived = card.archived; } if (card.created_at) { optimized.created_at = card.created_at; } if (card.updated_at) { optimized.updated_at = card.updated_at; } return optimized; } /** * Optimize dashboard response for list view - only essential identifier fields */ export function optimizeDashboardForList(dashboard: any): ListDashboard { const optimized: ListDashboard = { id: dashboard.id, name: dashboard.name, }; if (dashboard.description) { optimized.description = dashboard.description; } if (dashboard.collection_id !== null && dashboard.collection_id !== undefined) { optimized.collection_id = dashboard.collection_id; } if (dashboard.archived !== undefined) { optimized.archived = dashboard.archived; } if (dashboard.created_at) { optimized.created_at = dashboard.created_at; } if (dashboard.updated_at) { optimized.updated_at = dashboard.updated_at; } return optimized; } /** * Optimize table response for list view - only essential identifier fields */ export function optimizeTableForList(table: any): ListTable { const optimized: ListTable = { id: table.id, name: table.name, display_name: table.display_name, db_id: table.db_id, active: table.active, }; if (table.schema) { optimized.schema = table.schema; } if (table.entity_type) { optimized.entity_type = table.entity_type; } return optimized; } /** * Optimize database response for list view - only essential identifier fields */ export function optimizeDatabaseForList(database: any): ListDatabase { const optimized: ListDatabase = { id: database.id, name: database.name, engine: database.engine, }; if (database.description) { optimized.description = database.description; } if (database.is_sample !== undefined) { optimized.is_sample = database.is_sample; } if (database.created_at) { optimized.created_at = database.created_at; } if (database.updated_at) { optimized.updated_at = database.updated_at; } return optimized; } /** * Optimize collection response for list view - only essential identifier fields */ export function optimizeCollectionForList(collection: any): ListCollection { const optimized: ListCollection = { id: collection.id, name: collection.name, slug: collection.slug, archived: collection.archived, is_personal: collection.is_personal, }; if (collection.description) { optimized.description = collection.description; } if (collection.location) { optimized.location = collection.location; } if (collection.created_at) { optimized.created_at = collection.created_at; } return optimized; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jerichosequitin/Metabase'

If you have feedback or need assistance with the MCP directory API, please join our Discord server