build: open ts strict check (#279)

* feat: no check lib dir

* feat: open strict check to src dir

* test: update test tsconfig.json

* feat: remove any type

* feat: do not export AbstractParseTreeVisitor

* feat: export StmtContextType as enum

* build: improve antlr4 script
This commit is contained in:
Hayden
2024-03-27 19:04:16 +08:00
committed by GitHub
parent bb0fad1dbe
commit c6615aecac
77 changed files with 439 additions and 349 deletions

View File

@ -19,7 +19,7 @@ describe('FlinkSQL benchmark tests', () => {
const reportData: string[] = [];
test('createTable Over 100 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 100 Rows', () => {
const [totalTimes, averageTimes] = benchmark('CreateTable Over 100 Rows', () => {
const testSQL = features.createTable[0];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -28,7 +28,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('createTable Over 1000 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 1000 Rows', () => {
const [totalTimes, averageTimes] = benchmark('CreateTable Over 1000 Rows', () => {
const testSQL = features.createTable[1];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -37,7 +37,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('createTable Over 5000 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 5000 Rows', () => {
const [totalTimes, averageTimes] = benchmark('CreateTable Over 5000 Rows', () => {
const testSQL = features.createTable[2];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -46,7 +46,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('selectTable Over 100 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 100 Rows', () => {
const [totalTimes, averageTimes] = benchmark('SelectTable Over 100 Rows', () => {
const testSQL = features.selectTable[0];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -55,7 +55,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('selectTable Over 1000 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 1000 Rows', () => {
const [totalTimes, averageTimes] = benchmark('SelectTable Over 1000 Rows', () => {
const testSQL = features.selectTable[1];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -64,7 +64,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('selectTable Over 5000 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 5000 Rows', () => {
const [totalTimes, averageTimes] = benchmark('SelectTable Over 5000 Rows', () => {
const testSQL = features.selectTable[2];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -73,7 +73,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('insertTable Over 100 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 100 Rows', () => {
const [totalTimes, averageTimes] = benchmark('InsertTable Over 100 Rows', () => {
const testSQL = features.insertTable[0];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -82,7 +82,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('insertTable Over 1000 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 1000 Rows', () => {
const [totalTimes, averageTimes] = benchmark('InsertTable Over 1000 Rows', () => {
const testSQL = features.insertTable[1];
const res = flink.validate(testSQL);
expect(res).toEqual([]);
@ -91,7 +91,7 @@ describe('FlinkSQL benchmark tests', () => {
});
test('insertTable Over 5000 Rows', async () => {
const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 5000 Rows', () => {
const [totalTimes, averageTimes] = benchmark('InsertTable Over 5000 Rows', () => {
const testSQL = features.insertTable[2];
const res = flink.validate(testSQL);
expect(res).toEqual([]);

View File

@ -1,4 +1,3 @@
import { ErrorNode, ParserRuleContext, TerminalNode } from 'antlr4ng';
import { FlinkSQL } from 'src/parser/flink';
import { FlinkSqlParserListener } from 'src/lib/flink/FlinkSqlParserListener';
import { TableExpressionContext } from 'src/lib/flink/FlinkSqlParser';
@ -11,20 +10,17 @@ describe('Flink SQL Listener Tests', () => {
const parseTree = flink.parse(sql);
test('Listener enterTableName', async () => {
let result = '';
class MyListener implements FlinkSqlParserListener {
enterTableExpression = (ctx: TableExpressionContext): void => {
result = ctx.getText().toLowerCase();
};
visitTerminal(node: TerminalNode): void {}
visitErrorNode(node: ErrorNode): void {}
enterEveryRule(node: ParserRuleContext): void {}
exitEveryRule(node: ParserRuleContext): void {}
}
const listenTableName = new MyListener();
class MyListener extends FlinkSqlParserListener {
result = '';
await flink.listen(listenTableName, parseTree);
expect(result).toBe(expectTableName);
enterTableExpression = (ctx: TableExpressionContext): void => {
this.result = ctx.getText().toLowerCase();
};
}
const listener = new MyListener();
flink.listen(listener, parseTree);
expect(listener.result).toBe(expectTableName);
});
test('Split sql listener', async () => {

View File

@ -23,8 +23,6 @@ describe('Flink SQL Syntax Suggestion with collect entity', () => {
};
const sql = commentOtherLine(syntaxSql, pos.lineNumber);
const parseTree = flink.parse(sql);
const syntaxes = flink.getSuggestionAtCaretPosition(sql, pos)?.syntax;
const suggestion = syntaxes?.find(
(syn) => syn.syntaxContextType === EntityContextType.COLUMN

View File

@ -1,7 +1,6 @@
import { FlinkSQL } from 'src/parser/flink';
import { FlinkSqlParserVisitor } from 'src/lib/flink/FlinkSqlParserVisitor';
import { AbstractParseTreeVisitor } from 'antlr4ng';
import { TableExpressionContext } from 'src/lib/flink/FlinkSqlParser';
import { ProgramContext, TableExpressionContext } from 'src/lib/flink/FlinkSqlParser';
describe('Flink SQL Visitor Tests', () => {
const expectTableName = 'user1';
@ -13,20 +12,22 @@ describe('Flink SQL Visitor Tests', () => {
});
test('Visitor visitTableName', () => {
let result = '';
class MyVisitor
extends AbstractParseTreeVisitor<any>
implements FlinkSqlParserVisitor<any>
{
protected defaultResult() {
return result;
class MyVisitor extends FlinkSqlParserVisitor<string> {
defaultResult(): string {
return '';
}
visitTableExpression(ctx: TableExpressionContext) {
result = ctx.getText().toLowerCase();
aggregateResult(aggregate: string, nextResult: string): string {
return aggregate + nextResult;
}
visitProgram = (ctx: ProgramContext) => {
return this.visitChildren(ctx);
};
visitTableExpression = (ctx: TableExpressionContext) => {
return ctx.getText().toLowerCase();
};
}
const visitor: any = new MyVisitor();
visitor.visit(parseTree);
const visitor = new MyVisitor();
const result = visitor.visit(parseTree);
expect(result).toBe(expectTableName);
});