open-index/open-npm huggingface dataset:
npm package: @jeemyeong/dataclass
Description: `dataclass` is like a data class from kotlin
Author: @jeemyeong
Latest version: 1.1.1

# dataclass [![npm version](https://badge.fury.io/js/%40jeemyeong%2Fdataclass.svg)](https://badge.fury.io/js/%40jeemyeong%2Fdataclass)

`dataclass` is like a data class from kotlin

### Features

- Written in TypeScript.

## Installation

```sh
$ npm i @jeemyeong/dataclass
```

## Usage
```typescript
class Person {
  name!: string;
  language: string | null = null;
  public constructor(initializer: Initializer<Person>) {
    Object.assign(this, initializer);
  }
}

const p1 = new Person({
  name: "Leo"
}); // OK

const p2 = new Person({
  name: "Leo",
  language: "Korean",
}); // OK

const p3 = new Person({
  name: "Leo",
  age: 30 // error
});
```
npm package: @jeemyeong/redux-confirm
Description: Redux Confirm
Author: @jeemyeong
Latest version: 1.0.1

# redux-confirm [![npm version](https://badge.fury.io/js/%40jeemyeong%2Fredux-confirm.svg)](https://badge.fury.io/js/%40jeemyeong%2Fredux-confirm)

`redux-confirm` is a Redux middleware for user to control specific actions

### Features

- Written in TypeScript.

## Installation

```sh
$ npm i @jeemyeong/redux-confirm
```

## Configuration

```js
import { applyMiddleware, compose, createStore } from 'redux';
import reduxConfirm from '@jeemyeong/redux-confirm';

import reducer from './store/reducer';

// Create the Redux store.
const store = createStore(
  reducer,
  applyMiddleware(reduxConfirm())
);
```

You may also pass options to the `reduxConfirm` function.

#### Available options

```typescript
interface Options {
  confirm?: () => boolean | Promise<boolean>;
  filter?: (action: Action) => boolean | Promise<boolean>;
  rejectedCallback?: () => void;
}
```
npm package: @jeemyeong/redux-intercept
Description: Redux Intercept
Author: @jeemyeong
Latest version: 1.0.1

# redux-intercept [![npm version](https://badge.fury.io/js/%40jeemyeong%2Fredux-intercept.svg)](https://badge.fury.io/js/%40jeemyeong%2Fredux-intercept)

`redux-intercept` is a Redux middleware for user to control specific actions

### Features

- Written in TypeScript.

## Installation

```sh
$ npm i @jeemyeong/redux-intercept
```

## Configuration

```js
import { applyMiddleware, compose, createStore } from 'redux';
import reduxIntercept from '@jeemyeong/redux-intercept';

import reducer from './store/reducer';

const interceptOption = {
  filter: (action) => {
    return !action.type.match(PERMIT_REGEX)
  }
}


// Create the Redux store.
const store = createStore(
  reducer,
  applyMiddleware(reduxIntercept(interceptOption))
);
```

You should pass options to the `reduxIntercept` function.

#### Available options

```typescript
interface Options {
  filter: (action: Action) => boolean | Promise<boolean>;
  rejectedCallback?: (action: Action) => void;
}
```