- use pnpm
- use at least Angular 17
- principle of mimimum modification for src directory only
- do not use
ng update
but stay informed of what to do using the website https://update.angular.io/ - make sure there is no vulnerabilities anymore
npm audit
(or you need a very good reason) - use a proxy for http request
- update all components, directives, pipes
- no more modules
- use @if, @for instead of *ngIf, *ngFor
- use directly pipe if needed
- use dynamic import
- use default export to short code.
- no more "as" in the code (dangerous)
- using nonnullable
- using formbuilder
-
custom validator with service
-
error management in a field
-
async validator with http service
-
add debounce to async validator
-
add disabled on submit button when form is pending
- define a signal from an existing observable
- define a signal from a value
- define a computed from one or many signals and show the performance gain.
- putting OnPush on AppComponent.
- using a strategy title service
- no more array anymore in decorator metadata
- added guards on add page that redirect on legal page if more than 5 articles
- create a component with no input but an internal state : a clock.
- use it in the legal mention
- version with async pipe (good)
- version with cdref, takeuntildestroy and subscribe in the component constructor
- of(undefined).pipe(tap, map, switchMap, catchError, finalize)
- test with 400 responses (modify the back end for it can return 400 errors)
- Recheck changeDetectorRef with error scenario
- create a async button component and use it in list component
- use it also in the form
- use @Input alias and transform
- use @Attribute or HostAttributeToken
- use ngDoCheck to make an observable (subject) on change detection, this can be used for detecting the control untouched to control touched
- refactor ListComponent to show the loading with @defer
- use npx ng add @angular/ssr
- using temporary npm (it seems pnpm cannot work with ng add @angular/ssr)
- fix the issues :
- inject token Document instead of using document
- create injectable token for the origin of the REST API server ('http://localhost:3000', or '') and prefix all urls used with HttpClient.
- fix the interval observable by using outside the angular zone
- add the linter to angular
- make sure there is no console.log in the code.
- creating a library widgets
- developing the library and using it in a same workspace
- migrating the widgets components (clock, async-btn)
- Install and run Verdaccio
- publishing the library in verdaccio
- using the library in a nearby project
- testing with Karma
- all tests must succeed
- all tests must covered the code
- all tests must be meaningful
- Installing cypress
- using cypress by writing a script
- request interceptor: add a given token in the header request
- response interceptor: filter some articles when returned.
Jean-Louis GUENEGO [email protected]