@virtualstate/navigation
Version:
Native JavaScript [navigation](https://developer.mozilla.org/en-US/docs/Web/API/Navigation_API) implementation
32 lines • 1.22 kB
JavaScript
import { AsyncEventTarget } from "./async-event-target.js";
const defaultEventTargetModule = {
EventTarget: AsyncEventTarget,
AsyncEventTarget,
SyncEventTarget: AsyncEventTarget,
};
let eventTargetModule = defaultEventTargetModule;
//
// try {
// eventTargetModule = await import("@virtualstate/navigation/event-target");
// console.log("Using @virtualstate/navigation/event-target", eventTargetModule);
// } catch {
// console.log("Using defaultEventTargetModule");
// eventTargetModule = defaultEventTargetModule;
// }
const EventTargetImplementation = eventTargetModule.EventTarget || eventTargetModule.SyncEventTarget || eventTargetModule.AsyncEventTarget;
function assertEventTarget(target) {
if (typeof target !== "function") {
throw new Error("Could not load EventTarget implementation");
}
}
export class EventTarget extends AsyncEventTarget {
constructor(...args) {
super();
if (EventTargetImplementation) {
assertEventTarget(EventTargetImplementation);
const { dispatchEvent } = new EventTargetImplementation(...args);
this.dispatchEvent = dispatchEvent;
}
}
}
//# sourceMappingURL=event-target.js.map