Procedurally generates a radio weather report
1#!/usr/bin/env node
2import path from 'path';
3import fsp from 'fs/promises';
4import json5 from 'json5';
5import Sequencer from './sequencer.js';
6import { Stitcher } from './stitcher.js';
7import type {Programs, Segments, Sequences} from './sequencer.js';
8import type { Voices } from './voice.js';
9import type { Options } from 'openweather-api-node';
10
11
12interface Config {
13 programs: Programs,
14 segments: Segments,
15 sequences: Sequences,
16 voices: Voices,
17 weather: Options
18}
19
20console.log('morning-report\nCory Sanin 2025\n');
21
22const config: Config = json5.parse(await fsp.readFile(process.env['CONFIG'] || path.join('config', 'config.json5'), { encoding: 'utf-8' }));
23const sequence = await Sequencer(config);
24console.log(sequence.join('\n'));
25await Stitcher(sequence);
26
27export type { Config };