all files / dist/ TestRunnerArgsCacheGenerator.js

100% Statements 24/24
100% Branches 0/0
100% Functions 12/12
100% Lines 24/24
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66                                                                                   
"use strict";
var typeInfo = require("ts-type-info");
var TestRunnerArgsCacheGenerator = (function () {
    /* istanbul ignore next */ function TestRunnerArgsCacheGenerator() {
    }
    TestRunnerArgsCacheGenerator.prototype.fillFile = function (file) {
        file.addClass({
            name: "TestRunnerArgsCache",
            isExported: true,
            typeParameters: [{ name: "T", constraintType: "TestRunner<any, any>" }],
            constructorDef: {
                onWriteFunctionBody: function (writer) {
                    writer.writeLine("this.items = [];");
                }
            },
            properties: [{
                    name: "items",
                    scope: typeInfo.Scope.Private,
                    isReadonly: true,
                    type: "{ args: any[]; value: T; }[]"
                }],
            methods: [{
                    name: "getIndex",
                    parameters: [{ name: "args", type: "any[]" }],
                    onWriteFunctionBody: function (writer) {
                        writer.write("for (let i = 0; i < this.items.length; i++)").block(function () {
                            writer.writeLine("const item = this.items[i];");
                            writer.write("if (args.length !== item.args.length)").block(function () {
                                writer.writeLine("continue;");
                            });
                            writer.newLine();
                            writer.writeLine("let isMatch = true;");
                            writer.write("for (let j = 0; j < args.length; j++)").block(function () {
                                writer.write("if (args[j] !== item.args[j])").block(function () {
                                    writer.writeLine("isMatch = false;");
                                    writer.writeLine("break;");
                                });
                            });
                            writer.write("if (isMatch)").block(function () {
                                writer.writeLine("return i;");
                            });
                        });
                        writer.newLine();
                        writer.writeLine("return -1;");
                    }
                }, {
                    name: "addItem",
                    parameters: [{ name: "value", type: "T" }, { name: "args", type: "any[]" }],
                    onWriteFunctionBody: function (writer) {
                        writer.writeLine("this.items.push({ value, args });");
                    }
                }, {
                    name: "getItemAtIndex",
                    parameters: [{ name: "index", type: "number" }],
                    onWriteFunctionBody: function (writer) {
                        writer.writeLine("return this.items[index].value;");
                    }
                }]
        });
    };
    return TestRunnerArgsCacheGenerator;
}());
exports.TestRunnerArgsCacheGenerator = TestRunnerArgsCacheGenerator;
 
//# sourceMappingURL=TestRunnerArgsCacheGenerator.js.map