@apistudio/apim-cli
Version:
CLI for API Management Products
29 lines (24 loc) • 1.05 kB
text/typescript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { RefParserInterface } from '../models/interface.js';
import { LogWrapper } from '../service/log-wrapper.js';
export class RefParser implements RefParserInterface {
parseRef(ref: string): { namespace?: string, name: string, version: string } {
LogWrapper.logDebug('0003', `Starting to parse reference: ${ref}`);
const parts = ref.split(':');
let namespace, name, version;
if (parts.length === 3) {
[namespace, name, version] = parts;
LogWrapper.logDebug('0003', `Parsed reference into namespace: ${namespace}, name: ${name}, version: ${version}`);
} else if (parts.length === 2) {
[name, version] = parts;
LogWrapper.logDebug('0003', `Parsed reference into name: ${name}, version: ${version}`);
} else {
LogWrapper.logError('0003', `Invalid reference format: ${ref}`);
throw new Error(`Invalid reference format: ${ref}`);
}
LogWrapper.logDebug('0003', `Completed parsing reference: ${ref}`);
return { namespace, name, version };
}
}