0.1.1 • Published 5 years ago

tree-json-generator v0.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Installation

You can install it using yarn or npm

npm install tree-json-generator
# or
yarn add tree-json-generator

Usage

NodeJS:

const TreeGen = require("tree-json-generator");

WebPack:

import * as TreeGen from "tree-json-generator";

Use generate(config) for generating tree

const config = {
  node: { // Node fields, required
    id: "@id()", // Pipes
    parent: "@parent()",
    level: "@level()",
    name: "@randomName()", 
    age: "@randomInteger(14,99)",
    email: "@randomEmail()",
    registered: "@randomBoolean(0.79)",
    child: "@child()" // Child field pointer (not required, if children are not needed)
  },
  rootNodesNumber: 7, // Number of root nodes
  childNodesNumber: [2, 5], // Number of children nodes (from 2 to 5)
  hasChildRate: 0.4, // Probability of children
  maxLevel: 3 // Max nesting
}

let tree = TreeGen.generate(config);

Pipes

This allows you to generate fields values for the nodes.

Warning: custom user functions only assign the same value to all nodes

Remember: Pipes are strings

Prebuilded pipes:

"@id()"

Random node ID

"@child()"

Child field pointer

"@parent()"

Field with parent node ID. (For this field, a field with an "@id" pipe before required.

"@level()"

Node level

"@randomName()"

Random name

"@randomFruit()"

Random fruit

"@randomEmail()"

Random E-Mail

"@randomInteger(min, max)"

Random Integer from range

"@randomBoolean(value = 0.5)"

Random Boolean (value - coefficient)

Config API

node: {}

Required. Contains node fields with pipes.

rootNodesNumber:

Not required. Number (5) or array range (1, 40). Default is 1.

childNodesNumber:

Not required. Number (9) or array range (1, 15). Default is 1.

maxLevel:

Not required. Max node level. Number (3). Default is 3.

hasChildRate:

Not required. The probability that the node has children. From 0 to 1. Default is 1.