@apistudio/apim-cli
Version:
CLI for API Management Products
40 lines (34 loc) • 1.01 kB
text/typescript
/**
* 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;
}