{"id":48271,"library":"json-schema-faker","title":"json-schema-faker","description":"Generate valid JSON mock data from JSON Schema definitions. v0.6.2 supports JSON Schema 2019-09 and 2020-12 with deterministic output via seeded PRNG (Mulberry32). Zero production dependencies. Key differentiators: built-in format generators (email, uuid, etc.), extension support for faker/chance, custom keywords via define(), and sequential auto-incrementing seeds via createGenerator().","status":"active","version":"0.6.2","language":"javascript","source_language":"en","source_url":"https://github.com/json-schema-faker/json-schema-faker","tags":["javascript","json","json-schema","faker","mock","generator","fake-data","test-data","json-schema-faker","typescript"],"install":[{"cmd":"npm install json-schema-faker","lang":"bash","label":"npm"},{"cmd":"yarn add json-schema-faker","lang":"bash","label":"yarn"},{"cmd":"pnpm add json-schema-faker","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM-only since v0.6.0; CommonJS require works but is discouraged. The function returns a Promise.","wrong":"const generate = require('json-schema-faker').generate","symbol":"generate","correct":"import { generate } from 'json-schema-faker'"},{"note":"Named export, not default. No subpath exports.","wrong":"import { createGenerator } from 'json-schema-faker/cjs'","symbol":"createGenerator","correct":"import { createGenerator } from 'json-schema-faker'"},{"note":"Named export, not default.","wrong":"import registerFormat from 'json-schema-faker'","symbol":"registerFormat","correct":"import { registerFormat } from 'json-schema-faker'"},{"note":"Used for custom keyword extensions. The callback receives (value, schema, ctx).","wrong":"","symbol":"define","correct":"import { define } from 'json-schema-faker'"},{"note":"No subpath exports; all are top-level.","wrong":"import { createRemoteResolver } from 'json-schema-faker/remote'","symbol":"createRemoteResolver","correct":"import { createRemoteResolver } from 'json-schema-faker'"}],"quickstart":{"code":"import { generate } from 'json-schema-faker';\n\nconst schema = {\n  type: 'object',\n  properties: {\n    name: { type: 'string', minLength: 2 },\n    age: { type: 'integer', minimum: 0, maximum: 120 },\n    email: { type: 'string', format: 'email' },\n    tags: { type: 'array', items: { type: 'string' }, maxItems: 3 }\n  },\n  required: ['name', 'email']\n};\n\nconst data = await generate(schema);\nconsole.log(data);\n// Example: { name: 'John', age: 50, email: 'john.doe@example.com', tags: ['tag1', 'tag2'] }","lang":"typescript","description":"Generate a mock object with string, integer, email, and array properties from a JSON Schema."},"warnings":[{"fix":"Use import syntax instead of require(). If using CommonJS, use dynamic import: const { generate } = await import('json-schema-faker');","message":"Requires ESM imports starting from v0.6.0","severity":"breaking","affected_versions":">=0.6.0"},{"fix":"Always await: const data = await generate(schema);","message":"generate() returns a Promise, not a synchronous value. Many users forget to await.","severity":"gotcha","affected_versions":">=0.5.0"},{"fix":"Pin exact version and regenerate snapshots on upgrades.","message":"Seeded generation may change between minor versions; do not rely on exact output for tests across versions.","severity":"gotcha","affected_versions":"*"},{"fix":"Use built-in formats directly; registerFormat is only needed for custom formats not in the standard list.","message":"Custom registerFormat for standard formats (email, uuid) is redundant; they are built-in since v0.5.0.","severity":"deprecated","affected_versions":">=0.5.0"},{"fix":"If you need the same output repeatedly, create a new generator with the same seed each time.","message":"When using createGenerator(), successive calls use auto-incrementing seeds; do not re-seed within the same generator instance.","severity":"gotcha","affected_versions":">=0.6.0"}],"env_vars":null,"search_vec":"'-09':19 '-12':22 '2019':18 '2020':21 'auto':54 'auto-incr':53 'built':36 'built-in':35 'creategener':58 'custom':47 'data':9,69,72 'defin':50 'definit':13 'depend':32 'determinist':24 'differenti':34 'email':40 'etc':42 'extens':43 'fake':68 'fake-data':67 'faker':4,64,76 'faker/chance':46 'format':38 'generat':5,39,66 'increment':55 'javascript':59 'json':2,7,11,16,60,62,74 'json-schema':61 'json-schema-fak':1,73 'key':33 'keyword':48 'mock':8,65 'mulberry32':29 'output':25 'prng':28 'product':31 'schema':3,12,17,63,75 'seed':27,56 'sequenti':52 'support':15,44 'test':71 'test-data':70 'typescript':77 'uuid':41 'v0.6.2':14 'valid':6 'via':26,49,57 'zero':30","created_at":"2026-06-07T16:55:46.284760+00:00","updated_at":"2026-06-07T16:55:46.284760+00:00","problems":[{"fix":"Use import { generate } from 'json-schema-faker'","cause":"Using default import instead of named import.","error":"TypeError: generate is not a function"},{"fix":"Add await: const data = await generate(schema);","cause":"Missing await before generate() call.","error":"Error: generate(...) returned a Promise, not a value"},{"fix":"Add type:module to package.json or use dynamic import: const { generate } = await import('json-schema-faker');","cause":"Using ESM import in a CommonJS script without type:module.","error":"SyntaxError: Cannot use import statement outside a module"},{"fix":"Run npm install json-schema-faker","cause":"Package not installed.","error":"Error: Cannot find module 'json-schema-faker'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://json-schema-faker.js.org/","github":"https://github.com/json-schema-faker/json-schema-faker","docs":null,"changelog":null,"pypi":null,"npm":"json-schema-faker","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}