Skip to content
Snippets Groups Projects
README.md 1.89 KiB
Newer Older
mathias.chouet's avatar
mathias.chouet committed
# JaLHyd - Javascript Library For Hydraulics
See also [developers documentation](https://forgemia.inra.fr/cassiopee/jalhyd/blob/master/DEVELOPERS.md)
mathias.chouet's avatar
mathias.chouet committed
## Build and release
mathias.chouet's avatar
mathias.chouet committed
### Requirements
mathias.chouet's avatar
mathias.chouet committed
 * nodejs
mathias.chouet's avatar
mathias.chouet committed
### Install dependencies
mathias.chouet's avatar
mathias.chouet committed
```sh
npm install
```
mathias.chouet's avatar
mathias.chouet committed
### Run unit tests using Jasmine
mathias.chouet's avatar
mathias.chouet committed
Debugging might not be possible because of circular dependencies generated by typescript compiler
mathias.chouet's avatar
mathias.chouet committed
```sh
npm run jasmine
```
mathias.chouet's avatar
mathias.chouet committed
### Compile (es2015 modules)
This is the preferred way of compiling, notably for usage in Web apps (ngHyd)
mathias.chouet's avatar
mathias.chouet committed
```sh
npm run build
```
mathias.chouet's avatar
mathias.chouet committed
### Compile for Node.js (commonjs modules)
Use this if you want to write a CLI application in JS or TS, that will be executed by Node.js (see examples in `/boilerplate`)
```sh
npm run build-node
```
mathias.chouet's avatar
mathias.chouet committed
### Generate release package (es2015 modules)
mathias.chouet's avatar
mathias.chouet committed
```sh
npm run package
```
mathias.chouet's avatar
mathias.chouet committed
### Generate release package for Node.js (commonjs modules)

```sh
npm run package-node
```
mathias.chouet's avatar
mathias.chouet committed
### Flag suspicious language usage
mathias.chouet's avatar
mathias.chouet committed
```sh
npm run lint
```
mathias.chouet's avatar
mathias.chouet committed

mathias.chouet's avatar
mathias.chouet committed
### Generate typedoc
mathias.chouet's avatar
mathias.chouet committed

mathias.chouet's avatar
mathias.chouet committed
```sh
npm run doc
```
mathias.chouet's avatar
mathias.chouet committed

mathias.chouet's avatar
mathias.chouet committed
### Generate UML diagram

The tsviz package can be used for drawing class diagram of the current code.

mathias.chouet's avatar
mathias.chouet committed
To install tsviz:
```sh
npm install -g tsviz
```

There's currently a bug on debian like distribution due to a wrong declaration of graphviz path in the code: https://github.com/joaompneves/tsviz/issues/5
To work around, you can create a link to the good path: `sudo ln -s /usr/bin/dot /usr/local/bin/dot`
mathias.chouet's avatar
mathias.chouet committed
To draw the diagram:
```sh
npm run viz
```
## Boiler plate for writing CLI scripts based on JaLHyd
The folder `boilerplate` contains simple examples of use of JalHyd in a JS or TS script.
- Build JalHyd for node (commonJS module): `npm run build-node`
- Choose the js or ts folder: `cd  boilerplate/js` or `cd boilerplate/ts`
- Type `npm install` to install dependencies
- For the TS script, build the project with `npm run build`
- Run the script with `node boilerplate.js` or `node build/boilerplate.js`