# @yemaya/workers

Yemaya Background Workers - Orchestration task processing and job queue handlers

Backend service. See the `Dockerfile` / `docker-compose.yml` in the repo for
production-like local runs, or use the dev script below for in-process
iteration.

## Scripts

| Command                    | Definition                                |
| -------------------------- | ----------------------------------------- |
| `pnpm build`               | tsup                                      |
| `pnpm dev`                 | tsx watch src/index.ts                    |
| `pnpm start`               | node dist/index.js                        |
| `pnpm start:orchestration` | node dist/index.js --worker=orchestration |
| `pnpm start:rendering`     | node dist/index.js --worker=rendering     |
| `pnpm start:export`        | node dist/index.js --worker=export        |
| `pnpm start:pipeline`      | node dist/index.js --worker=pipeline      |
| `pnpm start:notification`  | node dist/index.js --worker=notification  |
| `pnpm test`                | vitest run                                |
| `pnpm test:watch`          | vitest                                    |
| `pnpm test:coverage`       | vitest run --coverage                     |
| `pnpm typecheck`           | tsc --noEmit                              |
| `pnpm lint`                | eslint src/                               |
| `pnpm lint:fix`            | eslint src/ --fix                         |
| `pnpm format`              | prettier --write src/                     |

## Layout

- `src/`

## Working on this package

The fastest local loop is via Nx:

```bash
pnpm nx test yemaya-workers
pnpm nx lint yemaya-workers
pnpm nx build yemaya-workers
```

When Nx is unhappy (usually because another worktree has duplicate project
names), bypass it with the underlying tools from this directory:

```bash
npx tsc --noEmit
npx vitest run
```

See the [root README](../../../README.md) for monorepo-wide conventions (catalog
deps, commit format, git workflow). See the
[Contributor Guide](../../../docs/CONTRIBUTING.md) for the full PR workflow.
