all files / dist/writers/ ParametersWriter.js

100% Statements 26/26
100% Branches 6/6
100% Functions 6/6
100% Lines 26/26
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37  16× 16× 16× 16×   12× 12× 12× 12× 12×   12×       12× 10×          
"use strict";
var ParametersWriter = (function () {
    function ParametersWriter(writer, parameterWriter, parameterWithDestructuringWriter, typeWriter) {
        this.writer = writer;
        this.parameterWriter = parameterWriter;
        this.parameterWithDestructuringWriter = parameterWithDestructuringWriter;
        this.typeWriter = typeWriter;
    }
    ParametersWriter.prototype.write = function (def, flags) {
        var _this = this;
        var thisType = def.thisType;
        this.writer.write("(");
        this.writeThisType(thisType);
        def.parameters.forEach(function (param, i) {
            _this.writer.conditionalWrite(i > 0 || thisType != null, ", ");
            _this.writeParameter(param, flags);
        });
        this.writer.write(")");
    };
    ParametersWriter.prototype.writeParameter = function (param, flags) {
        if (param.destructuringProperties.length === 0)
            this.parameterWriter.write(param, flags);
        else
            this.parameterWithDestructuringWriter.write(param, flags);
    };
    ParametersWriter.prototype.writeThisType = function (thisType) {
        if (thisType == null)
            return;
        this.writer.write("this");
        this.typeWriter.writeWithColon(thisType, "any");
    };
    return ParametersWriter;
}());
exports.ParametersWriter = ParametersWriter;
 
//# sourceMappingURL=ParametersWriter.js.map