From bd94161e5afd6680a726597e9e5767b43b6c9c5f Mon Sep 17 00:00:00 2001 From: tada5hi Date: Tue, 6 Dec 2022 17:34:42 +0100 Subject: [PATCH] fix(terser): __filename not defined --- CODEOWNERS | 1 + packages/terser/src/module.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/CODEOWNERS b/CODEOWNERS index 71a6bc0b7..35faf7426 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -3,3 +3,4 @@ /packages/babel/ @Andarist /packages/image/ @tjenkinson /packages/node-resolve/ @tjenkinson +/packages/terser/ @tada5hi diff --git a/packages/terser/src/module.ts b/packages/terser/src/module.ts index c6264c5a0..5f86c26ea 100644 --- a/packages/terser/src/module.ts +++ b/packages/terser/src/module.ts @@ -1,3 +1,5 @@ +import { fileURLToPath } from 'url'; + import type { NormalizedOutputOptions, RenderedChunk } from 'rollup'; import { hasOwnProperty, isObject, merge } from 'smob'; @@ -5,6 +7,23 @@ import type { Options } from './type'; import { WorkerPool } from './worker-pool'; export default function terser(options: Options = {}) { + let filePath: string | undefined; + + if (typeof __filename !== 'undefined') { + filePath = __filename; + } else { + // @ts-ignore + // eslint-disable-next-line no-lonely-if + if (typeof import.meta !== 'undefined') { + // @ts-ignore + filePath = fileURLToPath(import.meta.url); + } + } + + if (typeof filePath === 'undefined') { + throw new Error('File path could not be determined.'); + } + const workerPool = new WorkerPool({ filePath: __filename, maxWorkers: options.maxWorkers