Toolset

In this guide, we'll go through the steps to create a new toolset in your SoapJS project. You can create toolsets using CLI commands, interactive forms, or by defining them in a JSON file.

export class DateToolset {
  static getFirstDayOfMonth(date: Date): Date {
    return new Date(date.getFullYear(), date.getMonth(), 1);
  }
  
  static getLastDayOfMonth(date: Date): Date {
    return new Date(date.getFullYear(), date.getMonth() + 1, 0);
  }
  // more date-related utility methods here...
}

Creating new toolset

Using CLI Command with options

To create a new toolsets directly via the CLI, use the following command:

soap new toolset -n "Date" -e "shop" -l "domain" -m "getFirstDayOfMonth(date:Date):Date, getLastDayOfMonth(date:Date):Date"

Options explained:

  • -n: Name of the toolset (e.g., "Date").

  • -e: Endpoint associated with the toolset (e.g., "shop").

  • -l: The layer/folder (e.g., "domain", "data") in which the toolset is to be placed.

  • -m: Method name(s)/ declaration(s), separated by commas.

  • -w: Generate with dependencies included.

  • -f: Force the creation, overwrite files if necessary.

Using Interactive Form

If you prefer to use an interactive form to specify your toolset details, simply run:

Follow the prompts to enter your toolset's details.

Using JSON Configuration

Alternatively, you can define your toolset in a JSON file. Here is an example structure:

Save this to a file, for example api.json, and run:

Options:

  • --json: Path to your JSON configuration file.

  • --no-tests: Skip test generation.

  • --no-rel: Skip generating related files. You can also specify specific groups.

  • --force: Force the creation, overwrite files if necessary.

  • --patch: Add content to the files if they exists.

File Structure

After creating your toolset, your file structure (assuming default configuration settings) should look like this:

This structure helps maintain a clean separation of your domain logic, keeping your use cases organized within the domain/toolsets/ directory.

Last updated