MCPcopy
hub / github.com/codedogQBY/ReadAny / normalizeReviews

Function normalizeReviews

packages/core/src/utils/book-metadata.ts:190–214  ·  view source on GitHub ↗
(value: unknown)

Source from the content-addressed store, hash-verified

188}
189
190export function normalizeReviews(value: unknown): BookReview[] {
191 if (!Array.isArray(value)) return [];
192 return value
193 .map((review) => {
194 if (!review || typeof review !== "object") return null;
195 const raw = review as Partial<BookReview>;
196 const content = typeof raw.content === "string" ? raw.content.trim() : "";
197 if (!content) return null;
198 const createdAt =
199 typeof raw.createdAt === "number" && Number.isFinite(raw.createdAt)
200 ? raw.createdAt
201 : Date.now();
202 const updatedAt =
203 typeof raw.updatedAt === "number" && Number.isFinite(raw.updatedAt)
204 ? raw.updatedAt
205 : createdAt;
206 return {
207 id: raw.id || generateId(),
208 content,
209 createdAt,
210 updatedAt,
211 };
212 })
213 .filter((review): review is BookReview => Boolean(review));
214}
215
216export function buildBookMetadataUpdate(
217 book: Book,

Callers 1

Calls 2

generateIdFunction · 0.90
mapMethod · 0.80

Tested by

no test coverage detected