1.0.2 • Published 12 months ago
@bts2/sdk-cli v1.0.2
@bts/sdk-cli
Background Task System SDK Generator CLI - A tool to generate type-safe SDKs for interacting with the Background Task System.
Features
- 🚀 Easy SDK Generation: Simple CLI tool to generate SDKs with minimal configuration
- 📘 TypeScript Support: Full TypeScript support with type definitions
- 🔄 Watch Mode: Automatic SDK regeneration when task definitions change
- 🔐 Secure: Built-in API key management and authentication
- 📦 Environment Variables: Support for configuration via environment variables
- 🎯 Task Management: Create, schedule, and manage background tasks
- ⚡ Type-Safe: Generated SDK provides full type safety for your tasks
Installation
npm install -g @bts/sdk-cliUsage
Basic Usage
Generate an SDK for your project:
bts generateConfiguration
Create a bts.config.json file in your project root:
{
"apiUrl": "https://your-api-url.com",
"outputDir": "./generated",
"tasksDir": "./tasks",
"apiKey": "your-api-key"
}Environment Variables
You can also configure the CLI using environment variables:
BTS_API_URL=https://your-api-url.com
BTS_API_KEY=your-api-key
BTS_OUTPUT_DIR=./generated
BTS_TASKS_DIR=./tasksWatch Mode
Run the CLI in watch mode to automatically regenerate the SDK when task definitions change:
bts generate --watchCommand Options
Options:
-w, --watch Watch for changes and regenerate SDK
-o, --output Specify output directory
-t, --tasks Specify tasks directory
-c, --config Specify config file path
-h, --help Display help informationGenerated SDK Usage
Once generated, you can use the SDK in your TypeScript project:
import { BtsClient } from './generated';
const client = new BtsClient({
apiKey: 'your-api-key',
apiUrl: 'https://your-api-url.com'
});
// Schedule a task
await client.scheduleTask('taskName', {
// type-safe payload based on your task definition
payload: {
foo: 'bar'
}
});
// Get task status
const status = await client.getTaskStatus('taskId');Task Definition Example
Create task definitions in your tasks directory:
// tasks/emailTask.ts
import { defineTask } from '@bts/sdk-cli';
export default defineTask({
name: 'sendEmail',
input: {
to: 'string',
subject: 'string',
body: 'string'
},
output: {
sent: 'boolean',
messageId: 'string'
}
});Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For support, please open an issue in the GitHub repository or contact the maintainers.
Changelog
See CHANGELOG.md for a list of changes.
Related Projects
- @bts/runtime - Runtime library for Background Task System
- @bts/server - Server implementation for Background Task System
Authors
- Your Name - Initial work - YourUsername
Acknowledgments
- Thanks to all contributors who have helped shape this project
- Inspired by various SDK generators in the TypeScript ecosystem