From 7dd980d1a423f4252661944aa930094c3989b1d1 Mon Sep 17 00:00:00 2001
From: Lucas Fernandes de Oliveira <lfo14@inf.ufpr.br>
Date: Thu, 30 Nov 2017 11:50:26 -0200
Subject: [PATCH] Issue #51: Add linter to .gitlabci.yml

Signed-off-by: Lucas Fernandes de Oliveira <lfo14@inf.ufpr.br>
---
 .gitlab-ci.yml           | 1 +
 src/adapter/postgres.ts  | 2 +-
 src/core/engine.spec.ts  | 4 ++--
 src/util/graph.ts        | 4 ++--
 test/postgres/fixture.ts | 2 +-
 tslint.json              | 4 +++-
 6 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 893848c..d9772e7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -19,6 +19,7 @@ run_tests:
     script:
         - mv config/ci_test.yaml.example config/test.yaml
         - npm test
+        - npm run lint
     tags:
         - node
         - postgres
diff --git a/src/adapter/postgres.ts b/src/adapter/postgres.ts
index b1156e8..436b482 100644
--- a/src/adapter/postgres.ts
+++ b/src/adapter/postgres.ts
@@ -646,7 +646,7 @@ export class PostgresAdapter extends Adapter {
 
         // Joins
         let conds: string[] = [];
-        for (let i in dimMap) {
+        for (let i of Object.keys(dimMap)) {
             let remainViews = dimMap[i].views.slice();
             let dim = dimMap[i].dim;
             let leftSide = this.buildColumn(dim, remainViews.shift().id);
diff --git a/src/core/engine.spec.ts b/src/core/engine.spec.ts
index df5d495..66c5c1b 100644
--- a/src/core/engine.spec.ts
+++ b/src/core/engine.spec.ts
@@ -311,7 +311,7 @@ describe("engine class", () => {
             "==": FilterOperator.EQUAL,
             "!=": FilterOperator.NOTEQUAL
         };
-        for (let op in operators) {
+        for (let op of Object.keys(operators)) {
             const strFilter = "dim:0" + op + "0";
             const clause = engine.parseClause(strFilter);
             expect(clause).to.be.an("object");
@@ -328,7 +328,7 @@ describe("engine class", () => {
             expect(clause.filters[0].operator).to.be.equal(operators[op]);
         }
 
-        for (let op in operators) {
+        for (let op of Object.keys(operators)) {
             const strFilter = "dim:2" + op + "0";
             const clause = engine.parseClause(strFilter);
             expect(clause).to.be.an("object");
diff --git a/src/util/graph.ts b/src/util/graph.ts
index 2b02070..2a9e536 100644
--- a/src/util/graph.ts
+++ b/src/util/graph.ts
@@ -339,7 +339,7 @@ export class Graph {
         let queue: Vertex[] = [root];
         while (queue.length > 0) {
             let v: Vertex = queue.shift();
-            for (let key in v.neighbors) {
+            for (let key of Object.keys(v.neighbors)) {
                 let u: Vertex = this.verticeMap[key];
                 if (this.canVisit(u, v.neighbors[key], clauses)) {
                     // Mark all vertices visited by the search
@@ -414,7 +414,7 @@ export class Graph {
 
         let views: View[] = [];
         // Pick all views that contain the root vertex
-        for (let i in root.neighbors) {
+        for (let i of Object.keys(root.neighbors)) {
             views = views.concat(root.neighbors[i].filter((item) => {
                 return item.isView &&
                        this.passConstraints(clauses, item.view.clauses);
diff --git a/test/postgres/fixture.ts b/test/postgres/fixture.ts
index 1f7b892..c966c55 100644
--- a/test/postgres/fixture.ts
+++ b/test/postgres/fixture.ts
@@ -138,7 +138,7 @@ export class Fixture {
         for (let i = 0; i < rows.length; ++i) {
             let values = [];
             let keys = [];
-            for (let key in rows[i]) {
+            for (let key of Object.keys(rows[i])) {
                 keys.push("\"" + key + "\"");
                 values.push("'" + rows[i][key] + "'");
             }
diff --git a/tslint.json b/tslint.json
index 27a0066..5d8557a 100644
--- a/tslint.json
+++ b/tslint.json
@@ -5,6 +5,8 @@
     "object-literal-sort-keys": false,
     "one-line": false,
     "trailing-comma": false,
-    "interface-name": false
+    "interface-name": false,
+    "max-line-length": false,
+    "member-ordering": false
   }
 }
-- 
GitLab