refactor(core): Export some more symbols and check for truthiness on event types before adding them. (#55587)

In some cases, we will be passing in undefined for capture events, so handle this.

PR Close #55587
This commit is contained in:
Thomas Nguyen 2024-05-06 12:40:49 -07:00 committed by Andrew Scott
parent fedeaac8ba
commit f5b6b7fa40
3 changed files with 11 additions and 4 deletions

View file

@ -28,6 +28,12 @@ export class Dispatcher {
unregisterHandler(namespace: string, name: string): void;
}
// @public (undocumented)
export interface EarlyJsactionDataContainer {
// (undocumented)
_ejsa?: EarlyJsactionData;
}
// @public
export class EventContract implements UnrenamedEventContract {
constructor(containerManager: EventContractContainerManager);

View file

@ -8,6 +8,7 @@
export {Dispatcher, registerDispatcher} from './src/dispatcher';
export {EventContractContainer} from './src/event_contract_container';
export type {EarlyJsactionDataContainer} from './src/earlyeventcontract';
export {EventContract} from './src/eventcontract';
export {bootstrapEventContract, bootstrapEarlyEventContract} from './src/register_events';

View file

@ -54,8 +54,8 @@ export function bootstrapEarlyEventContract(
field: string,
container: HTMLElement,
appId: string,
eventTypes: string[],
captureEventTypes: string[],
eventTypes?: string[],
captureEventTypes?: string[],
earlyJsactionTracker: EventContractTracker<EarlyJsactionDataContainer> = window as unknown as EventContractTracker<EarlyJsactionDataContainer>,
) {
if (!earlyJsactionTracker[field]) {
@ -63,6 +63,6 @@ export function bootstrapEarlyEventContract(
}
earlyJsactionTracker[field][appId] = {};
const eventContract = new EarlyEventContract(earlyJsactionTracker[field][appId], container);
eventContract.addEvents(eventTypes);
eventContract.addEvents(captureEventTypes, true);
eventTypes && eventContract.addEvents(eventTypes);
captureEventTypes && eventContract.addEvents(captureEventTypes, true);
}