# form-compiler

> 🚏 FORM COMPILER Un transpilador que convierte código de React (legacy) en algo entendible por los navegadores para ser utilizado como formularios embebidos.

Latest version **1.0.0** (published 2021-05-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install form-compiler
pnpm add form-compiler
yarn add form-compiler
bun add form-compiler
```

Provides the command `form-compiler`.

## 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 | 1.0.0 |
| Published | 2021-05-13 |
| First published | 2021-05-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 34 |
| Unpacked size | 11 KB |
| Known vulnerabilities | 0 (+23 in 1 direct dependencies) |
| Install scripts | no |
| Maintainers | chicus12 |

## Links

- npm: https://www.npmjs.com/package/form-compiler
- npm.io page: https://npm.io/package/form-compiler

## Dependencies (34)

- [arg](https://npm.io/package/arg.md) ^5.0.0
- [axios](https://npm.io/package/axios.md) ^0.21.1
- [react](https://npm.io/package/react.md) ^15.7.0
- [glamor](https://npm.io/package/glamor.md) ^2.20.40
- [jquery](https://npm.io/package/jquery.md) ^3.6.0
- [moment](https://npm.io/package/moment.md) ^2.29.1
- [shortid](https://npm.io/package/shortid.md) ^2.2.16
- [webpack](https://npm.io/package/webpack.md) ^5.37.0
- [fs-extra](https://npm.io/package/fs-extra.md) ^10.0.0
- [react-dom](https://npm.io/package/react-dom.md) ^15.7.0
- [css-loader](https://npm.io/package/css-loader.md) ^5.2.4
- [styled-jsx](https://npm.io/package/styled-jsx.md) ^2.2.7
- [sweetalert](https://npm.io/package/sweetalert.md) ^2.1.2
- [@babel/core](https://npm.io/package/@babel/core.md) ^7.14.2
- [rc-progress](https://npm.io/package/rc-progress.md) ^2.6.1
- [react-modal](https://npm.io/package/react-modal.md) ^3.13.1
- [babel-loader](https://npm.io/package/babel-loader.md) ^8.2.2
- [style-loader](https://npm.io/package/style-loader.md) ^0.23.1
- [react-tooltip](https://npm.io/package/react-tooltip.md) ^3.11.6
- [react-dropzone](https://npm.io/package/react-dropzone.md) ^4.3.0
- [react-paginate](https://npm.io/package/react-paginate.md) ^5.3.1
- [react-toastify](https://npm.io/package/react-toastify.md) ^2.2.2
- [react-stepzilla](https://npm.io/package/react-stepzilla.md) ^4.8.0
- [react-text-mask](https://npm.io/package/react-text-mask.md) ^5.4.3
- [react-datepicker](https://npm.io/package/react-datepicker.md) ^1.8.0
- [@babel/preset-env](https://npm.io/package/@babel/preset-env.md) ^7.14.2
- [react-fontawesome](https://npm.io/package/react-fontawesome.md) ^1.7.1
- [webpack-dashboard](https://npm.io/package/webpack-dashboard.md) ^3.3.3
- [react-masked-field](https://npm.io/package/react-masked-field.md) ^1.1.1
- [@babel/preset-react](https://npm.io/package/@babel/preset-react.md) ^7.13.13
- [immutability-helper](https://npm.io/package/immutability-helper.md) ^2.9.1
- [react-number-format](https://npm.io/package/react-number-format.md) ^3.6.2
- [webpack-config-utils](https://npm.io/package/webpack-config-utils.md) ^2.3.1
- [@sweetalert/with-react](https://npm.io/package/@sweetalert/with-react.md) ^0.1.1

## Recent versions

- 1.0.0 (latest) — 2021-05-13

## README

<div>
  <h1 align="center">🚏 FORM COMPILER</h1>
  <strong>
    Un transpilador que convierte código de React (legacy) en algo entendible por los navegadores para ser utilizado como formularios embebidos.
  </strong>
</div>

<hr />

## Advertencia

> ⚠️ ⚠️ No actualice ninguna dependencia de este proyecto a menos que sea un
> minor o un patch version. De lo contrario puede implicar en errores a la hora
> de compilar el código legacy que se utiliza como fuente. ⚠️ ⚠️

## Por qué?

Porque se necesita para poder generar codigo entendible para el navegador. El
source está en React, legacy, y de momento no se va a actualizar ese código.
Este compiler ayuda en el caso de que se tuviera que cambiar algo de los sources
originales, se puedan a volver a generar los bundles sin que afecte el código
legacy existente.

## Requisitos

- [git][git] v2.13 or greater
- [NodeJS][node] `12`
- [npm][npm] v6 o

Todo estos binarios deben estar disponibles en su `PATH`. Para verificar que
están seteados de forma correcta y que tengan las versiones correspondientes,
puede correr en una `terminal` lo siguiente:

```shell
git --version
node --version
npm --version
```

## Configuración

> ⚠️ ESTA CONFIGURACIÓN ES SOLO SI QUIERE REALIZAR ALGÚN CAMBIO EN EL PROYECTO
> DE LO CONTRARIO PASE AL SIGUIENTE PASO (INSTALACIÓN)

<hr />

> Si quiere hacer commit y push de algún cambio en este repositorio tiene que
> realizar
> [fork](https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/fork-a-repo)
> primero y luego clonar su fork en lugar de el repositorio directamente.

Después de estar seguro de que tiene los requisitos correctos, puede ejecutar
los siguiente comandos para setear el proyecto:

```
git clone https://github.com/SoinLabs/form-compiler.git
cd form-compiler
npm install
```

## Instalación

Para instalar el binario y poder ejecutarlo, ejecute en la terminal lo
siguiente:

```shell
npm install -g form-compiler
```

Para comprobar que realmente se instaló, se puede ejecutar en la terminal lo
siguiente:

```shell
form-compiler --help
```

Dará como resultado la lista de opciones para ejecutar con el binario.

## Consideraciones

El binario se puede ejecutar desde cualquier lugar, pero la mejor opción sería
ejecutarlo donde están los archivos fuentes del formulario que se quiere
generar, esta sería la estructura del formulario para un adecuado
funcionamiento:

```
├── src
│   ├── css
│   │   ├── **/*.css
│   ├── App.js
│   ├── Button.js
│   ├── Date.js
│   ├── form.html
│   ├── Dropdown.js
│   └── index.js
└── build
```

Una vez en el directorio adecuado, se puede ejecutar el binario de la siguiente
forma:

```shell
form-compiler
```

Se pueden indicar varias opciones tales como:

- `-d` o `--dev` esta opción es para indicar que queremos que compile los
  archivos fuentes con base al entorno de develop.
- `-p` o `--prd` esta opción es para indicar que queremos que compile los
  archivos fuentes con base al entorno de producción. Además de inyectar
  variables de ambiente de producción, minifica el bundle final para que sea más
  pequeño y eficiente.
- `-s <ruta_del_src>` o `--src <ruta_del_src>` esta opción se utiliza para
  indicar la ruta custom donde se encuentran los archivos sources a compilar, si
  se sigue la estructura planteada anteriormente, pocas veces se necesita este
  parámetro

En caso de no indicar ninguna de las opciones anteriormente descritas, se tomará
como default `-d` es decir develop y que la ruta de los archivos sources es
`directorio_actual/src`.

<br />

Una vez ejecutado el binario `form-compiler`, el va a ejecutar webpack y creará
el bundle en la carpeta `build`, de igual forma si la carpeta `build` no existe,
se crea automáticamente. Al final la estructura de archivos queda algo como así:

```
├── src
│   ├── css
│   │   ├── **/*.css
│   ├── App.js
│   ├── Button.js
│   ├── Date.js
│   ├── form.html
│   ├── Dropdown.js
│   └── index.js
├── build
│   ├── form.html
│   ├── bundle.js
└── └── bundle.js.map
```

<!-- prettier-ignore-start -->
[npm]: https://www.npmjs.com/
[node]: https://nodejs.org
[git]: https://git-scm.com/
<!-- prettier-ignore-end -->

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