All files / if-run/builtins export-yaml.ts

100% Statements 15/15
100% Branches 3/3
100% Functions 2/2
100% Lines 14/14

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 371x   1x   1x       1x 1x   1x       1x 3x 1x     2x         2x       2x   2x     1x    
import {ERRORS} from '@grnsft/if-core/utils';
 
import {saveYamlFileAs} from '../../common/util/yaml';
 
import {STRINGS} from '../config';
 
import {Context} from '../../common/types/manifest';
 
const {ExhaustOutputArgError} = ERRORS;
const {OUTPUT_REQUIRED, EXPORTING_TO_YAML_FILE} = STRINGS;
 
export const ExportYaml = () => {
  /**
   * Saves output file in YAML format.
   */
  const execute = async (tree: any, context: Context, outputPath: string) => {
    if (!outputPath) {
      throw new ExhaustOutputArgError(OUTPUT_REQUIRED);
    }
 
    const outputFile = {
      ...context,
      tree,
    };
    const pathWithoutExtension =
      outputPath.split('.').length > 1
        ? outputPath.split('.').slice(0, -1).join('.')
        : outputPath;
 
    console.debug(EXPORTING_TO_YAML_FILE(pathWithoutExtension));
 
    await saveYamlFileAs(outputFile, `${pathWithoutExtension}.yaml`);
  };
 
  return {execute};
};