@virtualstate/navigation
Version:
Native JavaScript [navigation](https://developer.mozilla.org/en-US/docs/Web/API/Navigation_API) implementation
19 lines (16 loc) • 706 B
text/typescript
import {DEFAULT_POLYFILL_OPTIONS, getCompletePolyfill, getPolyfill, NavigationPolyfillOptions} from "./get-polyfill";
import {getNavigation} from "./get-navigation";
import {globalNavigation} from "./global-navigation";
export function applyPolyfill(options: NavigationPolyfillOptions = DEFAULT_POLYFILL_OPTIONS) {
const { apply, navigation } = getCompletePolyfill(options);
apply();
return navigation;
}
export function shouldApplyPolyfill(navigation = getNavigation()) {
const globalThat: { Element?: unknown, navigation?: unknown } = globalThis;
return (
navigation !== globalNavigation &&
!Object.hasOwn(globalThat, 'navigation') &&
typeof window !== "undefined"
);
}