/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import * as yaml from 'js-yaml';
import { AppConstants } from '../constants/app.constants.js';

export function loadYaml(fileContent: string) {
	return (yaml.load(fileContent));
}

export function isYAML(data: string | object): boolean {
	try {
		const yamlString = yaml.dump(data);
		loadYaml(yamlString);
		return true;
	} catch (error) {
		return false;
	}
}

export function loadMultiYaml(fileContent: string) {
	return (yaml.loadAll(fileContent));
}

export function isYamlFile(fileName: string): boolean {
	return fileName.endsWith('.yaml') || fileName.endsWith('.yml');
}

export function convertToYamlString(data: unknown, fileName?: string): string {
	try {
		return yaml.dump(data);
	} catch (err) {
		throw new Error(`${AppConstants.PARSING_EXCEPTION(fileName)} ${(err as Error).message}`);
	}
}

export function isMultiYAML(yamlString: string): boolean {
	const multiDocs =loadMultiYaml(yamlString);
	return multiDocs.length > 1;
  }