open-index/open-npm huggingface dataset:
npm package: @orisomething/browser-storage
Description: Emulating [`Storage`](https://developer.mozilla.org/en-US/docs/Web/API/Storage) API as in browsers. Unlike most implementations, it uses `Proxy` to support most possible usages and not only the explicit function calls. It's good for testing. But it also g
Author: Ori Livni
Latest version: 1.0.0

# Browser Storage

Emulating [`Storage`](https://developer.mozilla.org/en-US/docs/Web/API/Storage) API as in browsers. Unlike most implementations, it uses `Proxy` to support most possible usages and not only the explicit function calls.
It's good for testing. But it also good for environments that you need to polyfill `localStorage` (such as web workers), since it support utilities for injecting and observing properties change.

## Installation

```sh
pnpm install @orisomething/browser-storage
```

## Usuage

```js
import { BrowserStorage } from "@orisomething/browser-storage";

const storage = new BrowserStorage();

// You can (and should) use the Storage API methods
storage.setItem("hello", "world");
storage.getItem("hello") === "world"; // -> true

// But you can also have properties access as in the Storage instances
storage.hello === "world"; // -> true
```

If you need you can observe property changes:

```js
import {
  BrowserStorage,
  subscribePropertyChange,
  subscribeClear,
} from "@orisomething/browser-storage";

const storage = new BrowserStorage();

// Detect property change / remove
subscribePropertyChange(storage, (key, value) => {
  if (value === null) {
    console.log(`${key} was removed`);
  } else {
    console.log(`${key} changed to ${value}`);
  }
});

// Detect `Storage#clear()` call (regardless storage being empty)
subscribeClear(storage, () => {
  console.log("Storage was cleared");
});
```
npm package: @orisomething/no-export-duplications
Description: Find duplications of named exports inside JavaScript project.
Latest version: 0.0.8

# No export duplications

Find duplications of named exports inside JavaScript project.

### Installation

```sh
npm i -g @orisomething/no-export-duplications
```

### Usuage

After installation, when you inside a JavaScript / TypeScript project, just run:

```sh
no-export-duplications
```

You can add path as an argument when you want to check duplications in another project.

### Notes

- Support JavaScript files including Flow (Current compiler `@babel/parser@7.1.6`)
- Support TypeScript files (Current complier is `typescript@3.1.6`)
- List of globs that always ignored:
  - `.test.{js,mjs,ts,tsx}`
  - `.spec.{js,mjs,ts,tsx}`
  - `.d.ts`
  - `.flow`
  - Everything in folders:
    - `node_modules`
    - `flow-typed`
    - `dist`
    - `build`
npm package: @orisomething/reconcile-utils
Description: A library that contains a single utility (in the future maybe more) called `reconcile` which merges two data structures, by returning a new data structure that reflects the changes from the new object while preserving references to unchanged parts of the 
Author: Ori Livni
Latest version: 0.0.2

# Reconcile Utils

A library that contains a single utility (in the future maybe more) called `reconcile` which merges two data structures,
by returning a new data structure that reflects the changes from the new object while preserving references to unchanged parts of the first object.

## Usage

```ts
const current = { x: {} };
const next = { x: {}, y: {} };

const result = reconcile(current, next);

result.x === current.x; // -> true
```

## Supported data structures

- Primitives - `boolean`, `number`, `bigint`, `string`, `symbol`, `null`, and `undefined`
- Plain objects
- `Date`
- `Set` - supporting only values of type primitives
- `Map` - supporting only keys of type primitives

## Installing

```sh
pnpm install @orisomething/reconcile-utils
```