UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

40 lines (35 loc) 1.48 kB
import { BaseAsset } from "@apic/studio-client-model"; import { isNullOrUndefined } from "./data.helper.js"; import { AppConstants } from "../constants/app.constants.js"; import { getDocumentBasedOnLanguage } from "./data.parser.js"; function isBaseAsset(fileContent: string, language: string): boolean { const parsedYaml: BaseAsset = getDocumentBasedOnLanguage(fileContent, language); return !!parsedYaml?.kind; } function getBaseAsset(fileContent: string, language: string): string { const parsedYaml: BaseAsset = getDocumentBasedOnLanguage(fileContent, language); return parsedYaml.kind.toLowerCase(); } function isValidAssetRefValue(assetRefValue: string): boolean { if (isNullOrUndefined(assetRefValue)) { return false; } return ( assetRefValue.split(AppConstants.COLON).length >= 1 && assetRefValue.split(AppConstants.COLON).length <= 3 ); }; function isValidAsset(asset: BaseAsset | null | undefined, checkForVersion: boolean): boolean { if (isNullOrUndefined(asset)) { return false; } asset = asset as BaseAsset; return !isNullOrUndefined(asset.kind) && !isNullOrUndefined(asset.metadata) && !isNullOrUndefined(asset.metadata.name) && (!checkForVersion || !isNullOrUndefined(asset.metadata.version)); } function isValidAssetFileName(filename: string) { return filename.endsWith('.yaml') || filename.endsWith('.yml') || filename.endsWith('.json'); } export { isBaseAsset, isValidAssetFileName, isValidAsset, isValidAssetRefValue, getBaseAsset };