/Knowledge/sources/honojs__hono/examples/blog-src-model-ts--2ef88802a7e3.md
Example: blog/src/model.ts - hono-docs
Example: blog/src/model.ts Source evidence: /Sources/honojs hono/provenance.md Canonical citation: https://raw.githubusercontent.com/honojs/examples/main/blo...
Example: blog/src/model.ts
Source evidence: /Sources/honojs__hono/provenance.md Canonical citation: https://raw.githubusercontent.com/honojs/examples/main/blog/src/model.ts
Summary
const PREFIX = 'v1:post:' declare global { interface Crypto { randomUUID(): string } } export interface Post { id: string title: string body: string } export type Param = { title: string body: string } const generateID = (key: string) =>...
Content
const PREFIX = 'v1:post:'
declare global { interface Crypto { randomUUID(): string } }
export interface Post { id: string title: string body: string }
export type Param = { title: string body: string }
const generateID = (key: string) => {
return ${PREFIX}${key}
}
export const getPosts = async (KV: KVNamespace): Promise<Post[]> => { const list = await KV.list({ prefix: PREFIX }) const keys = list.keys const posts: Post[] = []
const len = keys.length for (let i = 0; i < len; i++) { const value = await KV.get(keys[i].name) if (value) { const post: Post = JSON.parse(value) posts.push(post) } }
return posts }
export const getPost = async (KV: KVNamespace, id: string): Promise<Post | undefined> => { const value = await KV.get(generateID(id)) if (!value) return const post: Post = JSON.parse(value) return post }
Metadata
{
"chunk_index": 0,
"citation": "https://raw.githubusercontent.com/honojs/examples/main/blog/src/model.ts",
"coverage_role": "examples",
"qualified_title": "Hono / examples / blog/src/model.ts (1)",
"repo_path": "blog/src/model.ts",
"retrieved_at": "2026-07-02T05:51:01Z",
"section_index": 0,
"source_id": "/honojs/hono",
"source_type": "examples",
"target_label": "examples",
"title": "Example: blog/src/model.ts",
"upstream_url": "https://raw.githubusercontent.com/honojs/examples/main/blog/src/model.ts",
"version": "2026"
}