// good for diagnostic purposes import { RequestCluster } from '../../request-cluster'; import { DataLocation } from '../../stolen-data-entry'; export type FakeRequestClusterData = { id: string; hasCookies: boolean; hasMarkedCookies: boolean; hasMarks: boolean; exposesOriginWhere: DataLocation[]; exposesOrigin: boolean; }; export function getFakeClusterData( clusters: Record ): Record { return Object.fromEntries( Object.entries(clusters).map(([key, cluster]) => [key, cluster.makeDataForFake()]) ); } export function makeFakeClusters( fake_clusters_data: Record ): Record { return Object.fromEntries( Object.entries(fake_clusters_data).map(([key, cluster_data]) => [ key, new FakeCluster(cluster_data), ]) ); } export class FakeCluster extends RequestCluster { constructor(public data: FakeRequestClusterData) { super(data.id); for (const key of [ 'hasCookies', 'hasMarkedCookies', 'hasMarks', 'exposesOriginWhere', 'exposesOrigin', ]) { //@ts-ignore this[key] = () => { //@ts-ignore return this.data[key]; }; } } hasCookies() { return this.data.hasCookies; } }