Code Monkey home page Code Monkey logo

miz's Introduction

miz

(< 800b) Generate fake / mock structured variable in a modern, human-readable way. Just like a person.

用一个现代的、可读的方式来生成用于测试的假数据。

npm Version Build Status Coverage Status npm License

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

$ npm i --save miz

Usage

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:

[{
	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()
M.bool().mock(); // true
  • M.number(min[, max = min, fixed = 0])
M.number(1, 9, 2).mock(); // 4.71
  • M.string([len = 8])
M.string(6).mock(); // `Qv_teE`
  • M.constant(value)
M.constant('hello, hustcc.').mock(); // `hello, hustcc`
M.constant(null).mock(); // got null
  • M.oneOf(valueArray)
M.oneOf(['hustcc', 'imcxl']).mock(); // hustcc
  • M.arrayOf(mocker[, min = 20, max = min])
// got an array which contains string, and array length 10 ~ 20.
M.arrayOf(VT.string(4), 10, 20).mock(); 
  • M.shape(mockerObject)
// random value object.
M.shape({
  name: M.string(10),
  id: M.number(10000, 1000000),
  sex: M.bool(),
  city: 'hz',
}).mock();
  • M.apply(Function)
// 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.

miz's People

Contributors

hustcc avatar pearmini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

miz's Issues

TODOs here.

一些使用体验的优化:

  • arrayOf 默认长度为 20。
  • string 默认长度为 8。
  • max 长度可以不传,则 max = min。
  • 构造 mocker,使用 .mock() 生成数据,更加语义化。
  • 和 faker.js 联合使用效果更加。
  • MV.string() 支持中文?还是另外开一个 MV.unicode()。
  • 文档对 API 中的每个变量的含义说明。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.