mcpField
T
typescript-skills

typescript-skills

github.com/llama-farmDevelopment83681 installsUpdated 21w ago
Repository

About typescript-skills

Shared TypeScript guidance for LlamaFarm's React Designer and Electron applications. It focuses on strict typing, reusable patterns, testing, and security practices.

Key features

  1. 01Strict typing and null safety
  2. 02Interfaces and explicit return types
  3. 03React and TanStack Query patterns
  4. 04Testing and security guidance

Use cases

  1. 01Apply consistent TypeScript practices across subsystems
  2. 02Review types and null handling in application code
  3. 03Build React components and query hooks

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/llama-farm/llamafarm --skill typescript-skills

After installing, type/typescript-skillsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

patterns.md
security.md
testing.md
typing.md

Details

From the project README

TypeScript Skills for LlamaFarm

Shared TypeScript best practices for Designer (React) and Electron App subsystems.

Overview

This skill covers idiomatic TypeScript patterns for LlamaFarm's frontend applications:

  • designer/: React 18 + TanStack Query + TailwindCSS + Radix UI
  • electron-app/: Electron 28 + Electron Vite

Tech Stack

SubsystemFrameworkBuildKey Libraries
designerReact 18ViteTanStack Query, Radix UI, axios, react-router-dom
electron-appElectron 28electron-viteelectron-updater, axios

Configuration

Both projects use strict TypeScript:

{
  "strict": true,
  "noUnusedLocals": true,
  "noUnusedParameters": true,
  "noFallthroughCasesInSwitch": true
}

Core Principles

  1. Strict mode always - Never use any without explicit justification
  2. Prefer interfaces - Use interface for object shapes, type for unions/intersections
  3. Explicit return types - Always type public function returns
  4. Immutability - Use readonly and as const where applicable
  5. Null safety - Handle null/undefined explicitly, avoid non-null assertions

Related Documents

Quick Reference

React Component Pattern
interface Props {
  readonly title: string
  readonly onAction?: () => void
}

function MyComponent({ title, onAction }: Props): JSX.Element {
  return <button onClick={onAction}>{title}</button>
}
TanStack Query Hook Pattern
export const projectKeys = {
  all: ['projects'] as const,
  lists: () => [...projectKeys.all, 'list'] as const,
  detail: (id: string) => [...projectKeys.all, 'detail', id] as const,
}

export function useProject(id: string) {
  return useQuery({
    queryKey: projectKeys.detail(id),
    queryFn: () => fetchProject(id),
    enabled: !!id,
  })
}
Error Class Pattern
export class ApiError extends Error {
  constructor(
    message: string,
    public readonly status: number,
    public readonly response?: unknown
  ) {
    super(message)
    this.name = 'ApiError'
  }
}

Checklist Summary

CategoryCriticalHighMediumLow
Typing3421
Patterns2332
Testing2321
Security4210

Comments

Markdown supported