0.0.10 • Published 1 year ago

simple-generate v0.0.10

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

simple-generator

data generator library

npx simple-generate "{\"name\": \"#{random}#\"}"
or 
node ./node_modules/.bin/simple-generate "{\"name\": \"#{random}#\"}"
{"name":"0.6474831139567763"}
  • input
    • json string
      • "{\"name\": \"#{random}#\"}"
    • string
      • "#{random:color}#"
      • "#{random}#"

typescript

import { Generator, number, string, boolean, GenerateFieldType, NumberType } from 'simple-generate';

export type DataType = {
  name: {
    first: string,
    last: string
  },

  age: number,
  age1: number,
  address: {
    city: string,
    street: string
  },
  friends: { name: string, best: boolean, address: string }[]
}

const generator = new Generator();
const data: GenerateFieldType<DataType> = {
  name: {
    first: string`firstName: #{random:1..5;6}# - #{random:string;8}# !!`,
    last: 'lastName: #{random:string;3}#'
  },
  age: number`#{random:1..5;5}#`,
  age1: NumberType('#{random:1..5;5}#'),
  address: {
    city: '#{data:["1","2","3","4"]|random}#',
    street: '#{uuid}#'
  },
  friends: [
    ...new Array(10).fill(0).map(() => ({
      name: 'name: #{random:string}# .',
      best: boolean`#{random:boolean}#`,
      address: () => `${Date.now()} !!`
    }))
  ]
};
const rData = generator.run<DataType>(data);
console.log(rData);
// {
//   name: { first: 'firstName: 313131 - rDCvgpbL !!', last: 'lastName: KDB' },
//   age: 24424,
//           age1: 42211,
//         address: { city: '3', street: '066f-127b-4ec6-bbf8' },
//   friends: [
//     { name: 'name: opfBI .', best: true, address: '1681319622621 !!' },
//     { name: 'name: pvoll .', best: false, address: '1681319622621 !!' },
//     { name: 'name: VfJWI .', best: true, address: '1681319622621 !!' },
//     { name: 'name: VdZYQ .', best: true, address: '1681319622621 !!' },
//     { name: 'name: lEjmE .', best: true, address: '1681319622621 !!' },
//     { name: 'name: eybRF .', best: false, address: '1681319622622 !!' },
//     { name: 'name: yCgSG .', best: true, address: '1681319622622 !!' },
//     { name: 'name: XKPER .', best: false, address: '1681319622622 !!' },
//     { name: 'name: gDeiL .', best: true, address: '1681319622622 !!' },
//     { name: 'name: HMszo .', best: true, address: '1681319622622 !!' }
//   ]
// }
const riData = generator.run<number>(NumberType('#{random:1..5;5}#'));
console.log('random', riData);
// random 42141
const arrayData = Array.from({ length: 5 }, (v, i) => ({ sid: '#{uuid}#', name: '#{random:string;4}#' }));
const arrayResult = generator.run<{name: string, sid: string}[]>(arrayData)
console.log('Array', arrayResult);
// Array [
//         { sid: '637c-c022-73ff-2c59', name: 'Wsnt' },
//                 { sid: '65fc-177c-7e52-ab69', name: 'TGAQ' },
//                 { sid: 'aedb-5d21-692b-2bfe', name: 'GEUB' },
//                 { sid: '5a89-ebd2-4d50-7c7b', name: 'QQEv' },
//                 { sid: '503e-df6a-761d-28d2', name: 'ulWA' }
//         ]

add operator

const generator = new Generator();
generator.setToken('uuid2', () => {
  return new class extends Pipe {
    generate(parameter?: string, prevData?: any): any {
      return RandomUtils.uuid();
    }
  }()
});
const data = generator.run<DataType>({
  street: '#{uuid2}#'
});

// {
//   street: '2a29-167a-6e92-4118'
// }
0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago