Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hustcc/miz

๐ŸŽฏ Generate fake data for finetune of AI, Just like a person.
https://github.com/hustcc/miz

fake-data faker finetune finetune-llm mocker

Last synced: about 2 months ago
JSON representation

๐ŸŽฏ Generate fake data for finetune of AI, Just like a person.

Awesome Lists containing this project

README

        

# miz

> (< 800b) Generate fake / mock structured variable in a modern, human-readable way. Just like a person.
>
> ็”จไธ€ไธช็Žฐไปฃ็š„ใ€ๅฏ่ฏป็š„ๆ–นๅผๆฅ็”Ÿๆˆ็”จไบŽๆต‹่ฏ•็š„ๅ‡ๆ•ฐๆฎใ€‚

[![npm Version](https://img.shields.io/npm/v/miz.svg)](https://www.npmjs.com/package/miz)
[![Build Status](https://github.com/hustcc/miz/workflows/build/badge.svg)](https://github.com/hustcc/miz/actions)
[![Coverage Status](https://coveralls.io/repos/github/hustcc/miz/badge.svg?branch=master)](https://coveralls.io/github/hustcc/miz?branch=master)
[![npm License](https://img.shields.io/npm/l/miz.svg)](https://www.npmjs.com/package/miz)

## Features

โšก๏ธ Simple but highly perfection API
๐Ÿฃ Tiny footprint (< 800b)
๐Ÿ‘“ Customize
๐ŸŽƒ 3 types of bundles exposed: ESM, CJS and UMD
๐Ÿ”ฅ TypeScript Typings readily available
๐ŸŽธ Browser and NodeJs supported
๐ŸŽฏ End-to-end testing with GitHub Action

## Install

```bash
$ npm i --save miz
```

## Usage

```ts
import { M } from 'miz'; // ES6

const m = M.arrayOf(M.shape({
id: M.number(10000, 1000000), // id is between 10000 ~ 1000000.
name: M.string(6), // 6 length random string.
sex: M.bool(), // random true or false.
city: M.constant('hz'), // constant value.
work: M.oneOf(['QA', 'FED']) // random from array
}), 2); // list length is 2.

m.mock();
```

Then will get the mock variable like below:

```ts
[{
id: 757852,
name: 'mU7RTB',
sex: false,
city: 'hz',
work: 'FED'
}, {
id: 359987,
name: 'jWuKxX',
sex: true,
city: 'hz',
work: 'FED'
}]
```

## API & Mocker

You can assemble the variable structure arbitrarily by **using the mockers** below:

- **M.bool()**

```ts
M.bool().mock(); // true
```

- **M.number(min[, max = min, fixed = 0])**

```ts
M.number(1, 9, 2).mock(); // 4.71
```

- **M.string([len = 8])**

```ts
M.string(6).mock(); // `Qv_teE`
```

- **M.constant(value)**

```ts
M.constant('hello, hustcc.').mock(); // `hello, hustcc`
M.constant(null).mock(); // got null
```

- **M.oneOf(valueArray)**

```ts
M.oneOf(['hustcc', 'imcxl']).mock(); // hustcc
```

- **M.arrayOf(mocker[, min = 20, max = min])**

```ts
// got an array which contains string, and array length 10 ~ 20.
M.arrayOf(VT.string(4), 10, 20).mock();
```

- **M.shape(mockerObject)**

```ts
// random value object.
M.shape({
name: M.string(10),
id: M.number(10000, 1000000),
sex: M.bool(),
city: 'hz',
}).mock();
```

- **M.apply(Function)**

```ts
// will got number generate by fucntion Math.random()
M.apply(() => Math.random()).mock();
```

> More `Mocker` needed, welcome to `send a pull request`, or put an issue to me.

## License

ISC@[hustcc](https://github.com/hustcc).