@metamask/network-controller
Version:
Provides an interface to the currently selected network via a MetaMask-compatible provider object
1 lines • 1.95 kB
Source Map (JSON)
{"version":3,"file":"shared.cjs","sourceRoot":"","sources":["../../src/rpc-service/shared.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n CockatielEvent,\n CockatielEventEmitter,\n} from '@metamask/controller-utils';\n\n/**\n * Equivalent to the built-in `FetchOptions` type, but renamed for clarity.\n */\nexport type FetchOptions = RequestInit;\n\n/**\n * Converts a Cockatiel event type to an event emitter type.\n */\nexport type CockatielEventToEventEmitter<Event> =\n Event extends CockatielEvent<infer EventData>\n ? CockatielEventEmitter<EventData>\n : never;\n\n/**\n * Obtains the event data type from a Cockatiel event or event listener type.\n */\nexport type ExtractCockatielEventData<CockatielEventOrEventListener> =\n CockatielEventOrEventListener extends CockatielEvent<infer Data>\n ? Data\n : CockatielEventOrEventListener extends (data: infer Data) => void\n ? Data\n : never;\n\n/**\n * Extends the data that a Cockatiel event listener is called with additional\n * data.\n */\nexport type ExtendCockatielEventData<OriginalData, AdditionalData> =\n OriginalData extends void ? AdditionalData : OriginalData & AdditionalData;\n\n/**\n * Removes keys from the data that a Cockatiel event listner is called with.\n */\nexport type ExcludeCockatielEventData<\n OriginalData,\n Keys extends PropertyKey,\n> = OriginalData extends void ? void : Omit<OriginalData, Keys>;\n\n/**\n * Converts a Cockatiel event type to an event listener type, but adding the\n * requested data.\n */\nexport type CockatielEventToEventListenerWithData<Event, Data> = (\n data: ExtendCockatielEventData<ExtractCockatielEventData<Event>, Data>,\n) => void;\n\n/**\n * Converts a Cockatiel event listener type to an event emitter type.\n */\nexport type CockatielEventToEventEmitterWithData<Event, Data> =\n CockatielEventEmitter<\n ExtendCockatielEventData<ExtractCockatielEventData<Event>, Data>\n >;\n"]}