# JaLHyd - Javascript Library For Hydraulics See also [developers documentation](https://forgemia.inra.fr/cassiopee/jalhyd/blob/master/DEVELOPERS.md) ## Build and release ### Requirements * nodejs ### Install dependencies ```sh npm install ``` ### Run unit tests using Jasmine Debugging might not be possible because of circular dependencies generated by typescript compiler ```sh npm run jasmine ``` ### Compile (es2015 modules) This is the preferred way of compiling, notably for usage in Web apps (ngHyd) ```sh npm run build ``` ### 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 ``` ### Generate release package (es2015 modules) ```sh npm run package ``` ### Generate release package for Node.js (commonjs modules) ```sh npm run package-node ``` ### Flag suspicious language usage ```sh npm run lint ``` ### Generate typedoc ```sh npm run doc ``` ### Generate UML diagram The tsviz package can be used for drawing class diagram of the current code. 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` 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`