ngx-libs icon indicating copy to clipboard operation
ngx-libs copied to clipboard

Consume the compatibility matrix to check a project's dependencies

Open chihab opened this issue 2 years ago • 6 comments

It would be handy if we can somehow consume this referential data from the outside.

There are many interesting tools we can build on top of this compatibility matrix.

For example a script that checks what libraries need to be updated when upgrading a project to some Angular version (Could be part of this repo actually)

Project example

"@angular/core": "^13.0.0"
"ngx-toast": "^14.0.0",
"ngx-old-legacy": "^13.0.0"

npx ngx-libs migrate 16 --check (check depedencies' versions)

*  You need to upgrade ngx-toast to version 17.0.0
*  ngx-old-legacy is not compatible with Angular 16

npx ngx-libs migrate 15 --apply (apply the updates (if compatible))

npx ngx-libs migrate --supported (search for common supported Angular version)

* You can peacefully migrate to Angular 15
* The latest Angular 16 version is not yet supported by some packages:
  - ngx-old-legacy

chihab avatar Jul 20 '23 18:07 chihab

Yeah that is a good idea, there's another issue opened for this kind of feature: https://github.com/eneajaho/ngx-libs/issues/27

eneajaho avatar Jul 20 '23 19:07 eneajaho

It would be great to have the matrix accessible from the outside, as an endpoint or a node lib..., so external tooling could also consume it.

chihab avatar Jul 20 '23 19:07 chihab

For that we probably would need a server so what do you recommend?

eneajaho avatar Jul 20 '23 19:07 eneajaho

@eneajaho add SSR then we can use the express server. Should have gone with Analog 😝

nartc avatar Jul 20 '23 19:07 nartc

@nartc I can always merge a PR to convert the site to Analog with SSR and maybe why not cloudlfare workers LOL.

eneajaho avatar Jul 20 '23 20:07 eneajaho

maybe just a json file in the repo is enough no? https://raw.githubusercontent.com/eneajaho/ngx-libs/master/package.json

the external script would just have to fetch the matrix from the repo: const ngxLibs = await (await fetch('https://raw.githubusercontent.com/eneajaho/ngx-libs/master/maxtrix.json')).json()

chihab avatar Jul 20 '23 20:07 chihab