mirror of
https://github.com/anomalyco/opencode.git
synced 2026-02-01 22:48:16 +00:00
Invoke docker build with Bun shell so commands run correctly, and document default automation behavior.
83 lines
1.6 KiB
Markdown
83 lines
1.6 KiB
Markdown
- To regenerate the JavaScript SDK, run `./packages/sdk/js/script/build.ts`.
|
|
- ALWAYS USE PARALLEL TOOLS WHEN APPLICABLE.
|
|
- The default branch in this repo is `dev`.
|
|
- Prefer automation: execute requested actions without confirmation unless blocked by missing info or safety/irreversibility.
|
|
|
|
## Style Guide
|
|
|
|
- Keep things in one function unless composable or reusable
|
|
- Avoid unnecessary destructuring. Instead of `const { a, b } = obj`, use `obj.a` and `obj.b` to preserve context
|
|
- Avoid `try`/`catch` where possible
|
|
- Avoid using the `any` type
|
|
- Prefer single word variable names where possible
|
|
- Use Bun APIs when possible, like `Bun.file()`
|
|
- Rely on type inference when possible; avoid explicit type annotations or interfaces unless necessary for exports or clarity
|
|
|
|
### Avoid let statements
|
|
|
|
We don't like `let` statements, especially combined with if/else statements.
|
|
Prefer `const`.
|
|
|
|
Good:
|
|
|
|
```ts
|
|
const foo = condition ? 1 : 2
|
|
```
|
|
|
|
Bad:
|
|
|
|
```ts
|
|
let foo
|
|
|
|
if (condition) foo = 1
|
|
else foo = 2
|
|
```
|
|
|
|
### Avoid else statements
|
|
|
|
Prefer early returns or using an `iife` to avoid else statements.
|
|
|
|
Good:
|
|
|
|
```ts
|
|
function foo() {
|
|
if (condition) return 1
|
|
return 2
|
|
}
|
|
```
|
|
|
|
Bad:
|
|
|
|
```ts
|
|
function foo() {
|
|
if (condition) return 1
|
|
else return 2
|
|
}
|
|
```
|
|
|
|
### Prefer single word naming
|
|
|
|
Try your best to find a single word name for your variables, functions, etc.
|
|
Only use multiple words if you cannot.
|
|
|
|
Good:
|
|
|
|
```ts
|
|
const foo = 1
|
|
const bar = 2
|
|
const baz = 3
|
|
```
|
|
|
|
Bad:
|
|
|
|
```ts
|
|
const fooBar = 1
|
|
const barBaz = 2
|
|
const bazFoo = 3
|
|
```
|
|
|
|
## Testing
|
|
|
|
You MUST avoid using `mocks` as much as possible.
|
|
Tests MUST test actual implementation, do not duplicate logic into a test.
|