UNPKG

ultimate-mcp-server

Version:

The definitive all-in-one Model Context Protocol server for AI-assisted coding across 30+ platforms

65 lines 2.24 kB
/** * Base Content Storage Interface * Provides abstraction for different storage backends */ export class BaseContentStorage { // Utility methods generateId() { return Math.random().toString(36).substring(2) + Date.now().toString(36); } applyFilter(items, filter) { return items.filter(item => { // Status filter if (filter.status && 'status' in item) { if (!filter.status.includes(item.status)) { return false; } } // Tag filter if (filter.tags && item.tags) { const hasAllTags = filter.tags.every(tag => item.tags.includes(tag)); if (!hasAllTags) return false; } // Date filters if (filter.createdAfter && item.createdAt < filter.createdAfter) { return false; } if (filter.updatedAfter && item.updatedAt < filter.updatedAfter) { return false; } // Search filter (simple text search in fields) if (filter.search && item.fields) { const searchLower = filter.search.toLowerCase(); const fieldsStr = JSON.stringify(item.fields).toLowerCase(); if (!fieldsStr.includes(searchLower)) { return false; } } // Field filters if (filter.fields && item.fields) { for (const [key, value] of Object.entries(filter.fields)) { if (item.fields[key] !== value) { return false; } } } return true; }); } paginate(items, pagination) { const start = pagination.offset; const end = start + pagination.limit; const paginatedItems = items.slice(start, end); return { items: paginatedItems, pagination: { ...pagination, total: items.length, hasNext: end < items.length, hasPrevious: start > 0 } }; } } //# sourceMappingURL=base.js.map