jsenv / core

Develop, test and build JavaScript projects
MIT License
31 stars 4 forks source link

Dir jo #428

Closed dmail closed 2 months ago

dmail commented 2 months ago

What does this PR do?

This pull requests improve jsenv dev server UI when listing a directory. It is heavily inspired from https://github.com/johansatge/httpdir/

Changes

When the root url is requested and there is no index.html file, jsenv dev server display directory content. It now look like this:

2_dir_many_file

Whenever a file is not found jsenv dev server display the parent directory content. The UI now look as follow:

1_root_many_file

How to review ?

This can be tested as follow:

npx @jsenv/cli@latest

It should start the dev server + open a browser. Visit some urls leading to directories and see the new UI.

github-actions[bot] commented 2 months ago

File size impact

Impact on file sizes when merging dir_jo into main.

dist (+2%)
Files new size new gzip size
dist/html/html_404_and_parent_dir.html 9.4 kB (+9 kB / +2084%) 4 kB (+3.8 kB / +1445%) :arrow_upper_right:
dist/html/directory.html 8.7 kB (+8.3 kB / +2416%) 3.8 kB (+3.5 kB / +1632%) :arrow_upper_right:
dist/jsenv_core.js 693 kB (+2 kB / +0.3%) 154 kB (+550 B / +0.4%) :arrow_upper_right:
dist/html/html_404_and_parent_dir_is_empty.html deleted (-382 B) deleted (-247 B)
Unmodified (113) 365 kB (0 B / +0%) 102 kB (0 B / +0%) :ghost:
Total (117) 1.1 MB (+18.9 kB / +2%) 263 kB (+7.6 kB / +3%) :arrow_upper_right:

Generated by @jsenv/file-size-impact during file size impact#10268345138 on 53209ce

github-actions[bot] commented 2 months ago

Performance impact

Impact on 38 metrics when merging dir_jo into main. Before drawing conclusion, keep in mind performance variability.

package metrics (+0.6%)
Metric Before merge After merge Impact
import duration 0.1 second 0.09 second -0.001 second / -1% :arrow_lower_right:
import memory heap used 6.5 MB 6.5 MB +3.5 kB / +0.05% :arrow_upper_right:
import memory heap total 5.7 MB 5.7 MB +4.1 kB / +0.07% :arrow_upper_right:
import fs open operations 101 101 :ghost:
import fs stat operations 190 190 :ghost:
npm tarball size 315 kB 324 kB +9.2 kB / +3% :arrow_upper_right:
npm tarball unpacked size 1.5 MB 1.5 MB +27.8 kB / +2% :arrow_upper_right:
npm tarball file count 204 205 +1 / +0.5% :arrow_upper_right:
dev server metrics (-0.4%)
Metric Before merge After merge Impact
start duration 0.1 second 0.1 second -0.002 second / -2% :arrow_lower_right:
start memory heap used 7 MB 7 MB +3 kB / +0.04% :arrow_upper_right:
start memory heap total 7.2 MB 6.9 MB -258 kB / -4% :arrow_lower_right:
start fs read 0 0 :ghost:
start fs write 0 0 :ghost:
time to app display 0.5 second 0.5 second -0.004 second / -0.8% :arrow_lower_right:
serve app memory heap total 20.3 MB 20.3 MB :ghost:
serve app memory heap used 16.5 MB 16.5 MB -2.8 kB / -0.02% :arrow_lower_right:
serve app fs read 0 0 :ghost:
serve app fs write 904 904 :ghost:
time to 2nd app display 0.2 second 0.2 second +0.004 second / +2% :arrow_upper_right:
2nd serve memory heap total 2.4 MB 2.4 MB :ghost:
2nd serve memory heap used 682 kB 681 kB -960 B / -0.1% :arrow_lower_right:
2nd serve fs read 0 0 :ghost:
2nd serve fs write 880 880 :ghost:
build metrics (-0.01%)
Metric Before merge After merge Impact
build duration 0.8 second 0.9 second +0.007 second / +0.8% :arrow_upper_right:
build memory heap used 32.2 MB 32.2 MB +15 kB / +0.05% :arrow_upper_right:
build memory heap total 56.2 MB 55.6 MB -520 kB / -0.9% :arrow_lower_right:
number of fs read operation 0 0 :ghost:
number of fs write operation 264 264 :ghost:
test metrics (-0.9%)
Metric Before merge After merge Impact
test plan duration 3 seconds 2.9 seconds -0.04 second / -1% :arrow_lower_right:
test plan memory heap used 42.2 MB 42.2 MB -37.2 kB / -0.09% :arrow_lower_right:
test plan memory heap total 77.8 MB 76.3 MB -1.6 MB / -2% :arrow_lower_right:
number of fs read operation 0 0 :ghost:
number of fs write operation 1704 1704 :ghost:
test metrics (serie) (-0.3%)
Metric Before merge After merge Impact
test plan duration 3.5 seconds 3.5 seconds -0.04 second / -1% :arrow_lower_right:
test plan memory heap used 42.2 MB 42.2 MB +6.2 kB / +0.01% :arrow_upper_right:
test plan memory heap total 77.1 MB 77.1 MB +4.1 kB / +0.005% :arrow_upper_right:
number of fs read operation 0 0 :ghost:
number of fs write operation 1704 1704 :ghost:

Generated by @jsenv/performance-impact during performance_impact#10268345157 on 53209ce