babylon-testing-library
Version:
Simple utilities that encourage good testing practices for Babylon.js
27 lines • 1.06 kB
JavaScript
import { Observable } from '@babylonjs/core';
import { eventMap } from './eventMap';
function fireEventFn(control, event) {
const eventObservable = control[event.observableName];
if (!(eventObservable instanceof Observable)) {
throw new Error(`Unable to fire an event - event of type "${event.key}" does not exist on "${control.getClassName()}"`);
}
eventObservable.notifyObservers(event.eventData);
}
function createEventFn(eventName, _control, init) {
const event = eventMap[eventName];
return {
key: eventName,
observableName: event.observableName,
eventData: init,
};
}
Object.keys(eventMap).forEach((key) => {
const { defaultInit } = eventMap[key];
createEventFn[key] = (node, init) => createEventFn(key, node, init !== null && init !== void 0 ? init : defaultInit);
fireEventFn[key] = (node, init) => {
fireEventFn(node, createEventFn[key](node, init));
};
});
export const createEvent = createEventFn;
export const fireEvent = fireEventFn;
//# sourceMappingURL=event.js.map