@apistudio/apim-cli
Version:
CLI for API Management Products
42 lines (37 loc) • 1.09 kB
text/typescript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { AppConstants } from '../constants/app.constants.js';
import yaml from 'js-yaml';
export class Converter {
convertToYamlString(data: unknown, fileName?: string): string {
try {
return yaml.dump(data);
} catch (err) {
throw new Error(`${AppConstants.PARSING_EXCEPTION(fileName)} ${(err as Error).message}`);
}
}
convertToJSON(data: string, fileName?: string): unknown {
try {
return yaml.load(data);
} catch (err) {
throw new Error(`${AppConstants.PARSING_EXCEPTION(fileName)} ${(err as Error).message}`);
}
}
convertMultilineYamlToJSON(data: string, fileName?: string): unknown[] {
try {
return yaml.loadAll(data);
} catch (err) {
throw new Error(`${AppConstants.PARSING_EXCEPTION(fileName)} ${(err as Error).message}`);
}
}
convertNumberToString(data: string | number): string {
if (typeof data === 'string') {
return data.trim();
} else if (Math.abs(data - Math.floor(data)) < 1e-7) {
return data.toFixed(1);
} else {
return data.toString();
}
}
}