• Public
  • Public/Protected
  • All

Class describing the cycle resolution process. Requires the abstract cycle description and a set of default formulas.

The resolution is performed with CycleResolution.resolve method.

Resolution are memoized, based on the input. You should generally have a single instance of this class for a single set of default formulas, to accumulate the results and make resolution fast.


  • Base
    • CycleResolution




defaultResolutionFormulas: CycleResolutionFormulas = new Set()

A set of default formulas for this resolution. Default formulas specifies how the calculation should be performed, if there's no user input for any variable (or there's input for all of them). Also, default formulas are preferred, if several formulas can be chosen to continue the resolution.


description: CycleDescription = undefined

Abstract cycle description for this resolution.



  • initialize<T>(props?: Partial<T>): void
  • This method applies its 1st argument (if any) to the current instance using Object.assign().

    Supposed to be overridden in the subclasses to customize the instance creation process.

    Type parameters


    • Optional props: Partial<T>

    Returns void


  • This method accepts an input object and returns a cycle resolution. Resolution are memoized, based on the input.


    Returns CycleResolutionValue

Static new

  • new<T>(this: T, props?: Partial<InstanceType<T>>): InstanceType<T>
  • This is a type-safe static constructor method, accepting a single argument, with the object, corresponding to the class properties. It will generate a compilation error, if unknown property is provided.

    For example:

    class MyClass extends Base {
        prop     : string
    const instance : MyClass = MyClass.new({ prop : 'prop', wrong : 11 })

    will produce:

    TS2345: Argument of type '{ prop: string; wrong: number; }' is not assignable to parameter of type 'Partial<MyClass>'.
    Object literal may only specify known properties, and 'wrong' does not exist in type 'Partial<MyClass>'

    The only thing this constructor does is create an instance and call the initialize method on it, forwarding the first argument. The customization of instance is supposed to be performed in that method.

    Type parameters


    • this: T
    • Optional props: Partial<InstanceType<T>>

    Returns InstanceType<T>

Generated using TypeDoc