0.2.1 • Published 4 years ago

@mockpiler/core v0.2.1

Weekly downloads
29
License
MIT
Repository
github
Last release
4 years ago

MockPiler

Generate mock data using a dead simple JSON-like language.

Support: It should work for any JavaScript runtime like Deno, Node.js and browsers.

Installation

$ npm install @mockpiler/core

# using yarn

$ yarn add @mockpiler/core

Example

import mock from '@mockpiler/core'

const context = {
  name: 'John Doe',
  randomAge () {
    return Math.floor(Math.random() * 100)
  },
  randomFruit () {
    const fruits = [
      'watermelon',
      'strawberry',
      'pineapple',
      'apple'
    ]

    return fruits[Math.floor(Math.random() * fruits.length)]
  }
}

const people = mock(context)`
  [
    (2) {
      name
      age: randomAge
      favoriteFruits: [
        (3) randomFruit
      ]
    }
  ]
`

// or using interpolation

const people = mock`
  [
    (2) {
      name: ${context.name}
      age: ${context.randomAge}
      favoriteFruits: [
        (3) ${context.randomFruit}
      ]
    }
  ]
`

console.log(people)

/**
 * Example output:
 * 
 * [
 *   {
 *     name: 'John Doe',
 *     age: 33,
 *     favoriteFruits: [
 *       'watermelon',
 *       'pineapple',
 *       'apple'
 *     ]
 *   },
 *   {
 *     name: 'John Doe',
 *     age: 56,
 *     favoriteFruits: [
 *       'strawberry',
 *       'pineapple',
 *       'apple'
 *     ]
 *   }
 * ]
 */

Roadmap / Ideas

  • Implement a lexer for codeframes
  • Make an integration with libs like Faker.js
  • Support for spread operators e.g. { ...spread }