{"id":21594587,"url":"https://github.com/kelreel/tree-json-generator","last_synced_at":"2025-04-10T23:41:58.526Z","repository":{"id":57168054,"uuid":"177627650","full_name":"kelreel/tree-json-generator","owner":"kelreel","description":"Simple JavaScript Tree Generator library","archived":false,"fork":false,"pushed_at":"2024-02-25T18:15:08.000Z","size":186,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T15:06:23.270Z","etag":null,"topics":["fake-data","fake-json","json-generator","mock-data","tree","tree-generator","tree-structure"],"latest_commit_sha":null,"homepage":"https://kanitelk.github.io/tree-json-generator/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kelreel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-25T16:50:55.000Z","updated_at":"2024-02-25T18:15:12.000Z","dependencies_parsed_at":"2022-09-12T07:52:31.471Z","dependency_job_id":null,"html_url":"https://github.com/kelreel/tree-json-generator","commit_stats":null,"previous_names":["kanitelk/tree-json-generator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelreel%2Ftree-json-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelreel%2Ftree-json-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelreel%2Ftree-json-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kelreel%2Ftree-json-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kelreel","download_url":"https://codeload.github.com/kelreel/tree-json-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248317732,"owners_count":21083527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fake-data","fake-json","json-generator","mock-data","tree","tree-generator","tree-structure"],"created_at":"2024-11-24T17:18:54.825Z","updated_at":"2025-04-10T23:41:58.495Z","avatar_url":"https://github.com/kelreel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003cimg height=\"150\" src=\"./docs/icon.png\" /\u003e\u003cbr\u003eTree JSON Generator\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/kamranahmedse/driver.js/blob/master/license\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://npmjs.org/package/tree-json-generator\"\u003e\n    \u003cimg src=\"https://badge.fury.io/js/tree-json-generator.svg\" alt=\"version\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eMore than 150 000 nodes per second!\u003c/b\u003e\u003c/br\u003e\n  \u003cb\u003eSimple library for generating JSON trees\u003c/b\u003e\u003c/br\u003e\n  \u003csub\u003eNo external dependency, highly customizable \u003csub\u003e\n\u003c/p\u003e\n  \n\u003ch2 align=\"center\"\u003e\n  \u003ca href=\"https://kanitelk.github.io/tree-json-generator/\"\u003eDEMO\u003c/a\u003e\n\u003c/h2\u003e\n\n## Installation\n\nYou can install it using `yarn` or `npm`\n\n```bash\nnpm install tree-json-generator\n# or\nyarn add tree-json-generator\n```\n\n![](./docs/split.png)\n\n## Usage\n\n\u003cb\u003eNodeJS:\u003c/b\u003e\n\n```javascript\nconst TreeGen = require(\"tree-json-generator\");\n```\n\n\u003cb\u003eWebPack:\u003c/b\u003e\n\n```javascript\nimport * as TreeGen from \"tree-json-generator\";\n```\n\n\u003cb\u003eUse `generate(config)` for generating tree\u003c/b\u003e\n\n```javascript\nconst config = {\n  node: { // Node fields, required\n    id: \"@id()\", // Pipes\n    parent: \"@parent()\",\n    level: \"@level()\",\n    name: \"@randomName()\", \n    age: \"@randomInteger(14,99)\",\n    email: \"@randomEmail()\",\n    registered: \"@randomBoolean(0.79)\",\n    child: \"@child()\" // Child field pointer (not required, if children are not needed)\n  },\n  rootNodesNumber: 7, // Number of root nodes\n  childNodesNumber: [2, 5], // Number of children nodes (from 2 to 5)\n  hasChildRate: 0.4, // Probability of children\n  maxLevel: 3 // Max nesting\n}\n\nlet tree = TreeGen.generate(config);\n```\n\n![](./docs/split.png)\n\n## Pipes\n\nThis allows you to generate fields values for the nodes.\n\n\u003cb\u003eWarning:\u003c/b\u003e custom user functions only assign the same value to all nodes\n\n\u003cb\u003eRemember:\u003c/b\u003e Pipes are strings\n\nPrebuilded pipes:\n\n\u003cb\u003e`\"@id()\"`\u003c/b\u003e \n\nRandom node ID\n\n\u003cb\u003e`\"@child()\"`\u003c/b\u003e \n\nChild field pointer\n\n\u003cb\u003e`\"@parent()\"`\u003c/b\u003e \n\nField with parent node ID. (For this field, a field with an `\"@id\"` pipe before required.\n\n\u003cb\u003e`\"@level()\"`\u003c/b\u003e \n\nNode level\n\n\u003cb\u003e`\"@randomName()\"`\u003c/b\u003e \n\nRandom name\n\n\u003cb\u003e`\"@randomFruit()\"`\u003c/b\u003e \n\nRandom fruit\n\n\u003cb\u003e`\"@randomEmail()\"`\u003c/b\u003e \n\nRandom E-Mail\n\n\u003cb\u003e`\"@randomInteger(min, max)\"`\u003c/b\u003e \n\nRandom Integer from range\n\n\u003cb\u003e`\"@randomBoolean(value = 0.5)\"`\u003c/b\u003e \n\nRandom Boolean (value - coefficient)\n\n![](./docs/split.png)\n\n## Config API\n\n\u003cb\u003e`node: {}`\u003c/b\u003e \n\nRequired. Contains node fields with pipes.\n\n\u003cb\u003e`rootNodesNumber:`\u003c/b\u003e \n\nNot required. Number (5) or array range ([1, 40]). Default is 1.\n\n\u003cb\u003e`childNodesNumber:`\u003c/b\u003e \n\nNot required. Number (9) or array range ([1, 15]). Default is 1.\n\n\u003cb\u003e`maxLevel:`\u003c/b\u003e \n\nNot required. Max node level. Number (3). Default is 3.\n\n\u003cb\u003e`hasChildRate:`\u003c/b\u003e \n\nNot required. The probability that the node has children. From 0 to 1. Default is 1.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkelreel%2Ftree-json-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkelreel%2Ftree-json-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkelreel%2Ftree-json-generator/lists"}