import { LibrarySearchResult, SnippetRepositoryRef, SnippetSearchResult } from '$lib/server/models/search-result.js'; import { RepositoryMapper } from '$lib/server/mappers/repository.mapper.js'; import { RepositoryVersionMapper } from '$lib/server/mappers/repository-version.mapper.js'; import { SnippetMapper } from '$lib/server/mappers/snippet.mapper.js'; import { RepositoryEntity } from '$lib/server/models/repository.js'; import { RepositoryVersionEntity } from '$lib/server/models/repository-version.js'; import { SnippetEntity } from '$lib/server/models/snippet.js'; export class SearchResultMapper { static snippetFromEntity( entity: SnippetEntity, repository: { id: string; title: string }, score: number ): SnippetSearchResult { return new SnippetSearchResult({ snippet: SnippetMapper.fromEntity(entity), score, repository: new SnippetRepositoryRef(repository) }); } static libraryFromEntity( repositoryEntity: RepositoryEntity, versionEntities: RepositoryVersionEntity[], score: number ): LibrarySearchResult { return new LibrarySearchResult({ repository: RepositoryMapper.fromEntity(repositoryEntity), versions: versionEntities.map((version) => RepositoryVersionMapper.fromEntity(version)), score }); } }