UNPKG

@codecov/nuxt-plugin

Version:

Official Codecov Nuxt plugin

112 lines (106 loc) 3.24 kB
'use strict'; const unplugin = require('unplugin'); const bundlerPluginCore = require('@codecov/bundler-plugin-core'); const vitePlugin = require('@codecov/vite-plugin'); const kit = require('@nuxt/kit'); function getBundleName(initialName = "", initialDir = "", format, name) { let bundleName = name ? `${initialName}-${name}` : initialName; const dir = initialDir.includes("server") ? "server" : initialDir.includes("client") ? "client" : void 0; if (dir) { bundleName = `${bundleName}-${dir}`; } format = format === "es" ? "esm" : format; bundleName = `${bundleName}-${format}`; return bundleName; } const nuxtBundleAnalysisPlugin = ({ output, pluginName, pluginVersion }) => ({ version: output.version, name: pluginName, pluginVersion, vite: { generateBundle(options) { if (!output.bundleName || output.bundleName === "") { bundlerPluginCore.red("Bundle name is not present or empty. Skipping upload."); return; } const name = getBundleName( output.originalBundleName, options.dir, options.format, options.name ); output.unlockBundleName(); output.setBundleName(name); output.lockBundleName(); output.setPlugin(pluginName, pluginVersion); } } }); const PLUGIN_NAME = "@codecov/nuxt-plugin"; const PLUGIN_VERSION = "1.9.1"; const codecovNuxtPluginFactory = unplugin.createVitePlugin( (userOptions, unpluginMetaContext) => { if (bundlerPluginCore.checkNodeVersion(unpluginMetaContext)) { return []; } const normalizedOptions = bundlerPluginCore.normalizeOptions(userOptions); if (!normalizedOptions.success) { const { shouldExit } = bundlerPluginCore.handleErrors(normalizedOptions); if (shouldExit) { process.exit(1); } return []; } const plugins = []; const options = normalizedOptions.options; const sentryConfig = bundlerPluginCore.createSentryInstance({ telemetry: options.telemetry, isDryRun: options.dryRun, pluginName: PLUGIN_NAME, pluginVersion: PLUGIN_VERSION, options, bundler: unpluginMetaContext.framework, metaFramework: "nuxt" }); const output = new bundlerPluginCore.Output( options, { metaFramework: unpluginMetaContext.framework }, sentryConfig ); if (options.enableBundleAnalysis) { plugins.push( bundlerPluginCore.telemetryPlugin({ sentryClient: sentryConfig.sentryClient, sentryScope: sentryConfig.sentryScope, telemetry: options.telemetry }), nuxtBundleAnalysisPlugin({ output, pluginName: PLUGIN_NAME, pluginVersion: PLUGIN_VERSION }), vitePlugin._internal_viteBundleAnalysisPlugin({ output, pluginName: PLUGIN_NAME, pluginVersion: PLUGIN_VERSION }) ); } return plugins; } ); const codecovNuxtPlugin = kit.defineNuxtModule({ meta: { name: PLUGIN_NAME, configKey: "codecovNuxtPlugin" }, setup(options) { kit.addVitePlugin(() => codecovNuxtPluginFactory(options)); } }); module.exports = codecovNuxtPlugin; //# sourceMappingURL=index.cjs.map