# @lilith/content

Content & Course service with Cultural Localization

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`               | tsc                                                 |
| `pnpm start`               | node dist/server.js                                 |
| `pnpm dev`                 | tsx watch src/server.ts                             |
| `pnpm test`                | vitest run                                          |
| `pnpm test:watch`          | vitest                                              |
| `pnpm test:coverage`       | vitest run --coverage                               |
| `pnpm lint`                | eslint src --ext .ts                                |
| `pnpm lint:fix`            | eslint src --ext .ts --fix                          |
| `pnpm typecheck`           | tsc --noEmit                                        |
| `pnpm db:migrate`          | knex migrate:latest --knexfile src/db/knexfile.ts   |
| `pnpm db:migrate:rollback` | knex migrate:rollback --knexfile src/db/knexfile.ts |
| `pnpm db:migrate:status`   | knex migrate:status --knexfile src/db/knexfile.ts   |
| `pnpm db:migrate:make`     | knex migrate:make --knexfile src/db/knexfile.ts     |
| `pnpm db:seed`             | knex seed:run --knexfile src/db/knexfile.ts         |
| `pnpm db:seed:make`        | knex seed:make --knexfile src/db/knexfile.ts        |

## Layout

- `__mocks__/`
- `src/`

## Working on this package

The fastest local loop is via Nx:

```bash
pnpm nx test lilith-content
pnpm nx lint lilith-content
pnpm nx build lilith-content
```

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.
