Welcome and thanks for deciding to contribute to Interledger.JS. Below are some guidelines and information before you begin.
All source code is expected to be TypeScript and is placed in the src
folder. Tests are put in the test
folder.
The NPM package will not contain any TypeScript files (*.ts
) but will have typings and source maps. A typical project should have the following structure:
|-- src
|-- test
|-- package.json
|-- tsconfig.build.json
eslint
is used to lint the entire monorepo. Our rules can be found in the .eslintrc.js file
The monorepo is set up to use lerna and pnpm workspaces. This means that dev dependencies that are shared across all packages are kept in the root package.json
.
Dependencies can be added to individual packages by using pnpm from the monorepo root folder
pnpm --filter <package-name> add <dependency to install>
# Add dev dependency
pnpm --filter <package-name> add <dependency to install> --dev
This project makes use of Conventional Commits. Please scope your commit messages to the package that it concerns e.g. fix(oer-utils): ...
.
Please make sure that the tests and linter are run before committing.
We welcome bug reports or feature requests. These can be made by opening an issue. Please have a look through the issues list to see if something similar exists before creating a new one. For discussions and general questions, please join the interledger slack channel and Interledger Forum.
Please ensure that you create a fork from the master
branch. Please check that the following has been done before submitting the PR:
- Test coverage for what has been added
- Make sure linting passes (
pnpm lint:all
run from the project root) - Make sure everything builds (
pnpm build
run from the project root) - Make sure all tests pass (
pnpm test
run from the project root)