feat: complete MDX migration, stabilize routing and lead capture

Former-commit-id: ab5cc38c97e5f73d6e821465b90d199fb6e6edc9
This commit is contained in:
2026-05-03 21:06:47 +02:00
parent b13f628b55
commit f2fdea96ec
7175 changed files with 371649 additions and 1078689 deletions
@@ -1,108 +0,0 @@
'use strict'
const refs = {
exit: [],
beforeExit: []
}
const functions = {
exit: onExit,
beforeExit: onBeforeExit
}
let registry
function ensureRegistry () {
if (registry === undefined) {
registry = new FinalizationRegistry(clear)
}
}
function install (event) {
if (refs[event].length > 0) {
return
}
process.on(event, functions[event])
}
function uninstall (event) {
if (refs[event].length > 0) {
return
}
process.removeListener(event, functions[event])
if (refs.exit.length === 0 && refs.beforeExit.length === 0) {
registry = undefined
}
}
function onExit () {
callRefs('exit')
}
function onBeforeExit () {
callRefs('beforeExit')
}
function callRefs (event) {
for (const ref of refs[event]) {
const obj = ref.deref()
const fn = ref.fn
// This should always happen, however GC is
// undeterministic so it might not happen.
/* istanbul ignore else */
if (obj !== undefined) {
fn(obj, event)
}
}
refs[event] = []
}
function clear (ref) {
for (const event of ['exit', 'beforeExit']) {
const index = refs[event].indexOf(ref)
refs[event].splice(index, index + 1)
uninstall(event)
}
}
function _register (event, obj, fn) {
if (obj === undefined) {
throw new Error('the object can\'t be undefined')
}
install(event)
const ref = new WeakRef(obj)
ref.fn = fn
ensureRegistry()
registry.register(obj, ref)
refs[event].push(ref)
}
function register (obj, fn) {
_register('exit', obj, fn)
}
function registerBeforeExit (obj, fn) {
_register('beforeExit', obj, fn)
}
function unregister (obj) {
if (registry === undefined) {
return
}
registry.unregister(obj)
for (const event of ['exit', 'beforeExit']) {
refs[event] = refs[event].filter((ref) => {
const _obj = ref.deref()
return _obj && _obj !== obj
})
uninstall(event)
}
}
module.exports = {
register,
registerBeforeExit,
unregister
}
@@ -1,37 +0,0 @@
{
"name": "on-exit-leak-free",
"version": "2.1.2",
"description": "Execute a function on exit without leaking memory, allowing all objects to be garbage collected",
"main": "index.js",
"scripts": {
"test": "standard | snazzy && tap test/*.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/mcollina/on-exit-or-gc.git"
},
"keywords": [
"weak",
"reference",
"finalization",
"registry",
"process",
"exit",
"garbage",
"collector"
],
"author": "Matteo Collina <hello@matteocollina.com>",
"license": "MIT",
"bugs": {
"url": "https://github.com/mcollina/on-exit-or-gc/issues"
},
"homepage": "https://github.com/mcollina/on-exit-or-gc#readme",
"devDependencies": {
"snazzy": "^9.0.0",
"standard": "^17.0.0",
"tap": "^16.0.0"
},
"engines": {
"node": ">=14.0.0"
}
}