Skip to main content
Version: 2.6.0 (latest)

Code Generation

Create a project#

foal createapp my-app

Create a new directory with all the required files to get started.

If you specify the flag --mongodb, the CLI will generate a new project using MongoDB instead of SQLite.

If you specify the flag --yaml, the new project will use YAML format for its configuration files. You can find more information here.

Create a controller#

foal g controller <name>

Create a new controller in ./src/app/controllers, in ./controllers or in the current directory depending on which folders are found.

Example

foal g controller authfoal g controller api/product

Output

src/ '- app/  '- controllers/   |- api/   | |- product.controller.ts   | '- index.ts   |- auth.controller.ts   '- index.ts

The --register flag#

foal g controller <name> --register

If you wish to automatically create a new route attached to this controller, you can use the --register flag to do so.

Example

foal g controller api --registerfoal g controller api/product --register

Output

src/ '- app/  |- controllers/  | |- api/  | | |- product.controller.ts  | | '- index.ts  | |- api.controller.ts  | '- index.ts  '- app.controller.ts

app.controller.ts

export class AppController {  subControllers = [    controller('/api', ApiController)  ]}

api.controller.ts

export class ApiController {  subControllers = [    controller('/product', ProductController)  ]}

Create an entity (simple model)#

foal g entity <name>

Create a new entity in ./src/app/entities, in ./entities or in the current directory depending on which folders are found.

Create REST API#

foal g rest-api <name>

Create a new controller and a new entity to build a basic REST API. Depending on which directories are found, they will be generated in src/app/{entities}|{controllers}/ or in {entities}|{controllers}/.

Example

foal g rest-api orderfoal g rest-api api/product

Output

src/ '- app/  |- controllers/  | |- api/  | | |- product.controller.ts  | | '- index.ts  | |- order.controller.ts  | '- index.ts  '- entities/    |- index.entity.ts    |- order.entity.ts    '- index.ts

The --register flag#

If you wish to automatically create a new route attached to this controller, you can use the --register flag to do so (see create-a-controller).

Example

foal g controller api --registerfoal g controller api/product --register

See the page REST Blueprints for more details.

Create a hook#

foal g hook <name>

Create a new hook in ./src/app/hooks, in ./hooks or in the current directory depending on which folders are found.

Create a script#

foal g script <name>

Create a new shell script in src/scripts regardless of where you run the command.

Create a service#

foal g service <name>

Create a new service in ./src/app/services, in ./services or in the current directory depending on which folders are found.

Example

foal g service authfoal g service apis/github

Output

src/ '- app/  '- services/   |- apis/   | '- github.service.ts   | '- index.ts   |- auth.service.ts   '- index.ts