@oazmi/kitchensink - v0.9.13
    Preparing search index...

    Function parseOperator

    • parses a single range operator string (">=1.x.*", etc...), and returns a Operator object.

      Parameters

      • comp: string

      Returns Operator

      import { assertObjectMatch } from "jsr:@std/assert"

      // aliasing our functions and constants for brevity
      const
      fn = parseOperator,
      eq = assertObjectMatch

      eq(fn("1.2.3"), { operator: "=", major: 1, minor: 2, patch: 3 })
      eq(fn(""), { operator: "=", })
      eq(fn("x"), { operator: "=", })
      eq(fn(" 1.x "), { operator: "=", major: 1 })
      eq(fn(" = 1.x"), { operator: "=", major: 1 })
      eq(fn("1.x.*"), { operator: "=", major: 1 })
      eq(fn("1"), { operator: "=", major: 1 })
      eq(fn("> 1.2 "), { operator: ">", major: 1, minor: 2 })
      eq(fn(">1.2.0"), { operator: ">", major: 1, minor: 2, patch: 0 })
      eq(fn(">=1.2"), { operator: ">=", major: 1, minor: 2 })
      eq(fn("<1.2"), { operator: "<", major: 1, minor: 2 })
      eq(fn("<=1.2"), { operator: "<=", major: 1, minor: 2 })
      eq(fn("<1.0.0"), { operator: "<", major: 1, minor: 0, patch: 0 })
      eq(fn("<1-pre"), { operator: "<", major: 1, prerelease: "pre" })
      eq(fn("<1+abc"), { operator: "<", major: 1, build: "abc" })
      eq(fn("!=1.x"), { operator: "!=", major: 1 })