---
symbol: CreateTemplateCommand
module: "@tsed/cli"
type: class
meta:
 - name: keywords
   description: api typescript node.js documentation CreateTemplateCommand class
---
# CreateTemplateCommand - @tsed/cli

## Usage

```typescript
import { CreateTemplateCommand } from "@tsed/cli/src/commands/template/CreateTemplateCommand";
```

> See [/packages/cli/src/commands/template/CreateTemplateCommand.ts](https://github.com/tsedio/tsed-cli/blob/v7.5.1/packages/cli/src/commands/template/CreateTemplateCommand.ts#L0-L0).

## Overview

```ts
class CreateTemplateCommand implements CommandProvider {
    protected projectPackageJson: ProjectPackageJson;
    protected templates: CliTemplatesService;
    $prompt(data: Partial<CreateTemplateCmdContext>): Promise<({
        type: "list";
        name: string;
        message: string;
        default: string;
        when: boolean;
        choices: {
            name: string;
            value: string;
        }[];
        source?: undefined;
    } | {
        type: "autocomplete";
        name: string;
        message: string;
        default: string | undefined;
        when: (ctx: CreateTemplateCmdContext) => boolean;
        source: () => {
            name: string;
            value: string;
        }[];
        choices?: undefined;
    } | {
        type: "confirm";
        name: string;
        message: string;
        when: (ctx: CreateTemplateCmdContext) => boolean;
        default: boolean;
        choices?: undefined;
        source?: undefined;
    } | {
        type: "input";
        name: string;
        message: string;
        default: string | undefined;
        when: boolean;
        choices?: undefined;
        source?: undefined;
    })[]>;
    $mapContext(ctx: Partial<any>): any;
    $exec(ctx: CreateTemplateCmdContext & {
        symbolName: string;
        symbolPath: string;
    }): {
        title: string;
        task: () => Promise<void>;
    }[];
}
```

<!-- Members -->

## protected projectPackageJson

```ts
protected projectPackageJson: ProjectPackageJson;
```

## protected templates

```ts
protected templates: CliTemplatesService;
```

## $prompt

```ts
$prompt(data: Partial<CreateTemplateCmdContext>): Promise<({
     type: "list";
     name: string;
     message: string;
     default: string;
     when: boolean;
     choices: {
         name: string;
         value: string;
     }[];
     source?: undefined;
 } | {
     type: "autocomplete";
     name: string;
     message: string;
     default: string | undefined;
     when: (ctx: CreateTemplateCmdContext) => boolean;
     source: () => {
         name: string;
         value: string;
     }[];
     choices?: undefined;
 } | {
     type: "confirm";
     name: string;
     message: string;
     when: (ctx: CreateTemplateCmdContext) => boolean;
     default: boolean;
     choices?: undefined;
     source?: undefined;
 } | {
     type: "input";
     name: string;
     message: string;
     default: string | undefined;
     when: boolean;
     choices?: undefined;
     source?: undefined;
 })[]>;
```

## $mapContext

```ts
$mapContext(ctx: Partial<any>): any;
```

## $exec

```ts
$exec(ctx: CreateTemplateCmdContext & {
     symbolName: string;
     symbolPath: string;
 }): {
     title: string;
     task: () => Promise<void>;
 }[];
```
