## module file structure

```text
./__.vscode/: paramètres communs chargés par Visual Studio Code
 |__specs/: les spécifications des tests unitaires Jasmine du module
 |__lib/: librerie
 |  |__model/: dossier contenant le model d'objet renvoyer après le parsing et les codes d'erreur en cas d'echec de parsing
 |  |  |__account_book_model.json: fichier contenant model d'objet
 |  |  |__codeError.json: fichier contenant les codes d'erreur
 |__src/: le code source du module
 |  |__autre/: les librairies et utilitaires nécessaire au module
 |  |  |__formater.js: fichier contenant la fonction de formatage des données issues du accoun-book
 |  |  |__index.js: fichier contenant la fonction principale
 |  |  |__parser.js: fichier contenant la fonction de parsing
 |  |__inspire/: les librairies et utilitaires nécessaire au module
 |  |  |__formater.js:
 |  |  |__index.js:
 |  |  |__parser.js:
 |  |__odoo/: les librairies et utilitaires nécessaire au module
 |  |  |__formater.js:
 |  |  |__index.js:
 |  |  |__parser.js:
 |  |__sage/: les librairies et utilitaires nécessaire au module
 |  |  |__formater.js:
 |  |  |__index.js:
 |  |  |__parser.js:
 |  |  |__sagebuildobject.js: fichie contenant la logique de construction des objets à partir des données issues du account-book
 |  |__index.js : fichier principal qui fait appel à la classe du module de parsing
 |  |__accountbookparseradapter.js : fichier principal contenant la classe du module de parsing
 |  |__helpers.js : fichier principal qui fait appel aux différents fonctions de parsing
 |  |__cli.js : module cli
```

## Required dev dependances

- [Prettier](https://www.npmjs.com/package/prettier)
  Code formatter to enforce a consistent code style
- [Husky](https://www.npmjs.com/package/husky)
   Make easy to add gitHooks to a node project
- [Lint-staged](https://www.npmjs.com/package/lint-staged)
  Run lint before commit goes on the repository
- [Jasmine](https://www.npmjs.com/package/jasmine)
  Implement BDD  
- [Eslint](https://www.npmjs.com/package/eslint)
  Identify and reporte base on patterns found in EMACScript/Javascript

#### Module de parsing du grand livre

Version 8.2.2
------------

Usage
-----
Installation command is `npm install @adncorp/account-book-parser-adapter`.


### Quick example

```javascript
const AccountBookParser = require('@adncorp/account-book-parser-adapter')
/** 
*@param filepath chemin vers le fichier du grand livre: format accepté: .xlsx, .xlx, .csv
*@param softwareName Nom du logiciel qui à généner le fichier (Example: Odoo online, odoo community Sage-Saari, SAS-Inspire)
*/

// instance d'un objet de la classe AccountBookParser
var parser = new AccountBookParser(filepath, softwareName)

/**
*@return {promiss} retourne une promesse d'objet contenant le resultat du parsing
*/
// obtenir le parsing
parser.getParser().then(result => {
   // affichage du resultat après parsing
   console.log(result)
}).catch(error => {
   // parsing echoué, affichage de l'erreur
   console.log(error)
})
```

Development
-----------

Les tests sont exécutés avec jasmine. Pour l'installer, lancez `npm install`, il installera jasmine et ses dépendances dans le répertoire "node_modules" de votre projet.

To run the unit tests:
```bash
$npm run jasmine
```
Le test coverage est exécuté avec l'outil instanbul. Pour l'installer, lancer  `npm install --save-dev jasmine jasmine-node istanbul jasmine-console-reporter supertest jasmine-supertest`, il installera instabul et ses dépendances dans le répertoire "node_modules" de votre projet.

To run the test coverage:

```bash
$npm run test-cover
```

To generate the JavaScript files:

```bash
$npm run build
```

run lint

```bash
$npm run lint  # lint all src
$npm run lint-files -- ${files_or_dir_glob}  # lint specific files
```

run prettier

```bash
$npm run prettier  -- ${modified_files_or_dir_glob}
```

Author
------

*	  ADN: <https://www.adncorp.com/>