@general-dexterity/cube-records-codegen
Version:
CLI tool for generating Cube Record type definitions from a CubeJS server
71 lines (51 loc) • 1.81 kB
Markdown
# @general-dexterity/cube-records-codegen
CLI tool for generating TypeScript definitions from Cube.js server metadata.
## Purpose
This package generates TypeScript type definitions from your Cube.js schema, enabling:
- Full IntelliSense support in your IDE
- Type-safe queries with compile-time validation
- Automatic synchronization with your Cube.js schema
- Watch mode for development workflows
## Installation
```bash
npm install --save-dev @general-dexterity/cube-records-codegen
# or
pnpm add -D @general-dexterity/cube-records-codegen
# or
yarn add --dev @general-dexterity/cube-records-codegen
```
### Usage
```bash
# Generate types to stdout
npx @general-dexterity/cube-records-codegen --baseUrl http://localhost:4000/cubejs-api
# Generate types to a file
npx @general-dexterity/cube-records-codegen --baseUrl http://localhost:4000/cubejs-api --output ./src/cube-types.ts
# Watch mode for development
npx @general-dexterity/cube-records-codegen --baseUrl http://localhost:4000/cubejs-api --output ./src/cube-types.ts --watch
```
## Development & Contributing
### Setup
```bash
# Clone the repository
git clone https://github.com/general-dexterity/cube-records.git
cd cube-records/packages/codegen
# Install dependencies
pnpm install
# Build the package
pnpm build
```
### Development Commands
```bash
pnpm dev # Watch mode compilation
pnpm test # Run tests
pnpm typecheck # Type checking
pnpm dev:cli # Test CLI locally (requires build first)
```
### Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes using conventional commits (`git commit -m 'feat: add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
MIT