mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-10 09:40:23 -04:00
0ed052eb0d
# Description of Changes Adds a Node.js quickstart template and documentation for SpacetimeDB. ## Template (`templates/nodejs-ts/`) - SpacetimeDB module with TypeScript (`spacetimedb/src/index.ts`) - Node.js client with interactive CLI (`src/main.ts`) - File-based token persistence (`.spacetimedb-token`) instead of localStorage - Table change callbacks (`onInsert`, `onDelete`) - Graceful shutdown handlers for `SIGINT`/`SIGTERM` - Pre-generated module bindings in `src/module_bindings/` ## Documentation (`docs/docs/00100-intro/00200-quickstarts/00300-nodejs.md`) - Step-by-step quickstart guide following existing pattern - Covers project creation with `spacetime dev --template nodejs-ts` - Explains project structure and client code - Documents interactive CLI commands (`list`, `hello`, `<name>`) - Covers Node.js-specific considerations (WebSocket support, token storage) - Documents environment variable configuration (`SPACETIMEDB_HOST`, `SPACETIMEDB_DB_NAME`) ## Consistency - Environment variables follow the same `HOST`/`DB_NAME` naming convention as other quickstarts - Documentation structure mirrors React and Next.js quickstarts # API and ABI breaking changes None. # Expected complexity level and risk 1 - Additive change only. New template and documentation, no modifications to existing functionality. # Testing - [ ] Run `spacetime dev --template nodejs-ts` and verify project initializes - [ ] Run `npm run dev` and verify connection to SpacetimeDB - [ ] Test adding a person by typing a name - [ ] Test `list` command shows all people - [ ] Test `hello` command calls reducer (check server logs) - [ ] Verify token persistence works across restarts - [ ] Test graceful shutdown with Ctrl+C - [ ] Check documentation renders correctly
23 lines
549 B
JSON
23 lines
549 B
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2022",
|
|
"module": "NodeNext",
|
|
"moduleResolution": "NodeNext",
|
|
"lib": ["ES2022"],
|
|
"outDir": "dist",
|
|
"rootDir": "src",
|
|
"strict": true,
|
|
"esModuleInterop": true,
|
|
"skipLibCheck": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"resolveJsonModule": true,
|
|
"declaration": true,
|
|
"declarationMap": true,
|
|
"noUnusedLocals": true,
|
|
"noUnusedParameters": true,
|
|
"noFallthroughCasesInSwitch": true
|
|
},
|
|
"include": ["src"],
|
|
"exclude": ["node_modules", "dist"]
|
|
}
|