- Add examples/basic-app/app/api/directory.ts and app/pages/api-block-demo.wrn as the end-to-end worked example for typed api blocks (Task 6). - Add **/*.generated.api-checks.ts to .prettierignore: this generated file must match the CLI's raw output byte-for-byte for check:generated-types, and prettier was reformatting it. - Fix packages/csr/test/api-call.test.ts: no-unsafe-function-type lint error from the raw Function type, uncovered while running the full gate. - Rebuild editors/vscode bundles (packages/compiler and packages/syntax changed in Tasks 1-5). - Regenerate docs/public-api-0.8.json (additive: isIdentPart, isIdentStart, skipLiteralOrComment newly exported from packages/syntax). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
39 lines
715 B
Plaintext
39 lines
715 B
Plaintext
page ApiBlockDemo {
|
|
state nameFilter = "a"
|
|
state found = ""
|
|
state failed = ""
|
|
|
|
client {
|
|
api searchDirectory POST /api/directory {
|
|
request {
|
|
body {
|
|
name?: string
|
|
}
|
|
}
|
|
|
|
response {
|
|
return data.users
|
|
}
|
|
|
|
error {
|
|
return []
|
|
}
|
|
}
|
|
}
|
|
|
|
functions {
|
|
client async function search(): Promise<void> {
|
|
const users = await api.searchDirectory({ name: nameFilter })
|
|
found = users.map((user) => user.name).join(", ")
|
|
}
|
|
}
|
|
|
|
view {
|
|
<main>
|
|
<button @click="search()">Search</button>
|
|
<p class="found" data-text="found">{found}</p>
|
|
<p class="failed" data-text="failed">{failed}</p>
|
|
</main>
|
|
}
|
|
}
|