UNPKG

@codecov/astro-plugin

Version:
1 lines 8.73 kB
{"version":3,"file":"index.cjs","sources":["../src/astro-bundle-analysis/getBundleName.ts","../src/astro-bundle-analysis/astroBundleAnalysisPlugin.ts","../src/index.ts"],"sourcesContent":["export function getBundleName(\n initialName = \"\",\n target: \"client\" | \"server\",\n format: string,\n name: string | undefined,\n) {\n let bundleName = name\n ? `${initialName}-${name}-${target}`\n : `${initialName}-${target}`;\n\n format = format === \"es\" ? \"esm\" : format;\n bundleName = `${bundleName}-${format}`;\n\n return bundleName;\n}\n","import {\n type BundleAnalysisUploadPluginArgs,\n type BundleAnalysisUploadPluginReturn,\n red,\n} from \"@codecov/bundler-plugin-core\";\nimport { getBundleName } from \"./getBundleName\";\n\ninterface AstroBundleAnalysisArgs extends BundleAnalysisUploadPluginArgs {\n target: \"client\" | \"server\";\n}\n\ntype AstroBundleAnalysisPlugin = (\n args: AstroBundleAnalysisArgs,\n) => BundleAnalysisUploadPluginReturn;\n\nexport const astroBundleAnalysisPlugin: AstroBundleAnalysisPlugin = ({\n output,\n target,\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 target,\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","import { 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 { type AstroIntegration } from \"astro\";\nimport { type PluginOption } from \"vite\";\n\nimport { astroBundleAnalysisPlugin } from \"./astro-bundle-analysis/astroBundleAnalysisPlugin\";\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\ninterface AstroPluginFactoryOptions extends Options {\n // type can be found from the AstroIntegration type\n target: \"client\" | \"server\";\n}\n\nconst astroPluginFactory = createVitePlugin<AstroPluginFactoryOptions, true>(\n ({ target, ...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: \"astro\",\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 astroBundleAnalysisPlugin({\n output,\n target,\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 Astro plugin.\n *\n * @example\n * ```typescript\n * // astro.config.mjs\n * import { defineConfig } from \"astro/config\";\n * import { codecovAstroPlugin } from \"@codecov/astro-plugin\";\n *\n * // https://astro.build/config\n * export default defineConfig({\n * // other config settings\n * integrations: [\n * // place this after all other integrations\n * codecovAstroPlugin({\n * enableBundleAnalysis: true,\n * bundleName: \"example-astro-bundle\",\n * gitService: \"github\",\n * }),\n * ],\n * });\n * ```\n *\n * @see {@link @codecov/bundler-plugin-core!Options | Options} for list of options.\n */\nconst codecovAstroPlugin = (options: Options): AstroIntegration => ({\n name: PLUGIN_NAME,\n hooks: {\n // target is type \"client\" | \"server\" so instead of determining that on our\n // own we can just utilize this value.\n \"astro:build:setup\": ({ vite, target }) => {\n if (vite?.plugins) {\n const astroPlugin = astroPluginFactory({\n ...options,\n target,\n }) as PluginOption;\n vite.plugins.push(astroPlugin);\n }\n },\n },\n});\n\nexport default codecovAstroPlugin;\n"],"names":["red","createVitePlugin","checkNodeVersion","normalizeOptions","handleErrors","createSentryInstance","Output","telemetryPlugin","_internal_viteBundleAnalysisPlugin"],"mappings":"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"}