Usage
Generate data based on data shape.
const schema = {
"{env}": {
users: {
"{userID}": {
comment_count: "number",
username: "string",
is_verified: "boolean",
created_at: "timestamp"
}
},
posts: {
"{postID}": {
post_title: "string",
post_data: (faker, key) => {
// return faker.random.words(5)
return key.split("/").join("-") + ":post_data";
},
// Can be async function !
vote_counts: async (faker, key) => {
const result = await doSomethingAsync()
return result;
}
author_id: "{userID}",
created_at: "timestamp"
}
},
comments: {
"{postID}": {
"{commentID}": {
value: "π",
userID: "{userID}"
}
}
}
}
};
const { generateJSON } = require("json-data-generator");
(async () => {
const { keys, values, tree } = await generateJSON(schema);
console.log({ keys, values, tree });
})()
// Will Output :
Object {
"keys": Array [
"G_K_dsy6q.users.G_K_sll5g.comment_count",
"G_K_dsy6q.users.G_K_sll5g.username",
"G_K_dsy6q.users.G_K_sll5g.is_verified",
"G_K_dsy6q.users.G_K_sll5g.created_at",
"G_K_dsy6q.posts.G_K_5pn02.post_title",
"G_K_dsy6q.posts.G_K_5pn02.post_data",
"G_K_dsy6q.posts.G_K_5pn02.author_id",
"G_K_dsy6q.posts.G_K_5pn02.created_at",
"G_K_dsy6q.comments.G_K_5pn02.G_K_6mami.value",
"G_K_dsy6q.comments.G_K_5pn02.G_K_6mami.userID",
],
"tree": Object {
"G_K_dsy6q": Object {
"comments": Object {
"G_K_5pn02": Object {
"G_K_6mami": Object {
"userID": "G_K_sll5g",
"value": "π",
},
},
},
"posts": Object {
"G_K_5pn02": Object {
"author_id": "G_K_sll5g",
"created_at": 24761311291,
"post_data": "G_K_dsy6q.posts.G_K_5pn02.post_data:post_data",
"post_title": "Coordinator Multi-channelled",
},
},
"users": Object {
"G_K_sll5g": Object {
"comment_count": 29122,
"created_at": 9213076313,
"is_verified": false,
"username": "Namibia enable",
},
},
},
},
"values": Array [
29122,
"Namibia enable",
false,
9213076313,
"Coordinator Multi-channelled",
"G_K_dsy6q.posts.G_K_5pn02.post_data:post_data",
"G_K_sll5g",
24761311291,
"π",
"G_K_sll5g",
],
}Generate data based on data shape and key reducers.
Use the cli.
Create a js file that exports `schema`, (and optionally `keyReducers` and `count`)
Last updated