function evaluateNodeWithArgument(options, arg) {
    options.logger.logNode(options.node, options.typescript, "nodeWithArgument");
    const { node } = options, rest = tslib.__rest(options, ["node"]);
    if (rest.typescript.isGetAccessorDeclaration(node)) {
        return evaluateGetAccessorDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isSetAccessorDeclaration(node)) {
        return evaluateSetAccessorDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isPropertyAssignment(node)) {
        return evaluatePropertyAssignment(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isPropertyDeclaration(node)) {
        return evaluatePropertyDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isParameter(node)) {
        return evaluateParameterDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isEnumMember(node)) {
        return evaluateEnumMember(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isShorthandPropertyAssignment(node)) {
        return evaluateShorthandPropertyAssignment(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isDecorator(node)) {
        return evaluateDecorator(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isSpreadAssignment(node)) {
        return evaluateSpreadAssignment(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isMethodDeclaration(node)) {
        return evaluateMethodDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isArrayBindingPattern(node)) {
        return evaluateArrayBindingPattern(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isBindingElement(node)) {
        return evaluateBindingElement(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isObjectBindingPattern(node)) {
        return evaluateObjectBindingPattern(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isVariableDeclaration(node)) {
        return evaluateVariableDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isCaseBlock(node)) {
        return evaluateCaseBlock(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isCaseClause(node)) {
        return evaluateCaseClause(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isDefaultClause(node)) {
        return evaluateDefaultClause(Object.assign({ node }, rest));
    }
    else if (rest.typescript.isCatchClause(node)) {
        return evaluateCatchClause(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isBindingName(node)) {
        return evaluateBindingName(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isOmittedExpression(node)) {
        return evaluateOmittedExpression(Object.assign({ node }, rest));
    }
    throw new UnexpectedNodeError({ node, typescript: rest.typescript });
}
/**
 * Evaluates a given node with the provided argument
 */
Evaluates a given node with the provided argument
Evaluates a given node with the provided argument
function evaluateNodeWithArgument(options, arg) {
    options.logger.logNode(options.node, options.typescript, "nodeWithArgument");
    const { node } = options, rest = tslib.__rest(options, ["node"]);
    if (rest.typescript.isGetAccessorDeclaration(node)) {
        return evaluateGetAccessorDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isSetAccessorDeclaration(node)) {
        return evaluateSetAccessorDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isPropertyAssignment(node)) {
        return evaluatePropertyAssignment(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isPropertyDeclaration(node)) {
        return evaluatePropertyDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isParameter(node)) {
        return evaluateParameterDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isEnumMember(node)) {
        return evaluateEnumMember(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isShorthandPropertyAssignment(node)) {
        return evaluateShorthandPropertyAssignment(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isDecorator(node)) {
        return evaluateDecorator(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isSpreadAssignment(node)) {
        return evaluateSpreadAssignment(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isMethodDeclaration(node)) {
        return evaluateMethodDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isArrayBindingPattern(node)) {
        return evaluateArrayBindingPattern(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isBindingElement(node)) {
        return evaluateBindingElement(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isObjectBindingPattern(node)) {
        return evaluateObjectBindingPattern(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isVariableDeclaration(node)) {
        return evaluateVariableDeclaration(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isCaseBlock(node)) {
        return evaluateCaseBlock(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isCaseClause(node)) {
        return evaluateCaseClause(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isDefaultClause(node)) {
        return evaluateDefaultClause(Object.assign({ node }, rest));
    }
    else if (rest.typescript.isCatchClause(node)) {
        return evaluateCatchClause(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isBindingName(node)) {
        return evaluateBindingName(Object.assign({ node }, rest), arg);
    }
    else if (rest.typescript.isOmittedExpression(node)) {
        return evaluateOmittedExpression(Object.assign({ node }, rest));
    }
    throw new UnexpectedNodeError({ node, typescript: rest.typescript });
}
function evaluateNodeWithArgument ( options , arg ) { options . logger . logNode ( options . node , options . typescript , "nodeWithArgument" ) ; const { node } = options , rest = tslib . __rest ( options , [ "node" ] ) ; if ( rest . typescript . isGetAccessorDeclaration ( node ) ) { return evaluateGetAccessorDeclaration ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isSetAccessorDeclaration ( node ) ) { return evaluateSetAccessorDeclaration ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isPropertyAssignment ( node ) ) { return evaluatePropertyAssignment ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isPropertyDeclaration ( node ) ) { return evaluatePropertyDeclaration ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isParameter ( node ) ) { return evaluateParameterDeclaration ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isEnumMember ( node ) ) { return evaluateEnumMember ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isShorthandPropertyAssignment ( node ) ) { return evaluateShorthandPropertyAssignment ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isDecorator ( node ) ) { return evaluateDecorator ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isSpreadAssignment ( node ) ) { return evaluateSpreadAssignment ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isMethodDeclaration ( node ) ) { return evaluateMethodDeclaration ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isArrayBindingPattern ( node ) ) { return evaluateArrayBindingPattern ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isBindingElement ( node ) ) { return evaluateBindingElement ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isObjectBindingPattern ( node ) ) { return evaluateObjectBindingPattern ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isVariableDeclaration ( node ) ) { return evaluateVariableDeclaration ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isCaseBlock ( node ) ) { return evaluateCaseBlock ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isCaseClause ( node ) ) { return evaluateCaseClause ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isDefaultClause ( node ) ) { return evaluateDefaultClause ( Object . assign ( { node } , rest ) ) ; } else if ( rest . typescript . isCatchClause ( node ) ) { return evaluateCatchClause ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isBindingName ( node ) ) { return evaluateBindingName ( Object . assign ( { node } , rest ) , arg ) ; } else if ( rest . typescript . isOmittedExpression ( node ) ) { return evaluateOmittedExpression ( Object . assign ( { node } , rest ) ) ; } throw new UnexpectedNodeError ( { node , typescript : rest . typescript } ) ; }
Evaluates a given node with the provided argument
Evaluates a given node with the provided argument