{"version":3,"file":"utils-hy3UWPan.js","sources":["../../../app/javascript/lib/search/utils.ts"],"sourcesContent":["import AuthorType from \"types/AuthorType\";\nimport ListType from \"types/ListType\";\nimport PromptType from \"types/PromptType\";\nimport PublisherType from \"types/PublisherType\";\nimport SeriesType from \"types/SeriesType\";\nimport UserType from \"types/UserType\";\n\nimport {\n AuthorHitType,\n BookHitType,\n CharacterHitType,\n ListHitType,\n PromptHitType,\n PublisherHitType,\n SeriesHitType,\n UserHitType,\n} from \"types/HitTypes\";\nimport CharacterType from \"types/CharacterType\";\nimport { BookSerializersBookByline } from \"types/serializers\";\n\nexport function bookHitToBook(hit: BookHitType) {\n const contributions = hit.contributions?.filter\n ? hit.contributions || hit.cached_contributions || []\n : [];\n\n const bookSeries = hit.featured_series\n ? [\n {\n position: hit.featured_series.position,\n details: hit.featured_series.details,\n featured: true,\n series: {\n name: hit.featured_series.series_name,\n slug: hit.featured_series.series_slug,\n booksCount: hit.featured_series.series_books_count,\n primaryBooksCount: hit.featured_series.series_primary_books_count,\n },\n },\n ]\n : [];\n const book = {\n id: Number(hit.id),\n title: hit.title,\n image: hit.image || hit.cached_image,\n contributions,\n slug: hit.slug,\n releaseYear: hit.release_year,\n bookSeries,\n url: `/books/${hit.slug}`,\n usersCount: hit.users_count,\n rating: hit.rating,\n } as unknown as BookSerializersBookByline;\n\n return book;\n}\n\nexport function authorHitToAuthor(hit: AuthorHitType) {\n const author = {\n id: Number(hit.id),\n slug: hit.slug,\n name: hit.name,\n image: hit.image,\n namePersonal: hit.name_personal,\n alternateNames: hit.alternate_names,\n booksCount: hit.books_count,\n } as unknown as AuthorType;\n\n return author;\n}\n\nexport function seriesHitToSeries(hit: SeriesHitType) {\n const series = {\n id: Number(hit.id),\n slug: hit.slug,\n name: hit.name,\n author: hit.author,\n booksCount: hit.books_count,\n primaryBooksCount: hit.primary_books_count,\n readersCount: hit.readers_count,\n } as unknown as SeriesType;\n\n return series;\n}\n\nexport function listHitToList(hit: ListHitType) {\n const list = {\n id: Number(hit.id),\n slug: hit.slug,\n name: hit.title,\n author: hit.author,\n booksCount: hit.books_count,\n followersCount: hit.followers_count,\n user: hit.user,\n } as unknown as ListType;\n\n return list;\n}\n\nexport function promptHitToPrompt(hit: PromptHitType) {\n const prompt = {\n id: Number(hit.id),\n slug: hit.slug,\n question: hit.question,\n usersCount: hit.users_count,\n booksCount: hit.books_count,\n answersCount: hit.answers_count,\n user: hit.user,\n } as unknown as PromptType;\n\n return prompt;\n}\n\nexport function userHitToUser(hit: UserHitType) {\n const user = {\n id: Number(hit.id),\n slug: hit.username,\n name: hit.name,\n username: hit.slug,\n followedUsersCount: hit.followed_users_count,\n followersCount: hit.followers_count,\n pro: hit.pro,\n flair: hit.flair,\n location: hit.location,\n booksCount: hit.books_count,\n image: hit.image,\n } as unknown as UserType;\n\n return user;\n}\n\nexport function publisherHitToPublisher(hit: PublisherHitType) {\n const publisher = {\n id: Number(hit.id),\n slug: hit.slug,\n name: hit.name,\n editionsCount: hit.editions_count,\n } as unknown as PublisherType;\n\n return publisher;\n}\n\nexport function characterHitToCharacter(hit: CharacterHitType) {\n const character = {\n id: Number(hit.id),\n slug: hit.slug,\n name: hit.name,\n booksCount: hit.books_count,\n } as unknown as CharacterType;\n\n return character;\n}\n\nexport function hitToTypeMap(\n hit:\n | AuthorHitType\n | BookHitType\n | ListHitType\n | PromptHitType\n | SeriesHitType\n | UserHitType\n | CharacterHitType\n | PublisherHitType\n) {\n try {\n if (!hit) {\n return null;\n }\n const keys = Object.keys(hit);\n if (hit.object_type === \"Character\") {\n return \"Characters\";\n }\n if (hit.object_type === \"List\") {\n return \"Lists\";\n }\n if (hit.object_type === \"Publisher\") {\n return \"Publishers\";\n }\n if (hit.alternate_names) {\n return \"Authors\";\n }\n if (hit.username) {\n return \"Users\";\n }\n if (hit.rating) {\n return \"Books\";\n }\n if (keys.indexOf(\"answers_count\") !== -1) {\n return \"Prompts\";\n }\n if (hit.name) {\n return \"Series\";\n }\n return \"Books\";\n } catch {\n return \"Books\";\n }\n}\n"],"names":["bookHitToBook","hit","_a","contributions","bookSeries","authorHitToAuthor","seriesHitToSeries","listHitToList","promptHitToPrompt","userHitToUser","publisherHitToPublisher","characterHitToCharacter","hitToTypeMap","keys"],"mappings":"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"}