waha-shared
v1.0.362
Published
Shared assets for Waha's various apps
Downloads
7,491
Readme
Waha Shared
Shared data, types, functions, and assets used across multiple Waha projects:
This package is published to npm as waha-shared and consumed by those projects as a dependency.
Directory Structure
shared/
├── types/ # TypeScript type definitions (Zod-based)
├── functions/ # Utility functions (language info, Bible data, sets, etc.)
├── data/ # JSON data files with Zod validation schemas
├── assets/ # Fonts, icons, and React components (logos, set icons)
├── translations/ # Raw translation JSON files from Crowdin
├── dist/ # Built output (do not edit directly)
└── package.jsonHow Data Works
Each subdirectory in data/ follows a consistent pattern:
data/languages/
├── languages.json # Raw data
├── languages.zod.ts # Zod schema defining the shape
├── languages.schema.json # JSON Schema (auto-generated)
└── index.ts # Validates JSON against Zod and exports typed data (auto-generated)Type Generation Pipeline
Types flow through a pipeline managed by yarn prep:
Zod schema (.zod.ts) and raw data file (.json)
→ JSON Schema (.schema.json)
→ Python Pydantic models
→ Python data constants
→ TypeScript index.tsWhen you modify a .zod.ts file, run yarn prep from the repo root to regenerate everything downstream.
Building & Publishing
yarn updateThis will update the dist folder, commit changes, and publish to the npm registry.
The dist/ directory is the build output — never edit files in it directly.
Adding New Data
- Create a new directory under
data/, e.g.data/myNewData/ - Add the raw JSON file:
myNewData.json - Define the Zod schema:
myNewData.zod.ts - Run
yarn prepto auto-generate the JSON schema, Python types, Python data, and index file
