This is a collection of JS libraries and components which are used across various Expensify projects. These libraries are provided as-is, and the repos which use them will need to do their own bundling, minifying, and uglifying.
- Clone this repo to a directory of your choosing
- Run
npm installto install all the dependencies
- Write all code as ES6.
- Always lint your code with
npm run grunt watch - Make sure you're using http://editorconfig.org/
The best way to test your code while you are developing changes is via npm link.
- Run
npm linkin the project root cdinto the project directory that has a dependency onexpensify-common- Run
npm link expensify-common
If that does not work, another option is running npm i expensify-common ../expensify-common --save.
Alternatively, you can edit files directly in a project's node_modules then apply those changes to this repository.
- Fork this repository and create a new branch
- Open a PR to merge your changes
- An Expensify engineer will be automatically assigned to your PR
- They will review and accept your changes, merge them, then deploy a new version
Once the PR has been merged, update the package.json commit hash in any repos with a dependency on the code being changed in expensify-common, don't forget to run a npm install so package-lock.json is also updated. Be sure to check the repos below to confirm whether or not they are affected by your changes!
- Expensify/Web-Expensify
- Expensify/Web-Secure
- Expensify/Mobile-Expensify
- Expensify/App
- Expensify/Comp