Skip to content

Instantly share code, notes, and snippets.

Modules. Modules everywhere.

Jan Olaf Krems jkrems

Modules. Modules everywhere.
View GitHub Profile
jkrems /
Created Jul 7, 2020
Switch to Github repo checkout, clone if it doesn't exist yet
# Usage: gh <org-or-user>/<repo>
# Example: gh nodejs/node
gh () {
local repo=$1
local target="$HOME/code/src/$1"
local url="$repo.git"
if [[ ! -d "$target" ]]
git clone "$url" "$target"
jkrems / ok.js
Last active Jun 8, 2020
Exports Hash
View ok.js
module.exports = 'ok';
jkrems /
Last active Feb 27, 2020
Observe compilation cache collision


  1. Start the server via node server.js.
  2. Open http://localhost:3000.
  3. If the compilation cache leads to bad meta data in dynamic import, the message should only be logged once. ‎‎​
jkrems / .gitignore
Last active Feb 13, 2020
Node globals handling in Typescript
View .gitignore
View playground.json
"scripts": [],
"showConsole": true,
"scriptType": "module"
View index.html
<!doctype html>
<meta charset="utf-8" />
<pre id="result"></pre>
<script src="/script.mjs" type="module"></script>
View idem-potent-resolve.js
class ResolvedRef {
static get protocol() {
return 'resolved-ref:';
constructor(href, signature) {
this.#href = href;
jkrems /
Last active Aug 31, 2020
JavaScript: Classic Scripts vs. Modules vs. CommonJS

JavaScript File Format Differences

There's the pervarsive notion that all JS is created equal and that there's only minor and easily detectable differences between the various file formats used to author JavaScript. This is correct, from a certain point of view.

A certain point of view?

For many people writing JavaScript that gets passed into build tools,

View nested-loader-order.txt
import "fs";
'fs' -> 'node:fs'
'fs' -> $BWRAP = 'data:import "node:fs";'
'fs' -> $AWRAP = 'data:import "$BWRAP";'
View error.txt
> make -j4
/Applications/ -C out BUILDTYPE=Release V=0
LD_LIBRARY_PATH=/Users/jkrems/Projects/node/node/out/Release/$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../.; mkdir -p /Users/jkrems/Projects/node/node/out/Release/obj/gen; python tools/ lib/internal/bootstrap/environment.js lib/internal/bootstrap/loaders.js lib/internal/bootstrap/node.js lib/internal/bootstrap/pre_execution.js lib/internal/per_context/primordials.js lib/internal/per_context/setup.js lib/internal/per_context/domexception.js lib/async_hooks.js lib/assert.js lib/buffer.js lib/child_process.js lib/console.js lib/constants.js lib/crypto.js lib/cluster.js lib/dgram.js lib/dns.js lib/domain.js lib/events.js lib/fs.js lib/http.js lib/http2.js lib/_http_agent.js lib/_http_client.js lib/_http_common.js lib/_http_incoming.js lib/_http_outgoing.js lib/_http_server.js lib/https.js lib/inspector.js lib/module.js lib/net.js lib/os.j
You can’t perform that action at this time.