open-index/open-npm huggingface dataset:
npm package: @figliolia/ts-packager
Description: A set of packaging tools for building typescript libraries for Common JS and ES Modules
Author: Alex Figliolia
Latest version: 1.2.6

# ts-packager
A no-configuration necessary CLI for typescript package owners that generates corresponding builds for Common JS and ES Modules. Fire up the CLI and ship your code sanely!

### Installation
```bash
npm i -D @figliolia/ts-packager && npm link
yarn add -D @figliolia/ts-packager && npm link
```

### Background
For several years the migration to ES Modules has been a large pain point for package maintainers. This package is designed to take care of the interoperability by allowing you to distribute your build for both Common JS and ESM. 

The CLI will read from your project's TS Config, then override the appropriate options at build time to generate each build. It'll also take care of modifying your package.json file to appropriately distribute these builds.

Let's no longer distribute packages that break the projects of our peers!

### Basic Usage
To list options, run
```bash
npx ts-packager --help
```
#### Building for ES Modules and Common JS

```bash
npx ts-packager --command build-all --project <your project directory> -entrypoint <your includes directory>
```
By default, the `--project` and `--entrypoint` flag will be set to the current working directory

#### Building for ES Modules

```bash
npx ts-packager --command build-esm
```

#### Building for Common JS

```bash
npx ts-packager --command build-common
```

#### To Modify your package.json for distributing each build

```bash
npx ts-packager --command fix-package-file
```
When executing `--command build-all` your package file will automatically be modified to appropriately distribute your builds
npm package: @figliolia/type-safe-storage
Description: A type-safe wrapper around React Native's Async Storage that re-implements the entire API
Author: Alex Figliolia
Latest version: 1.0.5

# Type Safe Storage
A type-safe wrapper around React Native's Async Storage that re-implements the entire API. 

Using this library *all* `AsyncStorage` API methods provide typescript type-validation for all setters and merges, as well as typed-return values for all getters.

## Getting Started
```bash
npm i -S @figliolia/type-safe-storage
# or
yarn add @figliolia/type-safe-storage
```

## Basic Usage
```typescript
import { TypeSafeStorage } from "@figliolia/type-safe-storage";

export const AsyncStorage = new TypeSafeStorage<{
  userID: number;
  username: string;
  friendsList: number[];
  connections: Record<string, number>;
}>();

const userID = await AsyncStorage.getItem("userID");
// number | null

const unknown = await AsyncStorage.getItem("unknown-key");
// Fails typescript validation

const [userID, friendsList] = await AsyncStorage.multiGet([
  "userID",
  "friendsList"
]);
// [number | null, number[] | null]
const [userID, unknown] = await AsyncStorage.multiGet([
  "userID",
  "unknown"
]);
// Fails typescript validation

```
### API
#### `clear`

Erases *all* `AsyncStorage` for all clients, libraries, etc. You probably don't want to call this; use `removeItem` or `multiRemove` to clear only your app's keys.

#### `flushGetRequests`
Flushes any pending requests using a single batch call to get the data

#### `getAllKeys`

Gets *all* keys known to your app; for all callers, libraries, etc.

#### `getItem`

Fetches an item for a `key` and invokes a callback upon completion.

#### `mergeItem`

Merges an existing `key` value with an input value, assuming both values are valid JSON.

#### `multiGet`

This allows you to batch the fetching of items given an array of `key` inputs. Your callback will be invoked with an array of corresponding
key-value pairs found.

#### `multiMerge`

Batch operation to merge in existing and new values for a given set of keys. This assumes that the values are valid JSON.

#### `multiRemove`

Deletes each of the keys provided to the method

#### `multiSet`

Use this as a batch operation for storing multiple key-value pairs. When
the operation completes you'll get a single callback with any errors.

#### `removeItem`

Removes an item for a `key` and invokes the provided callback upon completion.


#### `setItem`

Sets the value for a `key` and invokes the provided callback upon completion.