@codecov/nuxt-plugin
Version:
Official Codecov Nuxt plugin
1 lines • 8.24 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../src/nuxt-bundle-analysis/getBundleName.ts","../src/nuxt-bundle-analysis/nuxtBundleAnalysisPlugin.ts","../src/index.ts"],"sourcesContent":["export function getBundleName(\n initialName = \"\",\n initialDir = \"\",\n format: string,\n name: string | undefined,\n) {\n let bundleName = name ? `${initialName}-${name}` : initialName;\n\n const dir = initialDir.includes(\"server\")\n ? \"server\"\n : initialDir.includes(\"client\")\n ? \"client\"\n : undefined;\n if (dir) {\n bundleName = `${bundleName}-${dir}`;\n }\n\n format = format === \"es\" ? \"esm\" : format;\n bundleName = `${bundleName}-${format}`;\n\n return bundleName;\n}\n","import {\n type BundleAnalysisUploadPlugin,\n red,\n} from \"@codecov/bundler-plugin-core\";\nimport { getBundleName } from \"./getBundleName\";\n\nexport const nuxtBundleAnalysisPlugin: BundleAnalysisUploadPlugin = ({\n output,\n pluginName,\n pluginVersion,\n}) => ({\n version: output.version,\n name: pluginName,\n pluginVersion,\n vite: {\n generateBundle(this, options) {\n // TODO - remove this once we hard fail on not having a bundle name\n // don't need to do anything if the bundle name is not present or empty\n if (!output.bundleName || output.bundleName === \"\") {\n red(\"Bundle name is not present or empty. Skipping upload.\");\n return;\n }\n\n const name = getBundleName(\n output.originalBundleName,\n options.dir,\n options.format,\n options.name,\n );\n\n output.unlockBundleName();\n output.setBundleName(name);\n output.lockBundleName();\n\n // manually set this to avoid resetting in the vite plugin\n output.setPlugin(pluginName, pluginVersion);\n },\n },\n});\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { type UnpluginOptions, createVitePlugin } from \"unplugin\";\nimport {\n type Options,\n normalizeOptions,\n checkNodeVersion,\n Output,\n handleErrors,\n createSentryInstance,\n telemetryPlugin,\n} from \"@codecov/bundler-plugin-core\";\nimport { _internal_viteBundleAnalysisPlugin } from \"@codecov/vite-plugin\";\nimport { addVitePlugin, defineNuxtModule } from \"@nuxt/kit\";\n\nimport { nuxtBundleAnalysisPlugin } from \"./nuxt-bundle-analysis/nuxtBundleAnalysisPlugin\";\nimport { type NuxtModule } from \"nuxt/schema\";\n\n// @ts-expect-error this value is being replaced by rollup\nconst PLUGIN_NAME = __PACKAGE_NAME__ as string;\n// @ts-expect-error this value is being replaced by rollup\nconst PLUGIN_VERSION = __PACKAGE_VERSION__ as string;\n\nconst codecovNuxtPluginFactory = createVitePlugin<Options, true>(\n (userOptions, unpluginMetaContext) => {\n if (checkNodeVersion(unpluginMetaContext)) {\n return [];\n }\n\n const normalizedOptions = normalizeOptions(userOptions);\n if (!normalizedOptions.success) {\n const { shouldExit } = handleErrors(normalizedOptions);\n\n if (shouldExit) {\n process.exit(1);\n }\n return [];\n }\n\n const plugins: UnpluginOptions[] = [];\n const options = normalizedOptions.options;\n const sentryConfig = createSentryInstance({\n telemetry: options.telemetry,\n isDryRun: options.dryRun,\n pluginName: PLUGIN_NAME,\n pluginVersion: PLUGIN_VERSION,\n options,\n bundler: unpluginMetaContext.framework,\n metaFramework: \"nuxt\",\n });\n\n const output = new Output(\n options,\n { metaFramework: unpluginMetaContext.framework },\n sentryConfig,\n );\n\n if (options.enableBundleAnalysis) {\n plugins.push(\n telemetryPlugin({\n sentryClient: sentryConfig.sentryClient,\n sentryScope: sentryConfig.sentryScope,\n telemetry: options.telemetry,\n }),\n nuxtBundleAnalysisPlugin({\n output,\n pluginName: PLUGIN_NAME,\n pluginVersion: PLUGIN_VERSION,\n }),\n _internal_viteBundleAnalysisPlugin({\n output,\n pluginName: PLUGIN_NAME,\n pluginVersion: PLUGIN_VERSION,\n }),\n );\n }\n\n return plugins;\n },\n);\n\n/**\n * Details for the Codecov Nuxt module.\n *\n * @example\n * ```typescript\n * // nuxt.config.ts\n * import { defineNuxtConfig } from \"nuxt/config\";\n *\n * export default defineNuxtConfig({\n * devtools: { enabled: true },\n * w\n * builder: \"vite\",\n * // Ensure that the plugin is added to the modules array\n * modules: [\n * [\n * \"@codecov/nuxt-plugin\",\n * {\n * enableBundleAnalysis: true,\n * bundleName: \"nuxt-bundle-analysis\",\n * gitService: \"github\",\n * },\n * ],\n * ],\n * });\n * ```\n *\n * @see {@link @codecov/bundler-plugin-core!Options | Options} for list of options.\n */\nconst codecovNuxtPlugin = defineNuxtModule<Options>({\n meta: {\n name: PLUGIN_NAME,\n configKey: \"codecovNuxtPlugin\",\n },\n setup(options) {\n addVitePlugin(() => codecovNuxtPluginFactory(options));\n },\n}) as NuxtModule<Options>;\n\nexport default codecovNuxtPlugin;\n"],"names":["red","createVitePlugin","checkNodeVersion","normalizeOptions","handleErrors","createSentryInstance","Output","telemetryPlugin","_internal_viteBundleAnalysisPlugin","defineNuxtModule","addVitePlugin"],"mappings":"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"}