All files / datasources/local/cad loadLocalSimpleSectorMetadata.ts

9.09% Statements 1/11
0% Branches 0/2
0% Functions 0/3
9.09% Lines 1/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                    1x                                      
/*!
 * Copyright 2020 Cognite AS
 */
 
export interface LocalSimpleCadMetadataResponse {
  readonly sector_id: number;
  readonly parent_sector_id: number;
  readonly parent_id?: number;
  readonly bbox_min: number[];
  readonly bbox_max: number[];
  readonly sector_contents?: {
    readonly grid_size: number[];
    readonly grid_origin: number[];
    readonly grid_increment: number;
    readonly node_count: number;
  };
}
 
export async function loadLocalSimpleCadMetadata(
  sectorsMetadataUrl: string
): Promise<Map<number, LocalSimpleCadMetadataResponse>> {
  const response = await fetch(sectorsMetadataUrl);
  if (!response.ok) {
    throw new Error(`Could not fetch ${sectorsMetadataUrl}, got ${response.status}`);
  }
 
  const content = await response.text();
  const sectors: Map<number, LocalSimpleCadMetadataResponse> = content
    .split('\n')
    .filter(x => x.trim() !== '')
    .reduce((map, chunk) => {
      const sector: LocalSimpleCadMetadataResponse = JSON.parse(chunk);
      map.set(sector.sector_id, sector);
      return map;
    }, new Map<number, LocalSimpleCadMetadataResponse>());
  return sectors;
}