jsonfarmer
v0.0.4
Published
Easily generate large amounts of fake JSON with GraphQL syntax
Downloads
39
Maintainers
Readme
JSONFarmer easily generate large amounts of fake JSON with GraphQL syntax
Features
- Generate JSON using graphql syntax.
- Generate random strings, numbers, name, email, city, color, etc
- Generate unlimited depth.
- Need some mock data to test your app.
- Compatible in nodejs and browsers.
- Using Faker.js and Chance.js
Demo
https://jsonfarmer.netlify.com/
JSONFarmer
Install JSONFarmer
npm install jsonfarmer
yarn add jsonfarmer
How to use JSONFarmer
let { generate, savetoFile } = require('jsonfarmer');
const query = /* GraphQL */ `
{
suppliers @repeat(min: 1, max: 1) {
companyName: company
contactName: findName
contactTitle: jobTitle
email: email(domain:"google.com")
city: city
state: state(useAbbr:true)
country: country
phone: phone
fax: phone
products {
create @repeat(min: 5, max: 15){
name: productName
modelNumber:natural(max:999999)
unitPrice: price(symbol:"$" min:50 max:4000)
color: color
material: productMaterial
isDiscontinued: bool
image: image
}
}
}
}
`;
//generate JSON To variable
let generateJSON = generate(query);
//Print generated JSON To conosle
console.dir( generateJSON, { depth:null} );
//Save generated JSON To file
savetoFile(query, './suppliers.json');
Available Function
Arguments are optional
{
zipCode: zipCode(format:string)
city: city #Generate a random city
cityPrefix: cityPrefix
citySuffix: citySuffix
streetName: streetName
streetAddress: streetAddress(useFullAddress:bool)
streetSuffix: streetSuffix
streetPrefix: streetPrefix
secondaryAddress: secondaryAddress
county: county
country: country(full:boolean) #Return a random country. By default, returns only the 2 letter ISO 3166-1 code for the country.
countryCode: countryCode
state: state(useAbbr:bool)
stateAbbr: stateAbbr
latitude: latitude(fixed:number,min:number,max:number) #Generate a random latitude.
longitude: longitude(fixed:number,min:number,max:number) #Generate a random longitude.
color: color(format:string,grayscale:boolean,casing:string) #Return a random color.
department: department
productName: productName
price: price(min:number,max:number,dec:number,symbol:string)
productAdjective: productAdjective
productMaterial: productMaterial
product: product
suffixes: suffixes
companyName: companyName(format:string)
companySuffix: companySuffix
catchPhrase: catchPhrase
bs: bs
catchPhraseAdjective: catchPhraseAdjective
catchPhraseDescriptor: catchPhraseDescriptor
catchPhraseNoun: catchPhraseNoun
bsAdjective: bsAdjective
bsBuzz: bsBuzz
bsNoun: bsNoun
column: column
type: type
collation: collation
engine: engine
past: past(years:number,refDate:date)
future: future(years:number,refDate:date)
between: between(from:date,to:date)
recent: recent(days:number)
soon: soon
month: month #Generate a random month
weekday: weekday(weekday_only:boolean) #Return a weekday
account: account(length:number)
accountName: accountName
mask: mask(length:number,parens:boolean,ellipsis:boolean)
amount: amount(min:number,max:number,dec:number,symbol:string)
transactionType: transactionType
currencyCode: currencyCode
currencyName: currencyName
currencySymbol: currencySymbol
bitcoinAddress: bitcoinAddress
ethereumAddress: ethereumAddress
iban: iban
bic: bic
abbreviation: abbreviation
adjective: adjective
noun: noun
verb: verb
ingverb: ingverb
phrase: phrase
randomize: randomize
slugify: slugify
replaceSymbolWithNumber: replaceSymbolWithNumber
replaceSymbols: replaceSymbols
shuffle: shuffle
mustache: mustache
createCard: createCard
contextualCard: contextualCard
userCard: userCard
createTransaction: createTransaction
image: image
avatar: avatar
dataurl: dataurl(width:number,height:number)
imageUrl: imageUrl(width:number,height:number,category:string,randomize:boolean)
abstract: abstract(width:number,height:number,randomize:boolean)
animals: animals(width:number,height:number,randomize:boolean)
business: business(width:number,height:number,randomize:boolean)
cats: cats(width:number,height:number,randomize:boolean)
food: food(width:number,height:number,randomize:boolean)
nightlife: nightlife(width:number,height:number,randomize:boolean)
fashion: fashion(width:number,height:number,randomize:boolean)
people: people(width:number,height:number,randomize:boolean)
nature: nature(width:number,height:number,randomize:boolean)
sports: sports(width:number,height:number,randomize:boolean)
technics: technics(width:number,height:number,randomize:boolean)
transport: transport(width:number,height:number,randomize:boolean)
dataUri: dataUri(width:number,height:number,randomize:boolean)
email: email(domain:string) #Return a random email with a random domain.
exampleEmail: exampleEmail(firstName:string,lastName:string)
userName: userName(firstName:string,lastName:string)
protocol: protocol
url: url(protocol:string,domain:string,domain_prefix:string,path:string,extensions:string) #Return a random url.
domainName: domainName
domainSuffix: domainSuffix
domainWord: domainWord
ip: ip #Return a random IP Address.
ipv6: ipv6 #Return a random IPv6 Address.
userAgent: userAgent
mac: mac
password: password(len:number,memorable:boolean,pattern:string,prefix:string)
lines: lines(lineCount:number)
word: word(type:string)
words: words(count:number)
sentence: sentence(wordCount:number,range:number)
slug: slug(wordCount:number)
sentences: sentences(sentenceCount:number,separator:string)
paragraph: paragraph(sentenceCount:number)
paragraphs: paragraphs(paragraphCount:number,separator:string)
text: text
firstName: firstName(gender:string)
lastName: lastName(gender:string)
findName: findName(firstName:string,lastName:string,gender:string)
jobTitle: jobTitle
prefix: prefix(full:boolean,gender:string) #Generate a random name prefix
suffix: suffix(full:boolean) #Generate a random name suffix
title: title
jobDescriptor: jobDescriptor
jobArea: jobArea
jobType: jobType
phoneNumber: phoneNumber(format:string)
phoneNumberFormat: phoneNumberFormat(phoneFormatsArrayIndex:number)
phoneFormats: phoneFormats
number: number
arrayElement: arrayElement(array:array)
objectElement: objectElement(object:object,field:mixed)
uuid: uuid
boolean: boolean
locale: locale(region:boolean) #Generate a random ISO-639-1 language code
alphaNumeric: alphaNumeric(count:number)
hexaDecimal: hexaDecimal
fileName: fileName(ext:string,type:string)
commonFileName: commonFileName(ext:string,type:string)
mimeType: mimeType
commonFileType: commonFileType
commonFileExt: commonFileExt(mimeType:string)
fileType: fileType
fileExt: fileExt(count:number)
directoryPath: directoryPath
filePath: filePath
semver: semver
bool: bool(likelihood:number) #Return a random boolean value (true or false).
falsy: falsy(pool:array) #Return a random falsy value (false, null, undefined, 0, NaN, '').
character: character(pool:string,alpha:boolean,numeric:boolean,casing:string,symbols:boolean) #Return a random character.
floating: floating(fixed:number,min:number,max:number) #Return a random floating point number. By default it will return a fixed number of at most 4 digits after the decimal.
integer: integer(min:number,max:number) #Return a random integer. range: -9007199254740991 to 9007199254740991
letter: letter(casing:string) #Return a random letter.
natural: natural(min:number,max:number,exclude:array) #Return a natural number. range: 0 to 9007199254740991
prime: prime(min:number,max:number) #Return a prime number. default range: 0 to 10000
string: string(length:number,pool:string,alpha:boolean,numeric:boolean,casing:string,symbols:boolean) #Return a random string.
paragraph_c: paragraph_c(sentences:number) #Return a random paragraph generated from sentences populated by semi-pronounceable random (nonsense) words.
sentence_c: sentence_c(words:number) #Return a random sentence populated by semi-pronounceable random (nonsense) words.
syllable: syllable #Return a semi-speakable syllable, 2 or 3 letters
word_c: word_c(syllables:number,length:number) #Return a semi-pronounceable random (nonsense) word.
age: age(type:string) #Generate a random age
birthday: birthday(string:boolean,american:boolean,type:string) #Generate a random birthday
cf: cf #Generate a random Italian social security number (Codice Fiscale).
cpf: cpf #Generate a random Brazilian tax id.
first: first(gender:boolean,nationality:string) #Generate a random first name
gender: gender(extraGenders:array) #Generate a random gender
last: last(nationality:string) #Generate a random last name
name: name(middle:boolean,middle_initial:boolean,prefix:boolean,suffix:boolean,gender:boolean,nationality:string) #Generate a random name
ssn: ssn(ssnFour:boolean,dashes:boolean) #Generate a random social security number.
animal: animal(type:string) #Generate a random animal
android_id: android_id #Return a random GCM registration ID.
apple_token: apple_token #Return a random Apple Push Token
bb_pin: bb_pin #Return a random BlackBerry Device PIN
wp7_anid: wp7_anid #Return a random Windows Phone 7 ANID
wp8_anid2: wp8_anid2 #Return a random Windows Phone 8 ANID2
avatar_c: avatar_c(protocol:string,extensions:string,email:string) #Return a URL to a random avatar from Gravatar.
company: company #Return a random company name.
domain: domain(tld:string) #Return a random domain with a random tld.
fbid: fbid #Return a random Facebook id, aka fbid.
google_analytics: google_analytics #Return a random Google Analytics tracking code. Takes the form 'UA-123456-01'
hashtag: hashtag #Return a random hashtag. This is a string of the form '#thisisahashtag'.
klout: klout #Return a random Klout score. Range 1-99.
profession: profession(rank:boolean) #Return a random profession. Rank is false by default.
tld: tld #Return a random tld (Top Level Domain) from the set: ['com', 'org', 'edu', 'gov', 'uk', 'net', 'io']
twitter: twitter #Return a random twitter handle.
address: address(short_suffix:boolean) #Generate a random street address
altitude: altitude(fixed:number,max:number) #Generate a random altitude, in meters.
areacode: areacode #Generate a random area code
coordinates: coordinates(fixed:number) #Generate random coordinates, which are latitude and longitude, comma separated.
depth: depth(fixed:number,min:number) #Generate a random depth, in meters. Depths are always negative
geohash: geohash(length:number) #Generate a random geohash
phone: phone(formatted:boolean,country:string,mobile:string) #Generate a random phone By default conforms to NANP for a proper US phone number.
postal: postal #Return a Canadian Postal code. Returned postal code is valid with respect to the Postal District (first character) and format only.
postcode: postcode #Generate a random (U.K.) postcode. Returned postcode is valid with respect to the Postcode Area (first characters) and format only.
province: province(full:boolean) #Return a random province.
state_c: state_c(full:boolean,territories:boolean,armed_forces:boolean,us_states_and_dc:boolean,country:string) #Return a random state.
street: street(short_suffix:boolean,syllables:number) #Generate a random street
zip: zip(plusfour:boolean) #Generate a random (U.S.) zip code.
ampm: ampm #Return am or pm.
date: date(string:boolean,american:boolean) #Generate a random date By default, returns an actual Date object
hammertime: hammertime #Generate a random hammertime. Hammertime is the name given to a Unix time with milliseconds. Which is the same as saying the number of milliseconds since 1970. It has finer granularity than a normal Unix timestamp and thus is often used in realtime applications.
hour: hour(twentyfour:boolean) #Generate a random hour
millisecond: millisecond #Generate a random millisecond
minute: minute #Generate a random minute
second: second #Generate a random second
timestamp: timestamp #Generate a random timestamp
timezone: timezone #Generate a random timezone object
year: year(min:number,min:number) #Generate a random year
cc: cc(type:string) #Generate a random credit card number. This card number will pass the Luhn algorithm so it looks like a legit card.
cc_type: cc_type(raw:boolean) #Return a random credit card type.
currency: currency #Generate a random currency.
currency_pair: currency_pair #Generate a currency pair. Handy for simulating currency conversions. Guaranteed to return a unique pair (and not the same currency twice).
dollar: dollar(max:number) #Return a random dollar amount.
euro: euro(max:number) #Return a random euro amount
exp: exp(raw:boolean) #Generate a random credit card expiration.
exp_month: exp_month(future:boolean) #Generate a random credit card expiration month.
exp_year: exp_year #Returns a random year between today and 10 years in the future.
coin: coin(extraGenders:array) #Flip a coin!
dice: dice(extraGenders:array) #Return a value equal to the roll of a die.
guid: guid(version:number) #Return a random guid, version 5 by default.
hash: hash(length:number,casing:string) #Return a random hex hash
normal: normal(mean:number,deviation:number) #Return a normally-distributed random variate.
radio: radio(side:string) #Return a random hex hash
rpg: rpg(sum:boolean) #Given an input looking like #d#, where the first # is the number of dice to roll and the second # is the max of each die, returns an array of dice values.
tv: tv(side:string) #Return a random hex hash
validator: validator(extraGenders:array) #Return a random hex hash
}
Acknowledgements & Thanks
- graphql
- graphql-anywhere;
- fakerjs
- chancejs