Skip to main content
Module

std/semver/parse_comparator.ts

Deno standard library
Go to Latest
File
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.import { parse } from "./parse.ts";import type { Operator, SemVerComparator } from "./types.ts";import { COMPARATOR, re } from "./_shared.ts";import { comparatorMax } from "./comparator_max.ts";import { comparatorMin } from "./comparator_min.ts";import { ANY, NONE } from "./constants.ts";
/** * Parses a comparator string into a valid SemVerComparator. * @param comparator * @returns A valid SemVerComparator */export function parseComparator(comparator: string): SemVerComparator { const r = re[COMPARATOR]; const m = comparator.match(r);
if (!m) { return NONE; }
const operator = (m[1] ?? "") as Operator; const semver = m[2] ? parse(m[2]) : ANY; const min = comparatorMin(semver, operator); const max = comparatorMax(semver, operator); return { operator, semver, min, max, };}