Satelite Monorepo
A collection of powerful JavaScript tools for workflow automation and code generation.
Packages
@satelite/operator
A flexible workflow execution engine that enables you to define and run complex workflows with:
- 🔄 State Management with dot notation access
- 🧩 Plugin Architecture
- 🎯 Custom Actions Registry
- 🔀 Conditional Flow Control
- ⚡ Parallel/Sequential Execution
- 🔌 JSON Logic Integration
@satelite/engineer
A code generation toolkit that transforms declarative configurations into code using:
- 📝 Liquid Templates
- 🎨 Flexible Configuration
- 🔄 Entity Relationship Modeling
- 🎯 Multi-Template Support
- 🔌 Module Generation
Getting Started
- Install dependencies:
yarn install
- Build all packages:
yarn build
- Run tests:
yarn test
Example Usage
Using Engineer for Code Generation
import engineer from "@satelite/engineer";
const config = {
context: {
entities: [
{
name: "User",
fields: [
{ name: "id", type: "String", isUnique: true },
{ name: "email", type: "String", isUnique: true }
]
}
]
},
templates: [
{
type: "once",
name: "prisma",
template: "./prisma.liquid",
path: "./prisma/schema.prisma"
}
]
};
await engineer(config);
Using Operator for Workflow Execution
import Operator from "@satelite/operator";
const workflow = {
initialState: { count: 0 },
steps: [
{
id: "increment",
task: {
from: "math",
use: "add"
},
input: {
args: [{ var: "count" }, 1]
},
output: {
to: "count"
}
}
]
};
const operator = new Operator();
const result = await operator.run(workflow);
Development
Project Structure
satelite/
├── packages/
│ ├── engineer/ # Code generation toolkit
│ └── operator/ # Workflow execution engine
Commands
yarn build: Build all packagesyarn test: Run tests across all packagesyarn lint: Lint all packagesyarn format: Format code using Prettier
Contributing
Please read our Contributing Guide for details on our code of conduct, development workflow, and process for submitting pull requests.
License
This project is licensed under our Proprietary License - see the LICENSE.md file for details.