• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
stevekrouse

stevekrouse

utils

Remix of std/utils
Public
Like
utils
Home
Code
18
README.md
H
_docs.tsx
H
_tests.ts
debug_test.ts
docs-todos.md
H
example.test.ts
H
file.test.ts
file.ts
index.ts
H
is-main.test.ts
is-main.ts
H
parseImportMeta.test.ts
parseImportMeta.ts
H
serve-file.test.ts
serve-file.ts
H
static.test.ts
static.tsx
test.tsx
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
docs-todos.md
Code
/
docs-todos.md
Search
…
Viewing readonly version of main branch: v97
View latest version
docs-todos.md

Build Documentation Generator

Do one task at a time. Start the task. Confirm it works in the browser. Mark it done. Do the tasks in order.

  • In _docs2.ts, rewrite _docs.tsx to use Hono JSX (no html strings) and twind for css. ✅ COMPLETED

    • Create basic Hono JSX and twind setup
    • Add TypeScript doc extraction logic (isExported, getName, collectJsDoc, signatureFor)
    • Add extractDocs function to parse files
    • Create JSX components for the page layout (sidebar + main)
    • Create JSX component for TOC/sidebar navigation
    • Create JSX component for function documentation display
    • Style all components with twind utility classes
    • Test _docs2.ts in browser to ensure it renders correctly
  • Compare the output of _docs.tsx and _docs2.ts. ✅ COMPLETED

    • Main difference: _docs2.ts has a working sidebar with categorized navigation, _docs.tsx does not show sidebar
    • Content is identical for all 13 documented functions
  • Audit all the type signatures of all the functions and replace any with better types. ✅ COMPLETED

    • file.ts: readFile(path: string, metaImportUrl: string = ...): Promise<string | undefined>
    • file.ts: httpEndpoint(path: string = "", metaImportUrl: string = ...): Promise
    • file.ts: emailAddress(path: string, metaImportUrl: string = ...): Promise
    • file.ts: listFiles(metaImportUrl: string = ...): Promise<File[]>
    • file.ts: getValId(metaImportUrl: string = ...): Promise
    • file.ts: listFilesByPath(path: string, metaImportUrl: string = ...): Promise<File[]>
    • file.ts: fetchTranspiledJavaScript(url: string): Promise
    • serve-file.ts: serveFile(path: string, metaImportUrl: string = ...): Promise
    • serve-file.ts: getContentType(path: string): string (already had good types)
    • parseImportMeta.ts: parseVal(url: string = ...): Val
    • is-main.ts: isMain(importMetaURL: string): boolean (already had good types)
    • test.tsx: testServer (already had excellent types)
    • static.tsx: staticHTTPServer(importMetaURL: string = ...): FetchHandler
  • Add ts syntax highlighting for the function signature and the example. This is a big task. You keep skipping it. Actually do it this time.

  • Add precise type information for all inputs and outputs. Users should know exactly every field of every input and every output type. You keep skipping it. Actually do it this time.

  • The note about file-system access belongs both at the top of the docs and also briefly mentioned in the readfile and listfile functions too. You keep skipping it. Actually do it this time.

  • (For later) Augment the docs generator with test information.

FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.