npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

airborne-react-native

v0.31.0

Published

Airborne

Readme

airborne-react-native

airborne

Installation

npm install airborne-react-native

React Native Airborne Implementation Summary

This implementation provides a React Native module for Airborne that:

  1. Initializes Airborne in native code (iOS/Android)
  2. Provides React Native methods to access the native Airborne instance
  3. Is compatible with both old and new React Native architectures

Key Features

Native Initialization

  • Airborne should be initialized once in native code when the app starts
  • The instance should be created before React Native initializes
  • This ensures the Airborne instance is ready when React Native needs it

Architecture Compatibility

  • Old Architecture: Uses traditional React Native bridge (AirborneModule)
  • New Architecture: Uses TurboModules with JSI (AirborneTurboModule)
  • Automatically detects and uses the appropriate implementation

Shared Implementation

  • Android uses AirborneModuleImpl to share logic between architectures
  • iOS uses AirborneiOS wrapper to manage the native instance
  • Both platforms follow the same initialization pattern

File Structure

Android

  • Airborne.kt - Integration class for Airborne SDK
  • AirborneInterface.kt - The interface that has to be implemented by the consumer for providing all the necessary integration params.
  • AirborneModuleImpl.kt - Shared implementation logic
  • AirborneModule.kt - Old architecture module
  • AirborneTurboModule.kt - New architecture module
  • NativeAirborneSpec.java - TurboModule spec

iOS

  • AirborneiOS.h/m - Integration class for Airborne SDK
  • Airborne.h/mm - React Native module implementation
  • Supports both architectures with conditional compilation

JavaScript/TypeScript

  • NativeAirborne.ts - TurboModule TypeScript spec
  • index.tsx - Module exports with architecture detection

API Methods

  1. readReleaseConfig(namespace/appId) - Returns the release configuration as a stringified JSON
  2. getFileContent(namespace/appId, filePath) - Reads content from a file in the OTA bundle
  3. getBundlePath(namespace/appId) - Returns the path to the JavaScript bundle

Usage

Native Initialization

React Native Usage

import { readReleaseConfig, getFileContent, getBundlePath } from 'airborne-react-native';

// Read configuration
const config = await readReleaseConfig(namespace/appId);

// Get file content
const content = await getFileContent(namespace/appId, 'path/to/file.json');

// Get bundle path
const bundlePath = await getBundlePath(namespace/appId);

Implementation Notes

  1. Thread Safety: Both Android and iOS implementations are thread-safe
  2. Error Handling: All methods return promises that reject with descriptive errors
  3. Placeholder Implementation: The iOS implementation includes placeholders for the actual Airborne SDK integration

Next Steps

To complete the integration:

  1. Implement additional Airborne features as needed
  2. Add event emitters for callbacks if required

Testing

The example app demonstrates:

  • Native initialization in MainApplication/AppDelegate
  • Using all three API methods
  • Status indicator showing initialization state
  • Error handling for failed operations