zephyr-agent
Version:
Zephyr plugin agent
79 lines (78 loc) • 2.31 kB
JavaScript
import "node:module";
const FALLBACK_PLUGIN_PACKAGE_NAME = 'zephyr-packages';
const BUILDER_PLUGIN_CANDIDATES = {
webpack: [
'zephyr-webpack-plugin',
'zephyr-modernjs-plugin'
],
rspack: [
'zephyr-rspack-plugin',
'zephyr-rsbuild-plugin',
'zephyr-rspress-plugin',
'zephyr-modernjs-plugin'
],
repack: [
'zephyr-repack-plugin'
],
metro: [
'zephyr-metro-plugin'
],
vite: [
'vite-plugin-zephyr',
'vite-plugin-vinext-zephyr',
'vite-plugin-tanstack-start-zephyr'
],
nuxt: [
'zephyr-nuxt-module'
],
rollup: [
'rollup-plugin-zephyr'
],
rolldown: [
'zephyr-rolldown-plugin'
],
parcel: [
'parcel-reporter-zephyr'
],
astro: [
'zephyr-astro-integration'
],
unknown: [
'zephyr-cli'
]
};
const KNOWN_PLUGIN_PACKAGES = [
'zephyr-webpack-plugin',
'zephyr-modernjs-plugin',
'zephyr-rspack-plugin',
'zephyr-rsbuild-plugin',
'zephyr-rspress-plugin',
'zephyr-repack-plugin',
'zephyr-metro-plugin',
'vite-plugin-zephyr',
'vite-plugin-vinext-zephyr',
'vite-plugin-tanstack-start-zephyr',
'zephyr-nuxt-module',
'rollup-plugin-zephyr',
'zephyr-rolldown-plugin',
'parcel-reporter-zephyr',
'zephyr-astro-integration',
'zephyr-cli'
];
function collectDeclaredPackageNames(packageJson) {
return new Set([
...Object.keys(packageJson.dependencies ?? {}),
...Object.keys(packageJson.devDependencies ?? {}),
...Object.keys(packageJson.peerDependencies ?? {}),
...Object.keys(packageJson.optionalDependencies ?? {})
]);
}
function resolveZephyrPluginPackageName(packageJson, builder) {
const declaredPackageNames = collectDeclaredPackageNames(packageJson);
const builderCandidates = BUILDER_PLUGIN_CANDIDATES[builder] ?? [];
for (const candidate of builderCandidates)if (declaredPackageNames.has(candidate)) return candidate;
for (const packageName of KNOWN_PLUGIN_PACKAGES)if (declaredPackageNames.has(packageName)) return packageName;
return builderCandidates[0] ?? FALLBACK_PLUGIN_PACKAGE_NAME;
}
export { resolveZephyrPluginPackageName };
//# sourceMappingURL=plugin-package-name.mjs.map