# Tracim lib

This project is used to centralize generic components that are used either in Tracim and in Tracim's apps.

### For development
While working on Tracim and on tracim_lib, if you change tracim_lib, for the changes to be effective in Tracim you must:
- run `$ npm run build` on tracim_lib
- add the generated dist/tracim_lib.js to git stage
- commit and push changes to tracim_lib
- increase version number of tracim_lib (package.json)
- commit push the new version
- run `$ npm update tracim_lib` in Tracim to get the new version

#### Alternatively you can (faster for development)
- create a link of tracim_lib using npm: in tracim_lib `$ npm link`
- get that link in tracim: in tracim (repo) `$ npm link tracim_lib`
- in tracim_lib: run `$ npm run build`

now, you only have to rebuild tracim_lib and tracim will update it's tracim_lib dependency automatically

Problem: eslint will parse tracim_lib.js since it will come from another repository.

Solution: you must add `/* eslint-disable */` at the beginning and  `/* eslint-enable */` at the end of tracim_lib.js

To automatize this: build tracim_lib with that command:

`npm run build && echo '/* eslint-disable */' | cat - dist/tracim_lib.js > temp && mv temp dist/tracim_lib.js && printf '\n/* eslint-enable */\n' >> dist/tracim_lib.js`

You can also create an alias for this in your .bashrc
