Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

global-box

Package Overview
Dependencies
Maintainers
0
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

global-box

A simple key-value store that is truly a singleton. Use this to as an alternative to sticking values into global.

  • 2.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

global-box

Version TypeScript

This package will never have breaking change and keeps everything simple and backward-compatible.

A simple key-value store singleton.

Sometimes you have to do horrible things, like use the global object to share a singleton or some values.

Instead of attaching values to the global object, which can lead to security concerns, this global-box package provides a key-value store which is guaranteed to be a singleton, so you can use it instead of the global object. Only code that are part of the same application bundle can access this store, making it more secured.

Example

package A

import { globalBox } from 'global-box';
const box = globalBox();
box.set('share.config.something', 123);

package B

import { globalBox } from 'global-box';
const box = globalBox();
box.get('share.config.something'); // 123;

Installation

For this to work correctly, there must be only a single copy of global-box in node_modules at all times. (Similar to how there must be only a single copy of react.)

Note: This package will never have breaking change and keeps everything simple and backward-compatible.

  • For application developers, just do a regular installation. If you want to use global-box directly, or have some libraries that depends on it.
npm install global-box
  • For library authors, you must always list this as peerDependencies in package.json. Listing it as dependencies may cause the library consumers to have duplicates in the final application.

In library

{
  "peerDependencies": {
    "global-box": "*"
  },
  "devDependencies": {
    "global-box": "x.x"
  }
}

vs. in application

{
  "dependencies": {
    "global-box": "x.x"
  }
}

Available functions

import { globalBox } from 'global-box';
const box = globalBox();
box.has(globalId);
box.get<string>(globalId); // must specify value type via generic
box.getOrCreate(globalId, factory);
box.remove(globalId);
box.set(globalId);

Credits

Inspired by global-cache

License

Apache-2.0

Keywords

FAQs

Package last updated on 24 Jun 2024

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc