export class PointsTable { private readonly pointsByPosition: Map; constructor(pointsByPosition: Record | Map) { if (pointsByPosition instanceof Map) { this.pointsByPosition = new Map(pointsByPosition); } else { this.pointsByPosition = new Map( Object.entries(pointsByPosition).map(([key, value]) => [Number(key), value]), ); } } getPointsForPosition(position: number): number { if (!Number.isInteger(position) || position < 1) { return 0; } const value = this.pointsByPosition.get(position); return typeof value === 'number' ? value : 0; } }