Skip to content

API Reference

Complete API documentation for the GitCMS Client SDK.

GitCMS Class

typescript
class GitCMS {
  constructor(config: GitCMSConfig);
  from(schema: string): Query;
  doc(id: string): Promise<Document>;
  getTransportMode(): 'public' | 'authenticated';
  isPublicMode(): boolean;
  getRateLimit(): Promise<RateLimit | null>;
  media: MediaAPI;
  contentMedia: ContentMediaAPI;
}

GitCMSConfig

typescript
interface GitCMSConfig {
  repository: string;
  branch?: string;
  token?: string;
  apiEndpoint?: string;
  transport?: 'public' | 'authenticated';
}

Query Class

typescript
class Query {
  where(field: string, operator: Operator, value: any): Query;
  orderBy(field: string, direction: 'asc' | 'desc'): Query;
  limit(count: number): Query;
  doc(id: string): Query;
  get(): Promise<Document[]>;
}

Operators

typescript
type Operator = '==' | '!=' | '>' | '<' | '>=' | '<=' | 'in' | 'contains';

Document Interface

typescript
interface Document {
  id: string;
  schemaId: string;
  data: Record<string, any>;
  metadata: Record<string, any>;
}

MediaAPI

typescript
interface MediaAPI {
  extractFromHTML(html: string): MediaReference[];
  getThumbnail(ref: MediaReference): string;
  fetchFull(ref: MediaReference): Promise<MediaData>;
  renderFast(html: string): string;
  renderFull(html: string, options?: RenderOptions): Promise<string>;
}

ContentMediaAPI

typescript
interface ContentMediaAPI {
  extractAll(content: Document): MediaReference[];
  getThumbnails(content: Document): Map<string, string>;
  preloadAll(content: Document): Promise<Map<string, MediaData>>;
  renderFast(content: Document): Document;
  renderFull(content: Document, options?: RenderOptions): Promise<Document>;
}

Released under the MIT License.