open-index/open-npm huggingface dataset:
npm package: @kylerkrenzke/react-scripts
Description: Configuration and scripts for Create React App.
Latest version: 4.0.4

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebook/create-react-app).<br>
Please refer to its documentation:

- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.
npm package: @kylescudder/strings
Description:  String utilities for Node.js and JavaScript
Author: Marcus Pöhls
Latest version: 1.29.2

<div align="center">
  <a href="https://superchargejs.com">
    <img width="471" style="max-width:100%;" src="https://superchargejs.com/images/supercharge-text.svg" />
  </a>
  <br/>
  <br/>
  <p>
    <h3>Strings</h3>
  </p>
  <p>
    String utilities for Node.js.
  </p>
  <br/>
  <p>
    <a href="#installation"><strong>Installation</strong></a> ·
    <a href="#Docs"><strong>Docs</strong></a> ·
    <a href="#usage"><strong>Usage</strong></a>
  </p>
  <br/>
  <br/>
  <p>
    <a href="https://www.npmjs.com/package/@supercharge/strings"><img src="https://img.shields.io/npm/v/@supercharge/strings.svg" alt="Latest Version"></a>
    <a href="https://www.npmjs.com/package/@supercharge/strings"><img src="https://img.shields.io/npm/dm/@supercharge/strings.svg" alt="Monthly downloads"></a>
  </p>
  <p>
    <em>Follow <a href="http://twitter.com/marcuspoehls">@marcuspoehls</a> and <a href="http://twitter.com/superchargejs">@superchargejs</a> for updates!</em>
  </p>
</div>

---

## Introduction
The `@supercharge/strings` package provides chainable string utilities for Node.js and JavaScript. It’s a wrapper around JavaScript’s global `String` class providing a handful of useful methods, like `.title()`, `.strip()`, `.camel()`, and so on.


## Installation

```
npm i @supercharge/strings
```


