JS: Implement new metric queries for line counting

This commit is contained in:
Asger Feldthaus
2021-03-01 15:19:08 +00:00
parent c6a69e1d6e
commit 6ca425f033
18 changed files with 98 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
/**
* @name Total source files
* @description The total number of source files.
* @kind metric
* @id js/metrics/files
*/
import javascript
select count(File f | not f.getATopLevel().isExterns())

View File

@@ -0,0 +1,10 @@
/**
* @name Total lines of text
* @description The total number of lines of text across all source files.
* @kind metric
* @id js/metrics/lines
*/
import javascript
select sum(File f | not f.getATopLevel().isExterns() | f.getNumberOfLines())

View File

@@ -0,0 +1,10 @@
/**
* @name Total lines of code
* @description The total number of lines of code across all source files.
* @kind metric
* @id js/metrics/lines-of-code
*/
import javascript
select sum(File f | not f.getATopLevel().isExterns() | f.getNumberOfLinesOfCode())

View File

@@ -0,0 +1,12 @@
/**
* @name Lines of code per source file
* @description The number of lines of code for each source file.
* @kind metric
* @id js/metrics/lines-of-code-per-file
*/
import javascript
from File f
where not f.getATopLevel().isExterns()
select f, f.getNumberOfLinesOfCode()

View File

@@ -0,0 +1,12 @@
/**
* @name Lines of text per source file
* @description The number of lines of text for each source file.
* @kind metric
* @id js/metrics/lines-per-file
*/
import javascript
from File f
where not f.getATopLevel().isExterns()
select f, f.getNumberOfLines()

View File

@@ -0,0 +1 @@
| 22 |

View File

@@ -0,0 +1 @@
Diagnostics/Lines.ql

View File

@@ -0,0 +1 @@
| 12 |

View File

@@ -0,0 +1 @@
Diagnostics/LinesOfCode.ql

View File

@@ -0,0 +1,4 @@
| src/.eslintrc.yml:0:0:0:0 | src/.eslintrc.yml | 0 |
| src/javascript_file.js:0:0:0:0 | src/javascript_file.js | 6 |
| src/package.json:0:0:0:0 | src/package.json | 0 |
| src/typescript_file.ts:0:0:0:0 | src/typescript_file.ts | 6 |

View File

@@ -0,0 +1 @@
Diagnostics/LinesOfCodePerFile.ql

View File

@@ -0,0 +1,4 @@
| src/.eslintrc.yml:0:0:0:0 | src/.eslintrc.yml | 2 |
| src/javascript_file.js:0:0:0:0 | src/javascript_file.js | 7 |
| src/package.json:0:0:0:0 | src/package.json | 6 |
| src/typescript_file.ts:0:0:0:0 | src/typescript_file.ts | 7 |

View File

@@ -0,0 +1 @@
Diagnostics/LinesPerFile.ql

View File

@@ -0,0 +1,2 @@
rules:
semi: error

View File

@@ -0,0 +1,8 @@
/**
* @externs
*/
// Should not be counted
function Object() {}
function String() {}

View File

@@ -0,0 +1,7 @@
function foo(x) {
return x;
}
function bar(y) {
return y;
}

View File

@@ -0,0 +1,6 @@
{
"private": true,
"devDependencies": {
"typescript": "*"
}
}

View File

@@ -0,0 +1,7 @@
export interface Foo {
x: number;
}
export function getX(f: Foo) {
return f.x;
}