feat: initial commit

This commit is contained in:
2025-03-02 22:25:17 +01:00
commit 8cbba81747
69 changed files with 6602 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
import { ArtworksSearchResult } from "./ArtworkSearchResult";
export class ArtworkSearchResultCollection {
private _results: Map<string, ArtworksSearchResult> = new Map();
public get isEmpty(): boolean {
const emptySize = 0;
return this._results.size === emptySize;
}
public get results(): Array<ArtworksSearchResult> {
const results = new Array<ArtworksSearchResult>();
if (this.isEmpty) {
return results;
}
const iterable = this._results.values();
let iterator = iterable.next();
do {
results.push(iterator.value);
iterator = iterable.next();
} while (!iterator.done);
return results;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
public addResults(results: Array<any>): Array<ArtworksSearchResult> {
const addedResults: Array<ArtworksSearchResult> = [];
for (let i = 0; i < results.length; i++) {
const resultModel = new ArtworksSearchResult(results[i]);
const added = this.addResult(resultModel);
if (added) {
addedResults.push(resultModel);
}
}
return addedResults;
}
private addResult(resultModel: ArtworksSearchResult): boolean {
const resultUuid: string = resultModel.uuid;
if (this._results.has(resultUuid)) {
return false;
}
this._results.set(resultUuid, resultModel);
return true;
}
}