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

100% Statements 32/32
100% Branches 16/16
100% Functions 7/7
100% Lines 32/32
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  84× 84× 84× 84×                        
"use strict";
var definitions_1 = require("./../definitions");
var WriteFlags_1 = require("./../WriteFlags");
var ParameterWriter = (function () {
    function ParameterWriter(writer, baseWriter, typeWithDefaultExpressionWriter, classConstructorParameterScopeWriter) {
        this.writer = writer;
        this.baseWriter = baseWriter;
        this.typeWithDefaultExpressionWriter = typeWithDefaultExpressionWriter;
        this.classConstructorParameterScopeWriter = classConstructorParameterScopeWriter;
    }
    ParameterWriter.prototype.write = function (param, flags) {
        var _this = this;
        this.baseWriter.writeWrap(param, function () {
            if (param instanceof definitions_1.ClassConstructorParameterDefinition) {
                if ((flags & WriteFlags_1.WriteFlags.HideScopeOnParameters) === 0) {
                    _this.classConstructorParameterScopeWriter.writeScope(param.scope);
                    _this.writer.write(" ");
                }
                _this.writer.conditionalWrite(param.isReadonly, "readonly ");
            }
            _this.writeRestParameter(param);
            _this.writer.write(param.name);
            _this.writeIsOptional(param, flags);
            _this.typeWithDefaultExpressionWriter.write(param, flags, _this.getFallbackTypeText(param));
        });
    };
    ParameterWriter.prototype.writeRestParameter = function (param) {
        if (param.isRestParameter)
            this.writer.write("...");
    };
    ParameterWriter.prototype.getFallbackTypeText = function (param) {
        return param.isRestParameter ? "any[]" : "any";
    };
    ParameterWriter.prototype.writeIsOptional = function (param, flags) {
        var isOptionalNotRest = param.isOptional && !param.isRestParameter;
        var willWriteDefaultExpression = param.defaultExpression != null && (flags & WriteFlags_1.WriteFlags.HideExpressions) !== WriteFlags_1.WriteFlags.HideExpressions;
        if (isOptionalNotRest && !willWriteDefaultExpression)
            this.writer.write("?");
    };
    return ParameterWriter;
}());
exports.ParameterWriter = ParameterWriter;
 
//# sourceMappingURL=ParameterWriter.js.map