Skip to main content

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

Learn more about Operator

@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

Learn more about Engineer

Getting Started

  1. Install dependencies:
yarn install
  1. Build all packages:
yarn build
  1. 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 packages
  • yarn test: Run tests across all packages
  • yarn lint: Lint all packages
  • yarn 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.