| import { join } from "node:path"; |
| import { createRepository } from "../src/data/repository.mjs"; |
|
|
| const repository = createRepository({ dbPath: join(process.cwd(), "data", "notes.db") }); |
| await repository.init(); |
|
|
| const now = Date.now(); |
| const folders = [ |
| { id: "notes", name: "备忘录", createdAt: now - 1000 * 60 * 60 * 24 * 30, updatedAt: now }, |
| ...Array.from({ length: 22 }, (_, index) => ({ |
| id: `mock-folder-${index + 1}`, |
| name: `测试分类 ${String(index + 1).padStart(2, "0")}`, |
| createdAt: now - 1000 * 60 * 60 * (22 - index), |
| updatedAt: now - 1000 * 60 * index |
| })) |
| ]; |
|
|
| const longParagraph = [ |
| "这是一段用于测试内容滚动的长文本。", |
| "移动端需要在内容页保持顶部返回栏和底部编辑按钮稳定。", |
| "桌面端需要编辑区自己滚动,不应该把分类和列表一起带走。", |
| "这里故意写得比较长,用来观察换行、行高和滚动条表现。" |
| ].join(""); |
|
|
| const notes = Array.from({ length: 96 }, (_, index) => { |
| const folder = index < 18 ? "notes" : `mock-folder-${(index % 22) + 1}`; |
| const lines = Array.from({ length: index % 9 === 0 ? 46 : 8 }, (__, lineIndex) => { |
| if (lineIndex === 0) return `测试笔记 ${String(index + 1).padStart(3, "0")}`; |
| if (lineIndex % 6 === 0) return `- 列表项 ${lineIndex}: 检查列表和正文滚动`; |
| return `${lineIndex}. ${longParagraph}`; |
| }); |
|
|
| return { |
| id: `mock-note-${index + 1}`, |
| folder, |
| body: lines.join("\n\n"), |
| createdAt: now - 1000 * 60 * 60 * index, |
| updatedAt: now - 1000 * 60 * index |
| }; |
| }); |
|
|
| await repository.writeState({ folders, notes }); |
| console.log(`Seeded ${folders.length} folders and ${notes.length} notes.`); |
|
|