Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@vibezcheck/runtime

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vibezcheck/runtime

Load and run VibezCheck Snacks in any React Native app

latest
npmnpm
Version
0.1.0
Version published
Weekly downloads
7
75%
Maintainers
1
Weekly downloads
 
Created
Source

@vibezcheck/runtime

The core system to load and open Snacks within React Native apps.

⚠️ Warning: This package consumes Snack infrastructure and requires a license from Expo. If you are interested, contact us and ask about the Snack custom runtime.

Installation

$ yarn add @vibezcheck/runtime

Usage

import * as Updates from 'expo-updates';
import {
  type SnackConfig,
  type SnackState,
  defaultSnackModules,
  SnackRuntimeProvider,
  SnackRuntime,
} from '@vibezcheck/runtime';

const config: SnackConfig = {
  modules: {
    // Inherit the default set of modules from Snack
    ...defaultSnackModules,
    // Add modules that are available through imports within Snacks
    'react-native-blurhash': require('react-native-blurhash'),
  }
};

export function Snack() {
  return (
    <SnackRuntimeProvider config={config}>
      <SnackRuntime
        onSnackState={onStateChange}
        onSnackReload={onReloadRequested}
        snackUrl="<snackUrl>"
      />
    </SnackRuntimeProvider>
  );
}

// Requested through the Snack website
function onReloadRequested() {
  return Updates.reloadAsync();
}

// When the lifecycle of a Snack changes
function onStateChange(state: SnackState) {
  if (state === 'loading') console.log('Snack is initializing the code...');
  if (state === 'finished') console.log('Snack is ready and rendered!');
  if (state === 'error') console.error('Snack failed to initialize, check the logs for more info.');
  if (state === 'not-found') console.error('Snack failed to initialize by snack identifier, Snack not found');

  throw new Error(`Unexpected Snack state received "${state}"`);
}

Patches required

Snack virtualizes the whole bundling and module systems, and because of that, requires a few patches to some libraries:

  • react-native → To avoid "ViewManager is already loaded" errors
  • react-native-web → To make sure the assets from Snack are loaded properly

Contributing

This package has a few commands to help contributing to this package.

  • yarn lint → Ensures a unified code styling across the code base.
  • yarn test → Runs all unit tests to ensure functionality remains as-expected.

FAQs

Package last updated on 17 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts