Lifecycle WorldWind never had
GlobeController.destroy() stops the render loop, removes the listeners WorldWind leaks, drops the layers and releases WebGL.
One typed core, thin adapters for React and Angular, ready-made widgets, and a fake WorldWind for tests.

npm install react-worldwind @nasaworldwind/worldwindnpm install ngx-worldwind @nasaworldwind/worldwindnpm install worldwind-kit @nasaworldwind/worldwindThen follow Getting started; a globe is about ten lines.
The published packages, running here. Drag to rotate, scroll to zoom, click a pin, try the measuring tool.
WorldWind's own API is imperative, untyped and has no teardown. These packages add a documented TypeScript surface, declarative layers and shapes that update in place, a real destroy(), one shared gesture recognizer per globe, a Vite plugin for the bundling bug WorldWind trips over, and a fake WorldWind so components can be tested in jsdom. The Concepts page explains the design in a few minutes.