Skip to content

Commit

Permalink
refactor(next/telemetry): use basename for the absolute plugin path (#…
Browse files Browse the repository at this point in the history
…38473)

Minor changes to SWC plugin telemetry payload. SWC's plugin can be either resolvable npm pkg, or absolute path. If it's an absolute path, try to grab actual plugin name only as we do not need any paths.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm lint`
- [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
  • Loading branch information
kwonoj committed Jul 13, 2022
1 parent 53bc5b3 commit 102cef0
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions 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'
Expand Down Expand Up @@ -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 []
Expand Down

0 comments on commit 102cef0

Please sign in to comment.