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