npm dependency-cruiser 17.3.3

18 hours ago

๐Ÿš€ refactorings to make dependency-cruiser run a little more efficient

  • 749e6ca/ 8589066 perf(main|schema|tools): pre-compiles json schemas at build time - removes ajv as a runtime dependency (#1029)
    relevant for everyone; the validation step now takes 10x less time and we could drop ajv as a runtime dependency, which makes for a faster install as well as a reduction in dependency management.
  • be41175/ 9ea6405 perf(derive/reachable): simplifies & cleans up the algorithm (#1030/ #1031)
    I have the feeling I'm not done there yet, but this already makes the algo run 1.3 - 1.5x faster, so if something with reachables in your rule set you might notice an improvement.
  • 9ea6405 (#1031) also caches regex compilations throughout dependency-cruiser making the validation 1.5x - 2.5x faster (it already didn't take that much time, but every 10ms counts).
  • c558d42 perf(extract/typescript): adds various performance optimizations (#1026)
    relevant if you use dependency-cruiser on typescript sources; should make running it a bit faster
  • 2bab7b4 refactor(extract|graph-utl): replaces fixed arrays with sets (#1027)
  • 3dbdc5c refactor(extract|graph-utl): replaces two leftover forEach'es with for .. of loops
    Both theoretically more efficient on processor & memory - couldn't measure improvements on my 'practice' repos, though. The resulting code is more readable though, so kept it in nonetheless.

๐Ÿ‘ท maintenance

  • 6293a6d build(npm): updates external dependencies
  • d7f0824 refactor(main/options): uses more correct .test a.o.t. .match for checking collapse pattern
  • 7fa5523 refactor(report/anon): simplifies wordlist sanitization function
  • da7de5d chore(rule-set): adds logging statements to sub steps of the rule set validation

๐Ÿงน chores

  • e875b88 chore: uses tabs in stead of spaces in distributed npm package
  • 1a9f2f9 chore: fixes some lint issues
  • 34ca1a1 chore(ci): run on node 20 & 25 instead of on node 20 & 24
  • edc4a7d chore(npm): updates external devDependencies
  • cf87e05 doc: revises comments

Don't miss a new dependency-cruiser release

NewReleases is sending notifications on new releases.