CodBi
    Preparing search index...

    Class AE

    A DBC defining that all elements of an objects have to fulfill a given object's check-method (( toCheck : any ) => boolean | string).

    Maintainer: Callari, Salvatore (XDBC@WaXCode.net)

    Hierarchy (View Summary)

    Index

    Constructors

    • Creates this AE by setting the protected property AE.conditions, AE.index and AE.idxEnd used by AE.check.

      Parameters

      • conditions:
            | { check: (toCheck: unknown) => string | boolean }[]
            | { check: (toCheck: unknown) => string | boolean }
      • index: number = undefined
      • idxEnd: number = undefined

      Returns AE

    Properties

    conditions:
        | { check: (toCheck: unknown) => string | boolean }[]
        | { check: (toCheck: unknown) => string | boolean }
    idxEnd: number = undefined
    index: number = undefined
    infringementSettings: { logToConsole: boolean; throwException: boolean } = ...

    Stores the settings concerning infringements

    warningSettings: { logToConsole: boolean } = ...

    Stores settings concerning warnings.

    Infringement: typeof __class = ...

    An Error to be thrown whenever an infringement is detected.

    paramValueRequests: Map<
        object,
        Map<string | symbol, Map<number, ((value: any) => undefined)[]>>,
    > = ...

    Stores all request for parameter values registered by decPrecondition.

    Methods

    • Reports a field-infringement via reportInfringement also generating a proper string-wrapper for the given message & name.

      Parameters

      • message: string

        A string describing the infringement and it's provenience.

      • target: object
      • path: string

        The dotted-path string that leads to the value not fulfilling the contract starting from the tagged one.

      • key: string

        The property key.

      • value: unknown

        The value not fulfilling a contract.

      Returns undefined

    • Reports an infringement according to the infringementSettings also generating a proper string-wrapper for the given "message" & violator.

      Parameters

      • message: string

        The string describing the infringement and it's provenience.

      • violator: string

        The string describing or naming the violator.

      • target: object
      • path: string

      Returns undefined

    • Reports a parameter-infringement via reportInfringement also generating a proper string-wrapper for the given "message","method", parameter-"index" & value.

      Parameters

      • message: string

        The string describing the infringement and it's provenience.

      • target: object
      • path: string
      • method: string

        The string describing or naming the violator.

      • index: number

        The index of the parameter within the argument listing.

      • value: unknown

        The parameter's value.

      Returns undefined

    • Reports a returnvalue-infringement according via reportInfringement also generating a proper string-wrapper for the given "message","method" & value.

      Parameters

      • message: string

        The string describing the infringement and it's provenience.

      • target: object
      • path: string
      • method: string

        The string describing or naming the violator.

      • value: any

        The parameter's value.

      Returns void

    • Reports a warning.

      Parameters

      • message: string

        The message containing the warning.

      Returns undefined

    • Checks each element of the value-Array < any > against the given condition, if it is one. If it is not the value itself will be checked.

      Parameters

      • condition: { check: (toCheck: unknown) => string | boolean }

        The { check: (toCheck: any) => boolean | string } to check the value against.

      • value: object

        Either value-Array < any >, which's elements will be checked, or the value to be checked itself.

      • index: number

        If specified with idxEnd being undefined, this Number will be seen as the index of the value-Array's element to check. If value isn't an Array this parameter will not have any effect. With idxEnd not undefined this parameter indicates the beginning of the span of elements to check within the value-Array.

      • idxEnd: number

        Indicates the last element's index (including) of the span of value-Array elements to check. Setting this parameter to -1 specifies that all value-Array's elements beginning from the specified index shall be checked.

      Returns string | boolean

      As soon as the condition returns a string, instead of TRUE, the returned string. TRUE if the condition never returns a string.

    • A property-decorator factory serving as a Design By Contract Invariant. Since the value must be initialized or set according to the specified contracts the value will only be checked when assigning it.

      Parameters

      • contracts: { check: (toCheck: unknown) => string | boolean }[]

        The DBC-Contracts the value shall uphold.

      • path: string = undefined
      • dbc: string = "WaXCode.DBC"

      Returns (target: unknown, propertyKey: string | symbol) => void

      A DBC.Infringement whenever the property is tried to be set to a value that does not comply to the specified contracts, by the returned method.

    • A method decorator factory checking the result of a method whenever it is invoked thus also usable on getters.

      Parameters

      • check: (toCheck: any, object: any, string: any) => string | boolean

        The (toCheck: any, object, string) => boolean | string to use for checking.

      • dbc: string
      • path: string = undefined

        The dotted path referring to the actual value to check, starting form the specified one.

      Returns (
          target: object,
          propertyKey: string,
          descriptor: PropertyDescriptor,
      ) => PropertyDescriptor

      The ( target : object, propertyKey : string, descriptor : PropertyDescriptor ) : PropertyDescriptor invoked by Typescript.

    • A parameter-decorator factory that requests the tagged parameter's value passing it to the provided "check"-method when the value becomes available.

      Parameters

      • check: (unknown: any, object: any, string: any, number: any) => string | boolean

        The "( unknown ) => void" to be invoked along with the tagged parameter's value as soon as it becomes available.

      • dbc: string
      • path: string = undefined

        The dotted path referring to the actual value to check, starting form the specified one.

      Returns (target: object, methodName: string | symbol, parameterIndex: number) => void

      The (target: object, methodName: string | symbol, parameterIndex: number ) => void invoked by Typescript-

    • A field-decorator factory using the AE.checkAlgorithm with either multiple or a single one of the realConditions to check the tagged field.

      Parameters

      • realConditions:
            | { check: (toCheck: any) => string | boolean }[]
            | { check: (toCheck: any) => string | boolean }

        Either one or more { check: (toCheck: any) => boolean | string } to check the tagged parameter-value against with.

      • index: number = undefined
      • idxEnd: number = undefined
      • path: string = undefined
      • dbc: string = "WaXCode.DBC"

      Returns (target: unknown, propertyKey: string | symbol) => void

      See DBC.decInvariant.

    • A method-decorator factory checking the paramValueRequests for value-requests of the method's parameter thus also usable on setters. When found it will invoke the "receptor" registered there, inter alia by requestParamValue, with the parameter's value.

      Parameters

      • target: object

        The object hosting the tagged method as provided by the runtime.

      • propertyKey: string

        The tagged method's name as provided by the runtime.

      • descriptor: PropertyDescriptor

        The PropertyDescriptor as provided by the runtime.

      Returns PropertyDescriptor

      The PropertyDescriptor that was passed by the runtime.

    StaticPOST

    • POST(
          realConditions:
              | { check: (toCheck: any) => string | boolean }[]
              | { check: (toCheck: any) => string | boolean },
          index?: number,
          idxEnd?: number,
          path?: string,
          dbc?: string,
      ): (
          target: object,
          propertyKey: string,
          descriptor: PropertyDescriptor,
      ) => PropertyDescriptor

      A method-decorator factory using the AE.checkAlgorithm with either multiple or a single one of the realConditions to check the tagged method's return-value against with.

      Parameters

      • realConditions:
            | { check: (toCheck: any) => string | boolean }[]
            | { check: (toCheck: any) => string | boolean }

        Either one or more { check: (toCheck: any) => boolean | string } to check the tagged parameter-value against with.

      • index: number = undefined
      • idxEnd: number = undefined
      • path: string = undefined
      • dbc: string = "WaXCode.DBC"

      Returns (
          target: object,
          propertyKey: string,
          descriptor: PropertyDescriptor,
      ) => PropertyDescriptor

      A string as soon as one { check: (toCheck: any) => boolean | string } of realConditions return one. Otherwise TRUE.

    • A parameter-decorator factory using the AE.checkAlgorithm with either multiple or a single one of the realConditions to check the tagged parameter-value against with. When specifying an index and the tagged parameter's value is an Array, the realConditions apply to the element at the specified index. If the Array is too short the currently processed { check: (toCheck: any) => boolean | string } of realConditions will be verified to TRUE automatically, considering optional parameters. If an index is specified but the tagged parameter's value isn't an array, the index is treated as being undefined. If index is undefined and the tagged parameter's value is an Array each element of it will be checked against the realConditions.

      Parameters

      • realConditions:
            | { check: (toCheck: unknown) => string | boolean }[]
            | { check: (toCheck: unknown) => string | boolean }

        Either one or more { check: (toCheck: any) => boolean | string } to check the tagged parameter-value against with.

      • index: number = undefined
      • idxEnd: number = undefined
      • path: string = undefined
      • dbc: string = "WaXCode.DBC"

      Returns (target: object, methodName: string | symbol, parameterIndex: number) => void

      A string as soon as one { check: (toCheck: any) => boolean | string } of realConditions returns one. Otherwise TRUE.

    • Make a request to get the value of a certain parameter of specific method in a specific object. That request gets enlisted in paramValueRequests which is used by ParamvalueProvider to invoke the given "receptor" with the parameter value stored in there. Thus a parameter decorator using this method will not receive any value of the top method is not tagged with ParamvalueProvider.

      Parameters

      • target: object

        The object containing the method with the parameter which's value is requested.

      • methodName: string | symbol

        The name of the method with the parameter which's value is requested.

      • index: number

        The index of the parameter which's value is requested.

      • receptor: (value: any) => undefined

        The method the requested parameter-value shall be passed to when it becomes available.

      Returns undefined

    • Resolves the desired object out a given one toResolveFrom using the specified path.

      Parameters

      • toResolveFrom: unknown

        The object starting to resolve from.

      • path: string

        The dotted path-string. This string uses ., [...], and () to represent accessing nested properties, array elements/object keys, and calling methods, respectively, mimicking JavaScript syntax to navigate an object's structure. Code, e.g. something like a.b( 1 as number ).c, will not be executed and thus make the retrieval fail.

      Returns unknown

      The requested object, NULL or UNDEFINED.

    • Resolves the specified dotted string-path to a DBC.

      Parameters

      • obj: any

        The object to start resolving from.

      • path: any

        The dotted string-path leading to the DBC.

      Returns DBC

      The requested DBC.