Skip to content

Writing Actions

Input Validation

Forge I/O methods include basic validation by default:

  • io.input.email checks for a valid email.
  • io.input.number ensures a valid number is provided.

Custom Validation

To add custom validation, chain the validate method to an I/O method or io.group and pass in a custom function which processes the input and returns

  • return null if valid
  • return string message if invalid

Tip: Validation functions run on your infrastructure alongside the action logic, so you can access any other code as needed.

INFO

Validation functions can be asynchronous.

Example Usage

ts
await io
  .group({
    name: io.input.text("Name"),
    email: io.input.text("Password").validate((email) => {
        if (isPreviousPassword) return "Previously used passwords are not allowed."
    }),
  })
  .validate((data) => {
    if (isInvalidCredentials) return "Invalid credentials."
  });
python
await io.group(
    io.input.text("Username"),
    io.input.text("Password").validate(
        lambda s: "Previously used passwords are not allowed."
        if is_previous_password
        else None
    ),
).validate(
    lambda data: "Invalid credentials"
    if is_invalid_credentials
    else None
)