🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

@typespec-events/typespec

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@typespec-events/typespec

Standardize your analytics and tracking events across your entire stack. `typespec-events` uses [TypeSpec](https://typespec.io) as a single source of truth to generate type-safe code for multiple languages, ensuring consistency and reducing maintenance ov

latest
Source
npmnpm
Version
0.0.3
Version published
Maintainers
1
Created
Source

typespec-events

Standardize your analytics and tracking events across your entire stack. typespec-events uses TypeSpec as a single source of truth to generate type-safe code for multiple languages, ensuring consistency and reducing maintenance overhead.

The official documentation is available at here.

The Problem

Managing tracking events across different teams, codebases, and technologies often leads to inconsistent data, missing events, and a high maintenance burden when changes are required.

The Solution

With typespec-events, you define your events once in a language-agnostic way using TypeSpec. A custom emitter then generates code for your target platforms, ensuring your events are always in sync.

  • Single Source of Truth: Define all your tracking events in one place.
  • Type-Safe Code Generation: Generate code for TypeScript (with Zod schemas) and Go (experimental).
  • Consistent Schemas: Ensure event schemas are consistent across your frontend and backend.
  • Extensible: The emitter framework is designed to be extended to support more languages in the future.

Packages

This monorepo contains the following packages:

PackageDescription
packages/typespecThe core TypeSpec library and the multi-language emitter.
packages/runtimeA lightweight, type-safe runtime for consuming generated event schemas.
docsThe official documentation website, built with Starlight.
packages/playgroundAn example project demonstrating usage and for integration testing.

Quick Start

  • Install the necessary packages:

    pnpm add @typespec-events/typespec @typespec-events/runtime @typespec/compiler zod
    
  • Define your events in a .tsp file:

    // main.tsp
    import "@typespec-events/typespec";
    using TypespecEvents;
    
    @event("user_signed_up")
    model UserSignedUpEvent {
      userId: string;
      email: string;
    }
    
  • Configure your tspconfig.yaml:

    emit:
      - "@typespec-events/typespec"
    
  • Generate the code:

    tsp compile .
    
  • Use the generated code:

    // In your application code
    import { defineTracker } from '@typespec-events/runtime';
    import { eventSchemas } from './tsp-output/@typespec-events/events.zod';
    
    const track = defineTracker({
      track: (eventName, properties) => {
        console.log(`Tracking: ${eventName}`, properties);
      },
      events: eventSchemas,
    });
    
    track('user_signed_up', { userId: '123', email: 'test@example.com' });
    

For more detailed information, please visit the Official Documentation.

Development

This project uses pnpm for package management and Moon for task running.

  • Install dependencies:

    pnpm install
    
  • Run tests:

    pnpm run test
    
  • Build all packages:

    pnpm run build
    

Keywords

typespec

FAQs

Package last updated on 24 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts