MCPcopy
hub / github.com/Narcooo/inkos / loadChapterIndex

Method loadChapterIndex

packages/core/src/state/manager.ts:266–281  ·  view source on GitHub ↗
(bookId: string)

Source from the content-addressed store, hash-verified

264 }
265
266 async loadChapterIndex(bookId: string): Promise<ReadonlyArray<ChapterMeta>> {
267 const indexPath = join(this.bookDir(bookId), "chapters", "index.json");
268 try {
269 const raw = await readFile(indexPath, "utf-8");
270 const parsed = JSON.parse(raw) as unknown;
271 if (Array.isArray(parsed) && parsed.length > 0) return parsed as ReadonlyArray<ChapterMeta>;
272 if (Array.isArray(parsed)) {
273 const rebuilt = await this.rebuildChapterIndexFromFiles(bookId);
274 return rebuilt.length > 0 ? rebuilt : parsed as ReadonlyArray<ChapterMeta>;
275 }
276 } catch {
277 const rebuilt = await this.rebuildChapterIndexFromFiles(bookId);
278 if (rebuilt.length > 0) return rebuilt;
279 }
280 return [];
281 }
282
283 private async rebuildChapterIndexFromFiles(bookId: string): Promise<ReadonlyArray<ChapterMeta>> {
284 return this.rebuildChapterIndexFromFilesAt(this.bookDir(bookId));

Callers 15

createStudioServerFunction · 0.95
rollbackToChapterMethod · 0.95
evaluateBookQualityFunction · 0.45
persistChapterArtifactsFunction · 0.45
writeDraftMethod · 0.45
auditDraftMethod · 0.45
reviseDraftMethod · 0.45
getBookStatusMethod · 0.45
importChaptersMethod · 0.45

Calls 2

bookDirMethod · 0.95

Tested by

no test coverage detected