All files / src/parsers/helpers retrieveVCVersion.ts

100% Statements 9/9
100% Branches 0/0
100% Functions 1/1
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36                  125x         1x     129x   169x   129x     46x       42x     129x        
import { CONTEXT_URLS } from '@blockcerts/schemas';
import { isString } from '../../helpers/string';
import type { JsonLDContext } from '../../models/Blockcerts';
 
export interface VCVersion {
  versionNumber: number;
}
 
export function isVCV2 (context: JsonLDContext | string): boolean {
  return retrieveVCVersion(context).versionNumber === 2;
}
 
export default function retrieveVCVersion (context: JsonLDContext | string): VCVersion {
  if (typeof context === 'string') {
    context = [context];
  }
 
  const VCContextsUrls = [CONTEXT_URLS.VERIFIABLE_CREDENTIAL_V1_CONTEXT, CONTEXT_URLS.VERIFIABLE_CREDENTIAL_V2_CONTEXT];
 
  const VCContext: string = context.filter(isString).find((ctx: string) => VCContextsUrls.includes(ctx));
 
  let versionNumber: number = -1;
 
  if (VCContext?.includes('v1')) {
    versionNumber = 1;
  }
 
  if (VCContext?.includes('v2')) {
    versionNumber = 2;
  }
 
  return {
    versionNumber
  };
}