Skip to content

API Reference

INFO

Detailed API documentation is available in the individual package documentation pages.

Core Packages

Framework

PackageDescription
@geekmidas/constructsHTTP endpoints, functions, crons, and event subscribers
@geekmidas/cliCLI for building, development, and deployment
@geekmidas/envkitEnvironment configuration parser
@geekmidas/servicesService discovery and dependency injection

Data & Storage

PackageDescription
@geekmidas/dbDatabase utilities for Kysely
@geekmidas/cacheUnified caching interface
@geekmidas/storageCloud storage abstraction (S3)
@geekmidas/eventsEvent messaging (RabbitMQ, SQS, SNS)

Security

PackageDescription
@geekmidas/authJWT/OIDC authentication
@geekmidas/errorsHTTP error classes
@geekmidas/rate-limitRate limiting utilities
@geekmidas/auditType-safe audit logging

Development Tools

PackageDescription
@geekmidas/telescopeDebugging dashboard
@geekmidas/studioDatabase browser
@geekmidas/loggerStructured logging
@geekmidas/testkitTesting utilities and factories

Frontend & API Client

PackageDescription
@geekmidas/clientType-safe API client with React Query
@geekmidas/uiReact components (shadcn/ui based)
@geekmidas/emailkitEmail templates with React

Infrastructure

PackageDescription
@geekmidas/cloudSST integration utilities
@geekmidas/schemaStandardSchema type utilities

Quick Reference

Endpoint Builder

typescript
import { e } from '@geekmidas/constructs/endpoints';
import { z } from 'zod';

export const getUser = e
  .get('/users/:id')
  .params(z.object({ id: z.string() }))
  .output(z.object({ id: z.string(), name: z.string() }))
  .handle(async ({ params }) => {
    return { id: params.id, name: 'John Doe' };
  });

Service Pattern

typescript
import type { Service } from '@geekmidas/services';

const dbService = {
  serviceName: 'db' as const,
  async register(envParser) {
    const config = envParser.create((get) => ({
      url: get('DATABASE_URL').string(),
    })).parse();
    return createConnection(config.url);
  },
} satisfies Service<'db', Database>;

Error Handling

typescript
import { createError } from '@geekmidas/errors';

throw createError.notFound('User not found');
throw createError.unauthorized('Invalid credentials');
throw createError.forbidden('Access denied');

Workspace Configuration

typescript
import { defineWorkspace } from '@geekmidas/cli/config';

export default defineWorkspace({
  apps: {
    api: {
      path: 'apps/api',
      type: 'backend',
      port: 3000,
      routes: './src/endpoints/**/*.ts',
    },
  },
  services: { db: true, cache: true },
  deploy: {
    default: 'dokploy',
    dns: { provider: 'route53', domain: 'myapp.com' },
  },
});