## Docs
Find all the [details for `@supercharge/strings` in the extensive Supercharge docs](https://superchargejs.com/docs/strings).


## Usage
Using `@supercharge/strings` is pretty straightforward. Pass a string to the imported Function and chain your desired methods to transform to string value to your needs.

For example, you may want to trim a string and then title-case it:

```js
const Str = require('@supercharge/strings')

const title = Str('  Supercharge is sweet!').trim().title().get()

// title: "Supercharge Is Sweet!"
```

For every method in the chain that would return a string, the package returns an instance of iteself. This way, you can chain further methods. Call `.get()` to retrieve the actual JavaScript string.


## Contributing
Do you miss a string function? We very much appreciate your contribution! Please send in a pull request 😊

1.  Create a fork
2.  Create your feature branch: `git checkout -b my-feature`
3.  Commit your changes: `git commit -am 'Add some feature'`
4.  Push to the branch: `git push origin my-new-feature`
5.  Submit a pull request 🚀


## License
MIT © [Supercharge](https://superchargejs.com)

---

> [superchargejs.com](https://superchargejs.com) &nbsp;&middot;&nbsp;
> GitHub [@supercharge](https://github.com/supercharge) &nbsp;&middot;&nbsp;
> Twitter [@superchargejs](https://twitter.com/superchargejs)
npm package: @kyleshevlin/eslint-plugin
Description: An ESLint rule to encourage using custom hook abstractions
Author: Kyle Shevlin
Latest version: 1.3.0

# @kyleshevlin/eslint-plugin

This is my personal collection of ESLint rules. It contains the following rules:

- `prefer-custom-hooks`
- `no-skipped-or-focused-tests`

Refer to each rule's READMEs in the `/docs/rules` directory.

## Installation

Install the plugin:

```
npm install --save-dev @kyleshevlin/eslint-plugin
```

Or

```
yarn add -D @kyleshevlin/eslint-plugin
```

And configure it in your ESLint config:

```javascript
{
  plugins: ['@kyleshevlin'],
  rules: [
    "@kyleshevlin/prefer-custom-hooks": "error",
    "@kyleshevlin/no-skipped-or-focused-tests": "error",
  ]
}
```
npm package: @kyleshevlin/heap
Description: a basic, customizable heap implementation in TypeScript
Author: Kyle Shevlin
Latest version: 0.2.0

# heap

Just a basic, customizable heap implementation in TypeScript

## Usage

```typescript
import { Heap, MinHeap, MaxHeap } from '@kyleshevlin/heap'

const min = new MinHeap()
const max = new MinHeap()

type Task = {
  priority: number
}

const custom = new Heap<Task>((a, b) => a.priority < b.priority)
```

## API

- `constructor<T>(comparator: (a: T, b: T) => boolean)`
- `clear`
- `insert(value: T)`
- `insertMany(values: T[])`
- `extract`
- `peek`
- `size`

## Tips

For min-heaps, your `comparator` should return `true` when `a < b`, and vice versa for max heaps.
npm package: @kyleshevlin/kase
Description: A simple type-safe pattern matcher
Author: Kyle Shevlin
Latest version: 0.2.1

# @kyleshevlin/kase

A simple, type-safe pattern-ish matching function.

```javascript
const result = kase(person.age)
  .when(1, "You're just a baby!")
  .when(x => x < 18, "You've gotten so big!")
  .when(x => x < 65, "So how's work?")
  .when(
    x => x < 90,
    age => `Holy smokes, You don't look a day over ${age - 10}!`
  )
  .otherwise(() => 'Uhh, do you even have a pulse?')
```

## Installation

```
npm install @kyleshevlin/kase
```

## API

**Note**: It might be to your benefit to take a look at the types in `kase.ts`.

### `kase`

```typescript
function kase(input) {}
```

`kase` takes an `input` which is any value, and stores it to be compared to the `pattern`s passed to the `when` and `otherwise` methods.

### `when`

```typescript
function when(pattern, resolution) {}
```

`when` receives a `pattern` to compare to the `input`. A `pattern` can either be a value of the same type as `input`, or a predicate function that receives the `input` as an argument. If the `pattern` argument is a value, it is matched strictly against the `input` with `===`.

`when` also receives a `resolution`. This can be a value or a function that receives the argument passed to `kase` and returns the desired result. The first `when` to match is the result of the `kase` chain.

### `otherwise`

```typescript
function otherwise(resolution) {}
```

`otherwise` is how we provide a default result. It receives a `resolution` exactly like `when`. `otherwise` will return the result of the `resolution` as the result of the entire chain.

### `end`

```typescript
function end() {}
```

If no `otherwise` is provided, `end` is necessary to complete the chain and return the result. Like so:

```javascript
const result = kase(Math.random())
  .when(x => x <= 0.33, 'low')
  .when(x => x <= 0.67, 'mid')
  .when(x => x <= 0.99, 'high')
  .end() // would return `undefined` in the cases where x is > .99
```
npm package: @kyleshevlin/layout
Description: Basic React layout components
Author: Kyle Shevlin
Latest version: 0.6.3

# `@kyleshevlin/layout`

Just some basic layout components I use over & over.

- `Flex` & `FlexItem`
- `Stack` & `Row` (for when I get lazy with `Flex`)
- `Margin`
- `ShiftBy`

It also exports a `SpacingProvider` and uses a `useSpacing` hook under the hood. This allows you to modify gaps and margins with a function. For example.

```tsx
// If the `value` is a number, treat it as a factor and multiply by 8(px)
const spacing = (value: string | number) => {
  return typeof value === 'number' ? value * 8 : value
}

function App() {
  return (
    <SpacingProvider spacing={spacing}>
      {/* gap={2} will create 16px of spacing between items */}
      <Flex direction="column" gap={2}>
        <h3>Hello!</h3>
        <p>World</p>
      </Flex>
    </SpacingProvider>
  )
}
```
npm package: @kyleshevlin/set-utils
Description: a set of typesafe set utility functions
Author: Kyle Shevlin
Latest version: 0.1.1

# set-utils

Just a set of set utility functions. Oh, and they're typesafe.

## API

- `setOf`
- `union`
- `intersection`
- `difference`
- `symmetricDifference`
- `isSubset`
- `isSuperset`
- `isDisjoint`
npm package: @kyleshevlin/tailwind-layout
Description: Basic React layout components for Tailwind
Author: Kyle Shevlin
Latest version: 0.1.0

# `@kyleshevlin/tailwind-layout`

A version of my `@kyleshevlin/layout` library for use with Tailwind.

- `Flex` & `FlexItem`
- `Stack` & `Row` (for when I get lazy with `Flex`)
- `Margin`
- `ShiftBy`
npm package: @kyleshockey/object-assign-deep
Description: Allows deep cloning of plain objects that contain primitives, nested plain objects, or nested plain arrays.
Author: Josh Cole
Latest version: 0.4.2

This is a fork of [Object-Assign-Deep](https://npmjs.org/package/object-assign-deep), modified to generate code that is compatible with Node.js 4+ and IE11+.