UNPKG

@code-pushup/js-packages-plugin

Version:
64 lines 2.44 kB
import { z } from 'zod'; import { issueSeveritySchema, pluginScoreTargetsSchema, } from '@code-pushup/models'; import { defaultAuditLevelMapping } from './constants.js'; export const dependencyGroups = ['prod', 'dev', 'optional']; const dependencyGroupSchema = z.enum(dependencyGroups); const packageCommandSchema = z.enum(['audit', 'outdated']).meta({ title: 'PackageCommand', }); const packageManagerIdSchema = z .enum(['npm', 'yarn-classic', 'yarn-modern', 'pnpm']) .meta({ title: 'PackageManagerId' }); const packageJsonPathSchema = z .string() .regex(/package\.json$/, 'File path must end with package.json') .meta({ title: 'PackageJsonPath', description: 'File path to package.json, tries to use root package.json at CWD by default', }) .default('package.json'); export const packageAuditLevels = [ 'critical', 'high', 'moderate', 'low', 'info', ]; const packageAuditLevelSchema = z.enum(packageAuditLevels).meta({ title: 'PackageAuditLevel', }); export function fillAuditLevelMapping(mapping) { return { critical: mapping.critical ?? defaultAuditLevelMapping.critical, high: mapping.high ?? defaultAuditLevelMapping.high, moderate: mapping.moderate ?? defaultAuditLevelMapping.moderate, low: mapping.low ?? defaultAuditLevelMapping.low, info: mapping.info ?? defaultAuditLevelMapping.info, }; } export const jsPackagesPluginConfigSchema = z .object({ checks: z .array(packageCommandSchema) .min(1) .default(['audit', 'outdated']) .meta({ description: 'Package manager commands to be run. Defaults to both audit and outdated.', }), packageManager: packageManagerIdSchema .meta({ description: 'Package manager to be used.' }) .optional(), dependencyGroups: z .array(dependencyGroupSchema) .min(1) .default(['prod', 'dev']), auditLevelMapping: z .partialRecord(packageAuditLevelSchema, issueSeveritySchema) .default(defaultAuditLevelMapping) .transform(fillAuditLevelMapping) .describe('Mapping of audit levels to issue severity. Custom mapping or overrides may be entered manually, otherwise has a default preset.'), packageJsonPath: packageJsonPathSchema, scoreTargets: pluginScoreTargetsSchema, }) .meta({ title: 'JSPackagesPluginConfig' }); //# sourceMappingURL=config.js.map