@faykah/core

Data mock library.

Usage no npm install needed!

<script type="module">
  import faykahCore from 'https://cdn.skypack.dev/@faykah/core';
</script>

README

@faykah/core

Data mock library.

Code Style Tests Build Package

:paperclip: Summary

:thinking: Requirements

:arrow_down: Installation

Browser

Script

<!DOCTYPE html>
<html>
  <script src="https://unpkg.com/@faykah/core"></script>
  <script>
    "use strict";

    const {createGenerator, createObjectGenerator} = Faykah;
  </script>
</html>

ECMAScript Module

<!DOCTYPE html>
<html>
  <script type="module">
    "use strict";

    import {createGenerator, createObjectGenerator} from "https://unpkg.com/@faykah/core/lib/index.esm.min.js";
  </script>
</html>

Node

$ npm install --save @faykah/core

CommonJS

const {createGenerator, createObjectGenerator} = require("@faykah/core");

ECMAScript Module

import {createGenerator, createObjectGenerator} from "@faykah/core";

:thinking: Usage

Generator

Classic

// Creates a handy function to pick a random first name
const generateFirstName = createGenerator(["Nelson", "Martin", "Muhammad", "Mahatma", "Dalai"]);

// First name randomly picked
const firstName = generateFirstName();

With libraries

import {firstNames} from "@faykah/first-names-en";

// Creates a handy function to pick a random first name
const generateFirstName = createGenerator(firstNames);

// First name randomly picked
const firstName = generateFirstName();

With middleware function

import {firstNames} from "@faykah/first-names-en";

// Creates a handy function to pick a random first name
const generateFirstName = createGenerator(firstNames);

// Return an uppercase version of the text
const uppercased = text => text.toUpperCase();

// First name randomly picked and uppercased
const name = generateName(uppercased);

Object generator

Classic

// Creates a handy function to pick a random user
const generateUser = createObjectGenerator({
  // Pick a random email
  email: ["first@domain.com", "second@domain.com", "third@domain.com"],

  // Pick a random first name
  firstName: ["first", "second", "third"],

  // Pick a random last name
  lastName: ["fourth", "fifth", "sixth"]
});

// User randomly picked
const user = generateUser();

With libraries

import {emails} from "@faykah/emails-en";
import {firstNames} from "@faykah/first-names-en";
import {lastNames} from "@faykah/last-names-en";

// Create a handy function to pick a random user
const generateUser = createObjectGenerator({
  // Pick a random email
  email: emails,

  // Pick a random first name
  firstName: firstNames,

  // Pick a random last name
  lastName: lastNames
});

// User randomly picked
const user = generateUser();

With middleware functions

import {emails} from "@faykah/emails-en";
import {firstNames} from "@faykah/first-names-en";
import {lastNames} from "@faykah/last-names-en";

// Create a handy function to pick a random user
const generateUser = createObjectGenerator({
  // Pick a random email
  email: emails,

  // Pick a random first name
  firstName: firstNames,

  // Pick a random last name
  lastName: lastNames
});

// Handy function to uppercase a text
const uppercased = text => text.toUpperCase();

// Handy function to lowercase a text
const lowercased = text => text.toLowerCase();

// User randomly picked with transformations
const user = generateUser({
  firstName: lowercased,
  lastName: uppercased
});

With nested configuration

import {emails} from "@faykah/emails-en";
import {firstNames} from "@faykah/first-names-en";
import {lastNames} from "@faykah/last-names-en";

// Create a handy function to pick a random user
const generateUser = createObjectGenerator({
  // Pick a random first name
  firstName: firstNames,

  // Pick a random last name
  lastName: lastNames,

  // Meta user informations
  meta: {
    // Pick a random email
    email: emails
  }
});

// Creates a handy function to uppercase a text
const uppercased = text => text.toUpperCase();

// User randomly picked
const user = generateUser({meta: {email: uppercased}});

With multiple generators

import {emails} from "@faykah/emails-en";
import {firstNames} from "@faykah/first-names-en";
import {lastNames} from "@faykah/last-names-en";

// Create a handy function to pick a random user
const generateUserName = createObjectGenerator({
  // Pick a random first name
  firstName: firstNames,

  // Pick a random last name
  lastName: lastNames
});

// Creates a handy function for generating user informations
const generateUserInformations = createObjectGenerator({
  // Pick a random email
  email: emails
});

// User randomly picked
const user = {
  ...generateUserName(),
  ...generateUserInformations()
};

:bookmark: Changelog

See CHANGELOG.md

:pray: Contributing

See CONTRIBUTING.md

:scroll: License

See LICENSE