# @vtex/sales-app-extensions

This repository contains the base configuration to create extensible poins inside VTEX Sales App

### What's here?

- A CLI to create a template, test locally and build your extension point to Sales App
- A Webpack site configured to exposes the extension points using mudle-federation
- Type definitions about Sales App extension points

### Sales App CLI

```
USAGE
  $ sales-app [COMMAND]

COMMANDS
  build   Build your Sales App Extension Points
  create  Creates the Sales App project base structure
  dev     Start your Sales App in development mode
  help    display help for sales-app
```

#### Create Command

```
Creates the base structure for Sales App project

USAGE
  $ sales-app create PATH

ARGUMENTS
  PATH  path where the sales app base structure will be saved

DESCRIPTION
  Creates the base structure for Sales App project

EXAMPLES
  $ sales-app create {my_custom_path}
```

#### Dev Command

```
Start your Sales App in development mode

USAGE
  $ sales-app dev ACCOUNT

ARGUMENTS
  ACCOUNT  your VTEX account

DESCRIPTION
  Start your Sales App in development mode

EXAMPLES
  $ sales-app dev {account}
```

#### Build Command

```
Build your Sales App Extension Points

USAGE
  $ sales-app build ACCOUNT

ARGUMENTS
  ACCOUNT  your VTEX account

DESCRIPTION
  Build your Sales App Extension Points

EXAMPLES
  $ sales-app build {account}
```

#### Debug mode

To enable debug mode, simply set the environment variable DEBUG=true, for example:

`$ DEBUG=true sales-app {command}`

### How to test the CLI locally

#### Setup

- Start an empty nodejs project running `yarn init -y` outside the `instore-core` folder
- Go to `instore-core/packages/sales-app-extensions` and run `yarn build` to build the project
- Run `yarn link` to create the yarn package link locally
- Go to your empty project and run `yarn link @vtexlab/sales-app-extensions` to link the package dep in your project

#### Commands

You can execute the CLI commands running like this example:

`$ node_modules/@vtexlab/sales-app-extensions/bin/dev.js dev vtexinstoredev`
