all files / dist/writers-new/ ParametersWriter.js

100% Statements 36/36
100% Branches 10/10
100% Functions 8/8
100% Lines 36/36
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 38 39 40 41 42 43 44 45 46 47 48 49  82× 82× 82× 82× 82×   13× 13× 13× 13× 13×   13×           13× 11×          
"use strict";
var definitions_1 = require("./../definitions");
var ParametersWriter = (function () {
    function ParametersWriter(writer, decoratorWriter, parameterWriter, parameterWithDestructuringWriter, typeWriter) {
        this.writer = writer;
        this.decoratorWriter = decoratorWriter;
        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) {
        this.writeDecorators(param, flags);
        if (param.destructuringProperties.length === 0)
            this.parameterWriter.write(param, flags);
        else
            this.parameterWithDestructuringWriter.write(param, flags);
    };
    ParametersWriter.prototype.writeDecorators = function (param, flags) {
        var _this = this;
        if (!(param instanceof definitions_1.BaseClassMethodParameterDefinition) && !(param instanceof definitions_1.ClassConstructorParameterDefinition))
            return;
        param.decorators.forEach(function (dec) {
            _this.decoratorWriter.write(dec, flags);
            _this.writer.write(" ");
        });
    };
    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