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";
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, };}