basura
v3.0.2
Published
Generate random JavaScript
Downloads
17
Maintainers
Readme
Basura
Generate trash JavaScript. This is useful for testing libraries and APIs.
The strings that are generated are random, but every string comes from a single Unicode script, so they at least look vaguely interesting.
Install
npm install basura
Command line
Usage: basura [options]
Generate a random JavaScript object
Options:
-V, --version output the version number
-a, --arrayLength <number> Maximum array/object size (default: 10)
-b, --noBoxed Do not generate boxed types, like
String.
-c, --cborSafe Do not generate types that break CBOR.
-d, --depth <number> Maximum depth. (default: 5)
-e, --edgeFreq <number> Edge case frequency. (default: 0.1)
-i, --import <file> Import the given file, and use its
default export as an additional type
generator. Can be specified multiple
times. (default: [])
-j, --json Output JSON, not generating any types
that will not fit.
-o, --output <file> File to output.
-s, --stringLength <number> Maximum string length. (default: 20)
-t, --type <type> Generate this specific type.
-T, --listTypes List all supported types, then exit.
-h, --help display help for command
Examples:
$ basura -t object
$ basura -t Array -o array.js
Supported Types
- AggregateError
- Array
- ArrayBuffer
- BigInt64Array
- BigUint64Array
- Boolean
- Buffer
- DataView
- Date
- Error
- EvalError
- Float32Array
- Float64Array
- Generator
- Int16Array
- Int32Array
- Int8Array
- Map
- Number
- Object
- Promise
- Proxy
- RangeError
- ReferenceError
- RegExp
- Set
- SharedArrayBuffer
- String
- SyntaxError
- TypeError
- URIError
- URL
- Uint16Array
- Uint32Array
- Uint8Array
- Uint8ClampedArray
- WeakMap
- WeakRef
- WeakSet
- bigint
- boolean
- function
- integer
- number
- string
- symbol
- undefined
Adding new types
Pass new types in the types
option, or from the command line, use --import
<moduleFile>
. See an example.
API
Full API docs are available.
import {Basura} from 'basura'
// The default options. No need to pass anything in if you like these
const opts = {
arrayLength: 10, // maximum size of arrays and objects
cborSafe: false, // generate only CBOR-safe types?
depth: 5, // How deep to go
edgeFreq: 0.1, // How often to prefer edge cases?
jsonSafe: false, // generate only JSON-safe types?
noBoxed: false, // ignore boxed types, like String?
output: false, // add custom inspect functions that make output parseable JS?
scripts: [], // Array of script names to limit output to. Defaults to all
stringLength: 20, // Maximum string and Buffer length, in codepoints
types: {}, // Extra types to generate. Pass in `{Date: null}` to not generate Dates
}
const b = new Basura(opts)
console.log(b.generate_Date()) // Example output: 2011-02-16T11:28:41.539Z
console.log(b.generate()) // Some possibly-large chunk of JS
See some example output in the examples directory.