Move src/ → apps/server/ and packages/web/ → apps/web/ to adopt standard monorepo conventions (apps/ for runnable apps, packages/ for reusable libraries). Update all config files, shared package imports, test fixtures, and documentation to reflect new paths. Key fixes: - Update workspace config to ["apps/*", "packages/*"] - Update tsconfig.json rootDir/include for apps/server/ - Add apps/web/** to vitest exclude list - Update drizzle.config.ts schema path - Fix ensure-schema.ts migration path detection (3 levels up in dev, 2 levels up in dist) - Fix tests/integration/cli-server.test.ts import paths - Update packages/shared imports to apps/server/ paths - Update all docs/ files with new paths
36 lines
907 B
Markdown
36 lines
907 B
Markdown
# todo-api
|
|
|
|
A minimal zero-dependency in-memory todo list library for Node.js.
|
|
|
|
## API
|
|
|
|
```js
|
|
import { TodoStore } from './src/todo.js';
|
|
|
|
const store = new TodoStore();
|
|
|
|
const id = store.add('buy milk'); // returns numeric id
|
|
store.list(); // returns [{ id, text, done }]
|
|
store.remove(id); // deletes item
|
|
store.complete(id); // NOT IMPLEMENTED — marks item done
|
|
```
|
|
|
|
## Status
|
|
|
|
The `complete(id)` method is **missing**. The test suite in `src/todo.test.js` covers it and currently fails:
|
|
|
|
```
|
|
node --test src/todo.test.js
|
|
# → TypeError: store.complete is not a function
|
|
```
|
|
|
|
## Task
|
|
|
|
Implement `complete(id)` on `TodoStore` in `src/todo.js` so that it:
|
|
|
|
1. Finds the item with the given `id`.
|
|
2. Sets `item.done = true`.
|
|
3. Does not throw if `id` is not found (silent no-op).
|
|
|
|
All five tests in `src/todo.test.js` should pass after the fix.
|