Skip to content

Commit 84082ca

Browse files
doc(rules): add entire result code, because its so small/simple and ai agents should not search for it
1 parent 1baa859 commit 84082ca

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

.roo/rules-code/result.md

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,35 @@
77
```ts
88
import { type Result } from "~utils/result/Result"
99

10-
function processRequest(req: Request): SimpleResult<User> {
11-
const result = validateRequest(req)
12-
if (!result.success) return result
10+
function processRequest(req: Request): Result<User> {
11+
const validationResult = validateRequest(req)
12+
if (!validationResult.success) return validationResult
13+
}
14+
```
1315

14-
const user = getUser(result.data.id)
15-
if (!result.success) return user
16+
Entire code of `Result` in `~utils/result/Result`
1617

17-
return user
18+
```ts
19+
export type ResultOk<T> = { success: true; data: T }
20+
export type ResultErr = { success: false; op: string; errorMessage: string; errorData?: string | null }
21+
export type Result<T> = ResultOk<T> | ResultErr
22+
export type PromiseResult<T> = Promise<Result<T>>
23+
24+
export function createResult<T>(data: T): ResultOk<T> {
25+
return {
26+
success: true,
27+
data,
28+
}
1829
}
30+
31+
export function createError(op: string, errorMessage: string, errorData?: string | null): ResultErr {
32+
return createResultError(op, errorMessage, errorData)
33+
}
34+
35+
export function createResultError(op: string, errorMessage: string, errorData?: string | null): ResultErr {
36+
const r: ResultErr = { success: false, op, errorMessage }
37+
if (errorData) r.errorData = errorData
38+
return r
39+
}
40+
1941
```

0 commit comments

Comments
 (0)