ngx-toolkit, a new open-source project from DataKitchen
At DataKitchen, we use Angular and strive for well-tested and maintainable code. Weโve created three libraries that have helped accelerate Angular development in our software projects. We are proud today to present to the open source community our monorepo with some of the libraries we have developed for Angular and Jest.
[ngx-toolkit](https://github.com/DataKitchen/ngx-toolkit) is a monorepo that contains three npm packages:ย
ย – @datakitchen/ngx-toolkitย
ย – @datakitchen/ngx-monaco-editor
ย – @datakitchen/rxjs-marbles
# ngx-toolkit
It is a library that contains several utilities that we find useful when building Angular applications. The principal element in this library is what we call the `CoreComponent`. This abstract component handles different use cases automatically. Automatic unsubscription of observables is just the most trivial of them.ย
Another less trivial example is the following. Our Angular app often has a table with pagination, sorting, and search features. We may also have some of all the properties related to the page state reflected in the URL parameters for ease of sharing.ย Angular developers know how complicated it can be to have a reactive form whose values can be hydrated from the localStorage and/or the query parameters and synchronized with Angular’s Material Paginator.ย Easily, all of the above can be achieved by letting a component extend `CoreComponent` and adding some decorators, so you can stay `DRY`.ย See ngx-toolkit’s readme
# rxjs-marbles
In our app, we heavily use reactive programming, and we know how complicated it is to properly test observables chains. Using them in an Angular app is even more complicated. This is another of the goodies we are proud to share with the open-source community: `@datakitchen/rxjs-marbles` is a set of utilities for streamlining marble testing and making it really easy to do in an Angular application. See rxjs-marbles
# ngx-monaco-editor
Last but not least, `@datakichen/ngx-monaco-editor` is our take on wrapping Microsoft’s monaco editor into an Angular component, and yes it supports Reactive Forms and Angular Material `mat-form-field.`ย See ngx-monaco-editor
We hope you find these as useful as we do!ย We will be maintaining and improving the library moving forward.
Davide Cavaliere, DataKitchen