# ess-dev

> Boilerplate code for ess forms development

Latest version **2.4.0** (published 2020-05-07) · ISC license · 0 weekly downloads

## Install

```sh
npm install ess-dev
pnpm add ess-dev
yarn add ess-dev
bun add ess-dev
```

Provides the command `ess-dev`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.4.0 |
| Published | 2020-05-07 |
| First published | 2020-02-18 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 8 |
| Unpacked size | 78.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | John Kapantzakis |
| Maintainers | kapantzak |
| Keywords | node, javascript, boilerplate, handlebars, templates |

## Links

- npm: https://www.npmjs.com/package/ess-dev
- Repository: https://github.com/kapantzak/ess-dev
- Homepage: https://github.com/kapantzak/ess-dev#readme
- Issues: https://github.com/kapantzak/ess-dev/issues
- npm.io page: https://npm.io/package/ess-dev

## Dependencies (8)

- [chalk](https://npm.io/package/chalk.md) ^3.0.0
- [clear](https://npm.io/package/clear.md) ^0.1.0
- [yargs](https://npm.io/package/yargs.md) ^15.1.0
- [figlet](https://npm.io/package/figlet.md) ^1.2.4
- [treeify](https://npm.io/package/treeify.md) ^1.1.0
- [inquirer](https://npm.io/package/inquirer.md) ^7.0.4
- [handlebars](https://npm.io/package/handlebars.md) ^4.7.3
- [log-symbols](https://npm.io/package/log-symbols.md) ^3.0.0

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 2.4.0 (latest) — 2020-05-07
- 2.3.6 — 2020-03-12
- 2.3.5 — 2020-03-12
- 2.3.4 — 2020-03-12
- 2.3.3 — 2020-03-11
- 2.3.2 — 2020-03-09
- 2.3.1 — 2020-03-06
- 2.2.0 — 2020-02-26
- 2.1.1 — 2020-02-24
- 2.1.0 — 2020-02-20
- 2.0.0 — 2020-02-20
- 1.0.9 — 2020-02-19
- 1.0.8 — 2020-02-19
- 1.0.7 — 2020-02-19
- 1.0.6 — 2020-02-18
- … 6 more at https://npm.io/package/ess-dev/versions

## README

[![npm version](https://badge.fury.io/js/ess-dev.svg)](https://badge.fury.io/js/ess-dev)
[![Build Status](https://travis-ci.com/kapantzak/ess-dev.svg?token=syJknnbusTbGgY6qksas&branch=master)](https://travis-ci.com/kapantzak/ess-dev)
[![Coverage Status](https://coveralls.io/repos/github/kapantzak/ess-dev/badge.svg?branch=master)](https://coveralls.io/github/kapantzak/ess-dev?branch=master)

# ess-dev
Project specific tool for automatic boileplate code generation.

This tool is a node cli that is intended to be used as a development tool for specific ASP.NET/Typescript project. It uses [Handlebars](https://handlebarsjs.com/ "https://handlebarsjs.com/") in order to generate boilerplate code.

Feel free to fork the repo in order to customize the behaviour according to your needs.

![cli_screen](https://github.com/kapantzak/ess-dev/blob/master/assets/img/cli_screen.png)

## Commands

### init
Initialize a new form. Adds various files, depending on the options provided

	ess-dev init

## Options

### --form (Alias: -f)
`string` The user control name to be created

### --output (Alias -o)
`string` The output directory of the created files

### --default (Alias -d)
`boolean` If provided, the default settings will be applied

- Form filters: Yes
- Async handler: Yes
- State hepler: Yes

### --include (Alias -i)
`string` The csproj file name to update

### --callback (Alias -c)
`string` The executable to be called provided with two arguments

- The project file name
- A JSON with the items to be included

### --msbuildextensionspath (Alias -b)
`string` Path to `MSBuildExtensionsPath32`

## Configuration file

If `essdev.config.js` exists in the root folder, the tool will try to read form it and **will not ask any questions**.

### Options

#### formName [`string`]

The user control name

#### formFilters [`boolean`]

Adds form filters

#### asyncHandler [`boolean`]

Adds async handler files

#### stateHelper [`boolean`]

Adds redux state helper files

#### buttons [`boolean`]

Adds button holders in HTML and initializes sticky header

#### filters [`object`]

Filters configuration object

#### userControlHelper [`object`]

User control helper configuration object 

### Example (DataSet)

`isDataSet: true`

	module.exports = {
	  formName: "ucTest901",
	  formFilters: true,
	  asyncHandler: true,
	  stateHelper: true,
      buttons: true,
	  userControlHelper: {
	    mainData: {
	      storedProc: {
	        name: "XD_Test_StoredProc",
	        params: [
	          {
	            name: "@Param1",
	            type: "int",
	            isNullable: true
	          },
	          {
	            name: "@Param2",
	            type: "string"
	          },
	          {
	            name: "@CurrentUserID",
	            type: "int",
	            isCurrentUser: true
	          },
	          {
	            name: "@CurrentLanguageID",
	            type: "int",
	            isCurrentLanguage: true
	          }
	        ],
	        returnData: {
	          isDataSet: true,
	          data: [
	            {
	              name: "Main",
	              isPivot: true,
	              key: "Key",
	              value: "Value",
	              fields: [
	                {
	                  name: "ContactID",
	                  type: "int?"
	                },
	                {
	                  name: "Employee",
	                  type: "string"
	                }
	              ]
	            },
	            {
	              name: "Criteria",
	              fields: [
	                {
	                  name: "ID",
	                  type: "int?"
	                },
	                {
	                  name: "Descr",
	                  type: "string"
	                }
	              ]
	            }
	          ]
	        }
	      }
	    }
	  }
	};

### Example (DataTable)

`isDataSet: false`

	module.exports = {
	  formName: "ucTest901",
	  formFilters: true,
	  asyncHandler: true,
	  stateHelper: true,
      buttons: true,
	  userControlHelper: {
	    mainData: {
	      storedProc: {
	        name: "XD_Test_StoredProc",
	        params: [
	          {
	            name: "@Param1",
	            type: "int",
	            isNullable: true
	          },
	          {
	            name: "@Param2",
	            type: "string"
	          },
	          {
	            name: "@CurrentUserID",
	            type: "int",
	            isCurrentUser: true
	          },
	          {
	            name: "@CurrentLanguageID",
	            type: "int",
	            isCurrentLanguage: true
	          }
	        ],
	        returnData: {
	          isDataSet: false,
	          data: [
	            {
	              name: "Main",
	              isPivot: true,
	              key: "Key",
	              value: "Value",
	              fields: [
	                {
	                  name: "ContactID",
	                  type: "int?"
	                },
	                {
	                  name: "Employee",
	                  type: "string"
	                }
	              ]
	            }	            
	          ]
	        }
	      }
	    }
	  }
	};


## Help

### --help
Displays available methods and options

	ess-dev --help

### --version
Displays the package version

	ess-dev --version

---
_Source: https://npm.io/package/ess-dev · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
