diff --git a/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs b/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs index 6923e7b587e..e9e59ec86a6 100644 --- a/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +++ b/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs @@ -9,19 +9,16 @@ const ddTraceDir = path.join(currentUrl.pathname, '..', '..', '..', '..', '..', let idCounter = 1 let initialized = false - -let port, entryPoint +let port export async function initialize (data) { if (initialized) return Promise.reject(new Error('ALREADY INITIALIZED')) initialized = true port = data.port2 - entryPoint = data.entryPoint } -export async function load(url, context, nextLoad) { - console.log('load?', url) +export async function load (url, context, nextLoad) { const result = await nextLoad(url, context) if (!port) return result diff --git a/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js b/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js index 60a7bf395ee..2ca2d77bcf4 100644 --- a/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +++ b/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js @@ -2,7 +2,7 @@ const Module = require('module') const { pathToFileURL } = require('url') -const { MessageChannel } = require('worker_threads'); +const { MessageChannel } = require('worker_threads') const shimmer = require('../../../../../datadog-shimmer') const { isPrivateModule, isNotLibraryFile } = require('./filter') const { csiMethods } = require('./csi-methods') @@ -17,6 +17,7 @@ const hardcodedSecretCh = dc.channel('datadog:secrets:result') let rewriter let getPrepareStackTrace let kSymbolPrepareStackTrace +let esmRewriterEnabled = false let getRewriterOriginalPathAndLineFromSourceMap = function (path, line, column) { return { path, line, column } @@ -146,8 +147,9 @@ function enableRewriter (telemetryVerbosity) { } function enableEsmRewriter () { - if (isMainThread && Module.register) { - const { port1, port2 } = new MessageChannel(); + if (isMainThread && Module.register && !esmRewriterEnabled) { + esmRewriterEnabled = true + const { port1, port2 } = new MessageChannel() port1.on('message', (message) => { message.source = rewriteForESM(message.source, message.url) port1.postMessage(message) @@ -162,7 +164,6 @@ function enableEsmRewriter () { transferList: [port2] }) } catch (e) { - console.error('e.message', e.message) log.error('[ASM] Error enabling ESM Rewriter', e) } })