@haxall/haxall
    Preparing search index...

    Class Depend

    Depend models a dependency as a pod name and a version constraint. Convention for Fantom pods is a four part version format of major.minor.build.patch.

    The string format for Depend:

    <depend>        := <name> space* <constraints>
    <constraints> := <constraint> [space* "," space* <constraint>]*
    <constraint> := <versionSimple> | <versionPlus> | <versionRange>
    <versionSimple> := <version>
    <versionPlus> := <version> space* "+"
    <versionRange> := <version> space* "-" space* <version>
    <version> := <digits> ["." <digits>]*
    <digits> := <digit> [<digits>]*
    <digit> := "0" - "9"

    Note a simple version constraint such as "foo 1.2" really means "1.2.*" - it will match all build numbers and patch numbers within "1.2". Likewise "foo 1.2.64" will match all patch numbers within the "1.2.64" build. The "+" plus sign is used to specify a given version and anything greater. The "-" dash is used to specify an inclusive range. When using a range, the end version is matched using the same rules as a simple version - for example "4", "4.2", and "4.0.99" are all matches for "foo 1.2-4". You may specify a list of potential constraints separated by commas - a match for the entire dependency is made if any one constraint is matched.

    Examples:

    "foo 1.2"      Any version of foo 1.2 with any build or patch number
    "foo 1.2.64" Any version of foo 1.2.64 with any patch number
    "foo 0+" Any version of foo - version wildcard
    "foo 1.2+" Any version of foo 1.2 or greater
    "foo 1.2-1.4" Any version between 1.2 and 1.4 inclusive
    "foo 1.2,1.4" Any version of 1.2 or 1.4

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    type$: Type

    Methods

    • Return a negative integer, zero, or a positive integer if this object is less than, equal to, or greater than the specified object:

      this < that   =>  <0
      this == that => 0
      this > that => >0

      This method may also be accessed via the < <= <=> >= and > shortcut operators. If not overridden the default implementation compares the toStr representations. Also see docLang.

      Examples:

      3.compare(8)  =>  -1
      8.compare(3) => 1
      8.compare(8) => 0
      3 <=> 8 => -1 // shortcut for 3.compare(8)

      Parameters

      Returns number

    • Return the ending version if versionRange:

      • versionSimple: returns null
      • versionPlus: returns null
      • versionRange: returns end version

      Parameters

      • Optionalindex: number

      Returns Version

    • Two Depends are equal if they have same normalized string representation.

      Parameters

      Returns boolean

    • Return a hash code based on the normalized string representation.

      Returns number

    • Return if this Obj is immutable and safe to share between threads:

      • an instance of a const class
      • the result of toImmutable on List, Map, or Buf
      • a Func object may or may not be immutable - see sys::Func.
      • other instances are assumed mutable and return false

      Returns boolean

    • Return if the constraint at the specified index is a versionPlus:

      • versionSimple: returns false
      • versionPlus: returns true
      • versionRange: returns false

      Parameters

      • Optionalindex: number

      Returns boolean

    • Return if the constraint at the specified index is a versionRange:

      • versionSimple: returns false
      • versionPlus: returns false
      • versionRange: returns true

      Parameters

      • Optionalindex: number

      Returns boolean

    • Return if the constraint at the specified index is neither a plus nor a range:

      • versionSimple: returns true
      • versionPlus: returns false
      • versionRange: returns false

      Parameters

      • Optionalindex: number

      Returns boolean

    • Return if the specified version is a match against this dependency's constraints. See class header for matching rules.

      Parameters

      Returns boolean

    • Get the pod name of the dependency.

      Returns string

    • Get the number of version constraints. There is always at least one constraint.

      Returns number

    • Get an immutable representation of this instance or throw NotImmutableErr if this object cannot be represented as an immutable:

      • if type is const, return this
      • if already an immutable List, Map, Buf, or Func return this
      • if a List, then attempt to perform a deep clone by calling toImmutable on all items
      • if a Map, then attempt to perform a deep clone by calling toImmutable on all values (keys are already immutable)
      • some Funcs can be made immutable - see sys::Func
      • if a Buf create immutable copy, see sys::Buf
      • any other object throws NotImmutableErr

      Returns Readonly<this>

    • Get the normalized string format of this dependency. Normalized dependency strings do not contain any optional spaces. See class header for specification of the format.

      Returns string

    • Trap a dynamic call for handling. Dynamic calls are invoked with the -> shortcut operator:

      a->x        a.trap("x", null)
      a->x() a.trap("x", null)
      a->x = b a.trap("x", [b])
      a->x(b) a.trap("x", [b])
      a->x(b, c) a.trap("x", [b, c])

      The default implementation provided by Obj attempts to use reflection. If name maps to a method, it is invoked with the specified arguments. If name maps to a field and args.size is zero, get the field. If name maps to a field and args.size is one, set the field and return args[0]. Otherwise throw UnknownSlotErr.

      Parameters

      Returns JsObj

    • Get the Type instance which represents this object's class. Also seeType.of or Pod.of.

      Returns Type

    • Get the version constraint at specified index:

      • versionSimple: returns the version
      • versionPlus: returns the version
      • versionRange: returns the start version

      Parameters

      • Optionalindex: number

      Returns Version

    • This method called whenever an it-block is applied to an object. The default implementation calls the function with this, and then returns this.

      Parameters

      • f: (arg0: this) => void

      Returns this

    • Write x.toStr to standard output followed by newline. If x is null then print "null". If no argument is provided then print an empty line.

      Parameters

      Returns void

    • Parse the string accordingly into a dependency. See class header for specification of the format. If invalid format and checked is false return null, otherwise throw ParseErr.

      Parameters

      • s: string
      • Optionalchecked: boolean
      • ...args: unknown[]

      Returns Depend