Skip to main content
Glama
index.ts3.12 kB
import { reactRules } from './react.js'; import { vueRules } from './vue.js'; import { angularRules } from './angular.js'; import { svelteRules } from './svelte.js'; import { htmlRules } from './html.js'; import { swiftuiRules } from './swiftui.js'; import { uikitRules } from './uikit.js'; import { electronRules } from './electron.js'; import { tauriRules } from './tauri.js'; import { nwjsRules } from './nwjs.js'; import type { ContextRules } from '../rules.js'; export type Framework = 'react' | 'vue' | 'angular' | 'svelte' | 'html' | 'swiftui' | 'uikit' | 'electron' | 'tauri' | 'nwjs'; export const frameworks: Record<Framework, Partial<ContextRules>> = { react: reactRules, vue: vueRules, angular: angularRules, svelte: svelteRules, html: htmlRules, swiftui: swiftuiRules, uikit: uikitRules, electron: electronRules, tauri: tauriRules, nwjs: nwjsRules } as const; export const frameworkDescriptions = { react: { name: 'React', description: 'Modern React with TypeScript, functional components, and hooks', features: ['Components', 'TypeScript', 'Hooks', 'CSS Modules'] }, vue: { name: 'Vue 3', description: 'Vue 3 with Composition API and TypeScript', features: ['Components', 'Composition API', 'TypeScript', 'Scoped Styles'] }, angular: { name: 'Angular', description: 'Angular with TypeScript and component architecture', features: ['Components', 'TypeScript', 'Services', 'Angular CLI'] }, svelte: { name: 'Svelte', description: 'Svelte with TypeScript and reactive statements', features: ['Components', 'TypeScript', 'Reactive', 'Scoped Styles'] }, html: { name: 'HTML/CSS/JS', description: 'Vanilla HTML, CSS, and JavaScript - no framework', features: ['Semantic HTML', 'Pure CSS', 'Vanilla JS', 'Accessibility'] }, swiftui: { name: 'SwiftUI', description: 'Apple\'s declarative UI framework for iOS, macOS, watchOS, tvOS', features: ['Declarative', 'Swift', 'Cross-Apple Platform', 'Live Previews'] }, uikit: { name: 'UIKit', description: 'Traditional Apple UI framework with programmatic and Storyboard support', features: ['Imperative', 'Objective-C/Swift', 'Mature', 'SwiftUI Interop'] }, electron: { name: 'Electron', description: 'Cross-platform desktop apps with web technologies', features: ['Chromium', 'Node.js', 'Cross-Platform', 'Large Ecosystem'] }, tauri: { name: 'Tauri', description: 'Lightweight desktop apps with Rust backend and web frontend', features: ['System WebView', 'Rust Backend', 'Small Bundles', 'Secure'] }, nwjs: { name: 'NW.js', description: 'Node.js and Chromium combined for desktop applications', features: ['Node.js', 'Chromium', 'Direct DOM Access', 'Cross-Platform'] } } as const; export function getFrameworkRules(framework: Framework) { return frameworks[framework]; } export function getAvailableFrameworks() { return Object.keys(frameworks) as Framework[]; } export function isValidFramework(framework: string): framework is Framework { return framework in frameworks; }

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/artemsvit/Figma-MCP-Pro'

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