UNPKG

beam-cli

Version:

A beautifully simple CLI for running Lighthouse audits on a statically generated (SSG) website

41 lines (40 loc) 1.43 kB
import { defaultOptions } from '../options/defaults.js'; /** Build up the configuration options * * Order of Preference (lowest -> highest): * Defaults -> Config File -> Flags */ export const mergeConfigurations = (flags, userConfiguration) => { let { lighthouse } = defaultOptions; if (userConfiguration.lighthouse) { if (Array.isArray(userConfiguration.lighthouse)) { /* eslint-disable @typescript-eslint/consistent-type-assertions */ // ? Disabling the eslint rule for a cleaner and small section of code. lighthouse = userConfiguration.lighthouse.map(lhc => ({ ...defaultOptions.lighthouse, ...lhc, })); /* eslint-enable @typescript-eslint/consistent-type-assertions */ } else { lighthouse = { ...defaultOptions.lighthouse, ...userConfiguration.lighthouse, }; } } const options = { ...defaultOptions, ...userConfiguration, server: { ...defaultOptions.server, ...userConfiguration.server }, output: { ...defaultOptions.output, ...userConfiguration.output }, lighthouse, }; if (flags.dist) options.dist = flags.dist; if (flags.port) options.server.port = flags.port; if (flags.urls) options.urls = flags.urls.split(','); return options; };