MCPcopy Index your code
hub / github.com/nodejs/node / makeHook

Function makeHook

test/parallel/test-eventemitter-asyncresource.js:16–52  ·  view source on GitHub ↗
(trackedTypes)

Source from the content-addressed store, hash-verified

14} = require('timers/promises');
15
16function makeHook(trackedTypes) {
17 const eventMap = new Map();
18
19 function log(asyncId, name) {
20 const entry = eventMap.get(asyncId);
21 if (entry !== undefined) entry.push({ name });
22 }
23
24 const hook = createHook({
25 init(asyncId, type, triggerAsyncId, resource) {
26 if (trackedTypes.includes(type)) {
27 eventMap.set(asyncId, [
28 {
29 name: 'init',
30 type,
31 triggerAsyncId,
32 resource,
33 },
34 ]);
35 }
36 },
37
38 before(asyncId) { log(asyncId, 'before'); },
39 after(asyncId) { log(asyncId, 'after'); },
40 destroy(asyncId) { log(asyncId, 'destroy'); },
41 }).enable();
42
43 return {
44 done() {
45 hook.disable();
46 return new Set(eventMap.values());
47 },
48 ids() {
49 return new Set(eventMap.keys());
50 },
51 };
52}
53
54// Tracks emit() calls correctly using async_hooks
55(async () => {

Calls 2

createHookFunction · 0.50
enableMethod · 0.45

Tested by

no test coverage detected