UNPKG

@sphereon/ssi-sdk.vc-status-list

Version:

Sphereon SSI-SDK plugin for Status List management, like StatusList2021.

35 lines (29 loc) 1.22 kB
import type { IStatusList } from './IStatusList' import { StatusList2021Implementation } from './StatusList2021' import { OAuthStatusListImplementation } from './OAuthStatusList' import { StatusListType } from '@sphereon/ssi-types' export class StatusListFactory { private static instance: StatusListFactory private implementations: Map<StatusListType, IStatusList> private constructor() { this.implementations = new Map() this.implementations.set(StatusListType.StatusList2021, new StatusList2021Implementation()) this.implementations.set(StatusListType.OAuthStatusList, new OAuthStatusListImplementation()) } public static getInstance(): StatusListFactory { if (!StatusListFactory.instance) { StatusListFactory.instance = new StatusListFactory() } return StatusListFactory.instance } public getByType(type: StatusListType): IStatusList { const statusList = this.implementations.get(type) if (!statusList) { throw new Error(`No implementation found for status list type: ${type}`) } return statusList } } export function getStatusListImplementation(type: StatusListType): IStatusList { return StatusListFactory.getInstance().getByType(type) }