All files / core/src index.ts

100% Statements 16/16
100% Branches 4/4
100% Functions 3/3
100% Lines 15/15

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 39 40 41 42 43      1x     2x 2x   2x   2x 2x       1x   1x 1x           3x   2x 2x   2x 1x       1x              
import { LogLevel, RibbonLogger } from '@ribbon-studios/logger';
import { SourceModule } from './modules';
 
const Logger = new RibbonLogger('@refreshly/core');
 
export async function Refreshly(...sources: SourceModule[]) {
  try {
    Logger.info('Refreshing keys...');
 
    await Promise.all(
      sources.map(async (source) => {
        Logger.silly(`(${source.name}) Executing... `);
        await source.exec();
      })
    );
 
    Logger.info('Refreshly completed successfully!');
  } catch (error) {
    Logger.error(error);
    process.exit(1);
  }
}
 
// This is temporary
export function getEnv<T>(configKey: string, configValue?: T, ...keys: string[]): T {
  if (configValue) return configValue;
 
  for (const key of keys) {
    const value = process.env[key];
 
    if (value) {
      return value as T;
    }
  }
 
  throw new Error(`Expected "${configKey}" to be provided via... (config.${configKey}, ${keys.join(', ')})`);
}
 
export * from './modules';
export * from './types';
export * from './dotenv';
export { LogLevel, Logger };