Faker Helpers
helpers.* commands are supported in the faker path and are intentionally excluded from the domain abstraction.
Use:
helpers.arrayElement(["red", "green", "blue"])
or:
faker.helpers.arrayElement(["red", "green", "blue"])
Do not use:
domain.helpers.arrayElement(["red", "green", "blue"])
That form is invalid and will fail with helpers_not_supported_in_domain.
Common Helper Examples
helpers.fake("Hi, my name is {{person.firstName}} {{person.lastName}}!")
helpers.mustache("Hello {{name}}", { name: "Ada" })
helpers.fromRegExp("[A-Z]{2}[0-9]{3}")
Unsafe Helper Variants
AnyWayData accepts literal helper arguments by default. Literal arguments include strings, numbers, booleans, null, arrays, and plain objects that contain only literal values.
Some Faker helper variants accept JavaScript expressions such as callback functions. These are unsafe because they execute expression-style schema text. Only enable them for schemas you trust.
| Helper command | Safe by default | Unsafe variant |
|---|---|---|
helpers.mustache | helpers.mustache("Hello {{name}}", { name: "Ada" }) | helpers.mustache("Hello {{name}}", { name: () => this.person.firstName() }) |
helpers.maybe | not available in safe mode because its first argument is a callback | helpers.maybe(() => "enabled", { probability: 1 }) |
helpers.multiple | not available in safe mode because its first argument is a callback | helpers.multiple(() => this.person.firstName(), { count: 3 }) |
helpers.uniqueArray | helpers.uniqueArray(["red", "green", "blue"], 2) | helpers.uniqueArray(() => this.person.firstName(), 5) |
Opt in only when the schema source is trusted:
- Web UI: open the Generation settings cog in the Test Data toolbar and enable
allow unsafe faker. - CLI: add
--unsafe-faker-expressions. - REST API: send
unsafeFakerExpressions: truein the/v1/generateor/v1/generate/amendJSON body, or use?unsafeFakerExpressions=truewith/v1/generate/fromschema. - MCP: pass
unsafeFakerExpressions: truein thegenerate_data_from_specoramend_data_from_spectool arguments.
Helper Methods
helpers.arrayElement
helpers.arrayElement(["red", "green", "blue"])
helpers.arrayElements
helpers.arrayElements(["red", "green", "blue"], { min: 1, max: 2 })
helpers.slugify
helpers.slugify("Hello world from AnyWayData")
helpers.replaceSymbols
helpers.replaceSymbols("Order-##??")
helpers.replaceCreditCardSymbols
helpers.replaceCreditCardSymbols("####-####-####-####")
helpers.shuffle
helpers.shuffle(["a", "b", "c"], { inplace: false })
helpers.uniqueArray
helpers.uniqueArray(["red", "green", "blue"], 2)
The callback form helpers.uniqueArray(() => this.word.sample(), 5) is an unsafe variant and requires the unsafe faker opt-in.
helpers.weightedArrayElement
helpers.weightedArrayElement([{ weight: 5, value: "sunny" }, { weight: 2, value: "rainy" }, { weight: 1, value: "snowy" }])
helpers.rangeToNumber
helpers.rangeToNumber({ min: 1, max: 10 })
helpers.maybe
helpers.maybe(() => "present", { probability: 0.8 }) ?? "fallback"
helpers.multiple
helpers.multiple(() => this.person.firstName(), { count: 3 })
Notes
- Many helper functions can return arrays or objects depending on method and inputs.
- Prefer scalar-returning helpers when using grid/display flows that expect single values.
- Some Faker helper callback shapes require the unsafe faker opt-in. Use literal helper arguments unless you explicitly trust the schema source.