import * as schema_ from '@mtcute/tl/api-schema.json' assert { type: 'json' } import type { TlEntry } from '@mtcute/tl-utils' const schema = ('default' in schema_ ? schema_.default : schema_) as { e: TlEntry[] } let _cachedEntriesMap: Map | null = null let _cachedUnionsMap: Map | null = null /** @internal */ export function getEntriesMap(): { entries: Map unions: Map } { if (_cachedEntriesMap) { return { entries: _cachedEntriesMap, unions: _cachedUnionsMap!, } } _cachedEntriesMap = new Map() _cachedUnionsMap = new Map() let entry: TlEntry for (entry of schema.e) { _cachedEntriesMap.set(entry.name, entry) if (!_cachedUnionsMap.has(entry.type)) { _cachedUnionsMap.set(entry.type, []) } _cachedUnionsMap.get(entry.type)!.push(entry) } return { entries: _cachedEntriesMap, unions: _cachedUnionsMap, } }