diff --git a/packages/next/telemetry/events/swc-plugins.ts b/packages/next/telemetry/events/swc-plugins.ts index 7a0d9ee8473e..157799041ce8 100644 --- a/packages/next/telemetry/events/swc-plugins.ts +++ b/packages/next/telemetry/events/swc-plugins.ts @@ -1,4 +1,6 @@ import findUp from 'next/dist/compiled/find-up' +import path from 'path' +import { fileExists } from '../../lib/file-exists' import type { NextConfig } from '../../server/config-shared' const EVENT_SWC_PLUGIN_PRESENT = 'NEXT_SWC_PLUGIN_DETECTED' @@ -26,22 +28,23 @@ export async function eventSwcPlugins( const swcPluginPackages = config.experimental?.swcPlugins?.map(([name, _]) => name) ?? [] - return swcPluginPackages.reduce( - (events: SwcPluginsEvent[], plugin: string): SwcPluginsEvent[] => { + return Promise.all( + swcPluginPackages.map(async (plugin) => { // swc plugins can be non-npm pkgs with absolute path doesn't have version const version = deps[plugin] ?? undefined + let pluginName = plugin + if (await fileExists(pluginName)) { + pluginName = path.basename(plugin, '.wasm') + } - events.push({ + return { eventName: EVENT_SWC_PLUGIN_PRESENT, payload: { - pluginName: plugin, + pluginName: pluginName, pluginVersion: version, }, - }) - - return events - }, - [] + } + }) ) } catch (_) { return []