mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-01 10:09:50 +00:00
15f4bd8eff
* chore: migrate from zod/v3 to zod/v4 This commit contains the logic changes * chore: migrate imports from zod/v3 to zod/v4 This contains import updates and adds explicit record keys as zod/v4 requires these now * ci: enforce usage of zod/v4
38 lines
903 B
TypeScript
38 lines
903 B
TypeScript
import type { z } from 'zod/v4';
|
|
import { logger } from '../../../logger/index.ts';
|
|
import type { PackageFileContent } from '../types.ts';
|
|
import { HomeAssistantManifest } from './schema.ts';
|
|
|
|
export function extractPackageFile(
|
|
content: string,
|
|
packageFile: string,
|
|
): PackageFileContent | null {
|
|
const result = HomeAssistantManifest.safeParse(content);
|
|
|
|
if (!result.success) {
|
|
const isInvalidJson = result.error.issues.some(
|
|
(i: z.ZodIssue) => i.message === 'Invalid JSON',
|
|
);
|
|
if (isInvalidJson) {
|
|
logger.debug(
|
|
{ packageFile, err: result.error },
|
|
'Failed to parse manifest.json',
|
|
);
|
|
} else {
|
|
logger.debug(
|
|
{ packageFile, err: result.error },
|
|
'Not a Home Assistant manifest',
|
|
);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
const deps = result.data;
|
|
|
|
if (!deps || deps.length === 0) {
|
|
return null;
|
|
}
|
|
|
|
return { deps };
|
|
}
|