8b166873e2
Adds an import map of the core and ext JavaScript files. This was created manually but a script to create one automatically wouldn't be too much of a big thing either. This should make working on especially the Node polyfills much more pleasant, as it gives you feedback on if your imports are correct. Unfortunately the TypeScript declaration files of some of the internal modules clash with the import map and override the data from the actual files with data from the declaration files. Those do not contain all exports nor is their data always up to date. Still, this is much better than not having one. |
||
---|---|---|
.. | ||
napi | ||
node_compat | ||
release | ||
wpt | ||
build_benchmark_jsons.js | ||
copyright_checker.js | ||
core_import_map.json | ||
cut_a_release.md | ||
deno.lock.json | ||
flamebench.js | ||
format.js | ||
lint.js | ||
README.md | ||
update_typescript.md | ||
upload_wptfyi.js | ||
util.js | ||
verify_pr_title.js | ||
wpt.ts |
Tools
Documentation for various tooling in support of Deno development.
format.js
This script will format the code (currently using dprint, rustfmt). It is a prerequisite to run this before code check in.
To run formatting:
deno run --allow-read --allow-write --allow-run --unstable ./tools/format.js
lint.js
This script will lint the code base (currently using dlint, clippy). It is a prerequisite to run this before code check in.
To run linting:
deno run --allow-read --allow-write --allow-run --unstable ./tools/lint.js
Tip: You can also use cargo to run the current or pending build of the deno executable
cargo run -- run --allow-read --allow-write --allow-run --unstable ./tools/<script>
flamebench.js
flamebench.js
facilitates profiling and generating flamegraphs from
benchmarks.
General usage:
❯ ./tools/flamebench.js
flamebench <bench_name> [bench_filter]
Available benches:
op_baseline
ser
de
To profile the op_baseline
bench, run ./tools/flamebench.js op_baseline
,
this will run all 3 benches in `op_baseline.
Often when profiling/optimizing, you'll want to focus on a specific sub-bench,
flamebench
supports a bench/test filter arg like the regular cargo commands.
So you can simply run ./tools/flamebench.js op_baseline bench_op_async
or
./tools/flamebench.js op_baseline bench_op_nop
to profile specific benches.
Tip: the [bench_filter]
argument doesn't have to be an exact bench name, you
can use a shorthand or a partial match to profile a group of benches, e.g:
./tools/flamebench.js de v8
copyright_checker.js
copyright_checker.js
is used to check copyright headers in the codebase.
To run the copyright checker:
deno run --allow-read --allow-run --unstable ./tools/copyright_checker.js
Then it will check all code files in the repository and report any files that are not properly licensed.