@codecov/nuxt-plugin
Version:
Official Codecov Nuxt plugin
112 lines (106 loc) • 3.24 kB
JavaScript
;
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