Files
gods-eye-view/src/testSupport/readLayerSource.mjs
T

54 lines
1.8 KiB
JavaScript

import { readFileSync, readdirSync } from 'node:fs';
import { dirname, join, basename } from 'node:path';
import { fileURLToPath } from 'node:url';
/** Read actual component owners for structural regression assertions. */
export function readLayerSource(file) {
const path = file instanceof URL ? fileURLToPath(file) : file;
if (
![
'flights.js',
'militaryFlights.js',
'aisLiveVessels.js',
'firmsHeatmap.js',
'satellites.js',
'rocketLaunches.js',
'militaryInstallations.js',
'militaryAwareness.js',
'traffic.js',
'bikeshare.js',
'cctv.js',
].includes(basename(path))
)
return readFileSync(path, 'utf8');
const directory = join(
dirname(path),
basename(path) === 'flights.js'
? '../layers/flights'
: basename(path) === 'militaryFlights.js'
? '../layers/military'
: basename(path) === 'firmsHeatmap.js'
? '../layers/firms'
: basename(path) === 'satellites.js'
? '../layers/satellites'
: basename(path) === 'rocketLaunches.js'
? '../layers/launches'
: basename(path) === 'militaryInstallations.js'
? '../layers/installations'
: basename(path) === 'militaryAwareness.js'
? '../layers/awareness'
: basename(path) === 'traffic.js'
? '../layers/traffic'
: basename(path) === 'bikeshare.js'
? '../layers/bikeshare'
: basename(path) === 'cctv.js'
? '../layers/cctv'
: '../layers/vessels',
);
return readdirSync(directory)
.filter((name) => name.endsWith('.js'))
.sort()
.map((name) => readFileSync(join(directory, name), 'utf8'))
.join('\n');
}