/** * Copyright 2025 Phenix Real Time Solutions, Inc. Confidential and Proprietary. All Rights Reserved. */ import type {IDependencyProvider} from './IDependencyProvider'; import {Type} from './Type'; import {NamedType} from './NamedType'; /** * A dependency provider for integer constants. * Uses NamedType where the name is parsed as an integer. */ export class IntegerConstantProvider implements IDependencyProvider { public canProvide(type: Type): boolean { if (!(type instanceof Type)) { throw new Error('Must provide a valid type'); } return type instanceof NamedType && type.getType() === 'di/IntegerConstantProvider'; } public async provide(type: Type): Promise { if (!(type instanceof NamedType)) { throw new Error('Must provide a NamedType'); } return parseInt(type.getName(), 10); } public toString(): string { return 'IntegerConstantProvider'; } }