|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +## Project Structure & Module Organization |
| 4 | +This repository is a Deno-first monorepo. |
| 5 | + |
| 6 | +- `packages/linejs`: main TypeScript library (`@evex/linejs`) with feature modules under `client`, `base`, and `thrift`. |
| 7 | +- `packages/types`: shared LINE type definitions (`@evex/linejs-types`). |
| 8 | +- `docs`: VitePress documentation site and content. |
| 9 | +- `example`: runnable examples for browser, node, talk, square, storage, thrift, etc. |
| 10 | +- `scripts`: generation/utility scripts, including thrift tooling and service/type helpers. |
| 11 | +- `resources`: static assets used by the project. |
| 12 | + |
| 13 | +`README.md` in the root points to `packages/linejs/README.md` for package-level context. |
| 14 | + |
| 15 | +## Build, Test, and Development Commands |
| 16 | +- `deno task dev`: run local sandbox (workspace root). |
| 17 | +- `deno task docs:dev`: run docs dev server from `docs`. |
| 18 | +- `deno task docs:build`: build docs from `docs`. |
| 19 | +- `cd docs && npm run dev|build|serve` or `bun run dev|build|serve`: alternate docs workflows. |
| 20 | +- `deno test`: run the Deno test suite (CI uses this at repository root). |
| 21 | +- `cd packages/linejs && deno test`: run package-scoped tests. |
| 22 | +- `deno fmt`: apply repository formatter (configured in `deno.json`). |
| 23 | + |
| 24 | +## Coding Style & Naming Conventions |
| 25 | +- Use Deno formatter settings from repo: tabs for indentation, double quotes in most files. |
| 26 | +- Keep TypeScript across all source files and prefer explicit typing for public APIs. |
| 27 | +- Use clear, domain-based names: `camelCase` for functions/variables, `PascalCase` for classes/types. |
| 28 | +- File names are typically kebab-case or snake-like and placed under relevant feature folders (`client/features/*`, `base/*`). |
| 29 | + |
| 30 | +## Testing Guidelines |
| 31 | +- Test framework: Deno’s built-in test runner. |
| 32 | +- Test files use `*_test.ts` naming, e.g. `packages/linejs/base/core/typed-event-emitter/index.test.ts`. |
| 33 | +- Run tests before PRs: `deno test` or package-scoped commands above. |
| 34 | +- Add/adjust unit coverage when changing logic in touched files; keep existing test conventions. |
| 35 | + |
| 36 | +## Commit & Pull Request Guidelines |
| 37 | +- Commit history mostly follows Conventional Commit style (`feat:`, `fix:`, `chore:`, `testing:`). |
| 38 | +- Use short, imperative summaries, e.g. `feat(client): add message retry logic`. |
| 39 | +- PR description should explain behavior changes and testing performed. |
| 40 | +- Include reproduction notes when behavior depends on credentials, protocol behavior, or network-sensitive paths. |
| 41 | +- Optional checklist items in `.github/pull_request_template.md`: tests, jsdoc updates, local runtime checks. |
| 42 | + |
| 43 | +## Security & Configuration Tips |
| 44 | +- Do not commit API secrets, tokens, credentials, or device/account dumps. |
| 45 | +- Prefer local config and environment-specific values for experimentation. |
| 46 | +- Keep binary assets or generated thrift artifacts under version control only when intentionally derived and reviewed. |
0 commit comments