Procedurally generates a radio weather report
at master 805 B view raw
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 };