This monorepo contains configuration and helper files to bootstrap TypeScript projects @ YOO.
This monorepo is a private repository. However, it contains packages that are publicly published to the npm registry. The published packages can be found in our npm organization here (@yoo-digital). We use lerna to reduce the burden of publishing the packages.
The goal of this repository is to improve the developer experience @ YOO, by offering a centralized repository containing files that are reused in the different projects. It should ensure that these projects follow a set of common and defined standards.
Every developer can and should contribute to this repository. It should be in everyone's interest to improve the developer experience @ YOO. Amendments or changes can be introduced in our weekly guild meetings.
At the moment the following packages are maintained in this repository:
- @yoo-digital/eslint-config-base: ESLint configuration file for TypeScript projects.
- @yoo-digital/eslint-config-react: ESLint configuration extending from base for React projects.
- @yoo-digital/eslint-config-angular: ESLint configuration extending from base for Angular projects.
You can find our coding guidelines regarding TypeScript on our private Confluence page here. Amendments and changes to these guidelines can be proposed on a weekly basis. The configuration files and rules defined in the coding guidelines should be reflected in this repository.
If changes or additions have to be made, this repository will have to be cloned.
git clone [email protected]:yooapps/yoo-digital-typescript.git
Make sure you have lerna cli available by installing the dependencies of this repository.
yarn install
As stated in the introduction, lerna is used to publish the packages. Each package is versioned independently. If changes are made to a package that is a dependant of other packages, the other packages have to be newly published as well. For example, changing definitions within eslint-config-base affects both eslint-config-react and eslint-config-angular as they depend on eslint-config-base.
Like every other project, we follow the principles of Git flow. Respective feature or bugfix branches
are merged into develop after peer developers have accepted the pull request. The latest commit should
always be on master, before publishing with lerna publish
.