Files
renovate/lib/modules/versioning/schema.ts
T
renovate[bot] 4a2578d18d build(deps): update dependency zod to v4 (main) (#41225)
* build(deps): update dependency zod to v4

| datasource | package | from    | to    |
| ---------- | ------- | ------- | ----- |
| npm        | zod     | 3.25.76 | 4.3.6 |

* fix: zod migration

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-02-18 07:37:50 +00:00

40 lines
1.1 KiB
TypeScript

import { isFunction } from '@sindresorhus/is';
import { z } from 'zod/v3';
import { logger } from '../../logger/index.ts';
import versionings from './api.ts';
import * as defaultVersioning from './semver-coerced/index.ts';
import type { VersioningApi } from './types.ts';
export const Versioning = z
.string()
.transform((versioningSpec, ctx): VersioningApi => {
const [versioningName, ...versioningRest] = versioningSpec.split(':');
let versioning = versionings.get(versioningName);
if (!versioning) {
logger.debug(
`Versioning: '${versioningSpec}' not found, falling back to ${defaultVersioning.id}`,
);
return defaultVersioning.api;
}
if (isFunction(versioning)) {
const versioningConfig = versioningRest.length
? versioningRest.join(':')
: undefined;
try {
versioning = new versioning(versioningConfig);
} catch (error) {
ctx.addIssue({
code: 'custom',
message: `Versioning: '${versioningSpec}' failed to initialize`,
params: { error },
});
return z.NEVER;
}
}
return versioning;
});