UNPKG

valibot-schema-semver

Version:
47 lines (33 loc) 1.71 kB
# valibot-schema-semver > Valibot schema for [Semantic Versioning](https://semver.org/). [![License](https://img.shields.io/github/license/idleberg/valibot-schemas?color=blue&style=for-the-badge)](https://github.com/idleberg/valibot-schemas/blob/main/LICENSE) [![Version: npm](https://img.shields.io/npm/v/valibot-schema-semver?style=for-the-badge)](https://www.npmjs.org/package/valibot-schema-semver) [![Version: jsr](https://img.shields.io/jsr/v/@idleberg/valibot-schema-semver?style=for-the-badge)](https://jsr.io/@idleberg/valibot-schema-semver) [![CI: Node](https://img.shields.io/github/actions/workflow/status/idleberg/valibot-schemas/node.yml?logo=nodedotjs&logoColor=white&style=for-the-badge)](https://github.com/idleberg/valibot-schemas/actions/workflows/node.yml) > [!NOTE] > This libray isn't as lightweight as most built-in Valibot schemas, so it might not be suitable for some use-cases. ## Installation ```shell # NodeJS npm install valibot-schema-semver # Deno deno add jsr:@idleberg/valibot-schema-semver ``` ## Usage ```javascript import * as v from "valibot"; import { semver, semverRange } from "valibot-schema-semver"; const PackageJsonSchema = v.object({ name: v.pipe(v.string(), v.minLength(1), v.max(214)), version: semver(), engines: v.object({ node: semverRange(), }), }); ``` For simple version validation, you can also use a lightweight variant (~350B instead of 25kB). This uses the [official regular expression](https://regex101.com/r/vkijKf/1/) rather than the [parser by npm](https://www.npmjs.com/package/semver). ```javascript import { semver } from "valibot-schema-semver/light"; ``` ## License This work is licensed under [The MIT License](LICENSE).