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:
		@ -1,6 +1,5 @@
 | 
			
		||||
import { SparkSQL } from 'src/parser/spark';
 | 
			
		||||
import { SparkSqlParserListener } from 'src/lib/spark/SparkSqlParserListener';
 | 
			
		||||
import { ParseTreeListener } from 'antlr4ng';
 | 
			
		||||
 | 
			
		||||
describe('Spark SQL Listener Tests', () => {
 | 
			
		||||
    const expectTableName = 'user1';
 | 
			
		||||
@ -10,20 +9,16 @@ describe('Spark SQL Listener Tests', () => {
 | 
			
		||||
    const parseTree = spark.parse(sql);
 | 
			
		||||
 | 
			
		||||
    test('Listener exitTableName', () => {
 | 
			
		||||
        let result = '';
 | 
			
		||||
        class MyListener implements SparkSqlParserListener {
 | 
			
		||||
        class MyListener extends SparkSqlParserListener {
 | 
			
		||||
            result = '';
 | 
			
		||||
            exitTableName = (ctx): void => {
 | 
			
		||||
                result = ctx.getText().toLowerCase();
 | 
			
		||||
                this.result = ctx.getText().toLowerCase();
 | 
			
		||||
            };
 | 
			
		||||
            visitTerminal() {}
 | 
			
		||||
            visitErrorNode() {}
 | 
			
		||||
            enterEveryRule() {}
 | 
			
		||||
            exitEveryRule() {}
 | 
			
		||||
        }
 | 
			
		||||
        const listenTableName = new MyListener();
 | 
			
		||||
        const listener = new MyListener();
 | 
			
		||||
 | 
			
		||||
        spark.listen(listenTableName as ParseTreeListener, parseTree);
 | 
			
		||||
        expect(result).toBe(expectTableName);
 | 
			
		||||
        spark.listen(listener, parseTree);
 | 
			
		||||
        expect(listener.result).toBe(expectTableName);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    test('Split sql listener', async () => {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,5 @@
 | 
			
		||||
import { SparkSQL } from 'src/parser/spark';
 | 
			
		||||
import { SparkSqlParserVisitor } from 'src/lib/spark/SparkSqlParserVisitor';
 | 
			
		||||
import { AbstractParseTreeVisitor } from 'antlr4ng';
 | 
			
		||||
 | 
			
		||||
describe('Spark SQL Visitor Tests', () => {
 | 
			
		||||
    const expectTableName = 'user1';
 | 
			
		||||
@ -12,21 +11,23 @@ describe('Spark SQL Visitor Tests', () => {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    test('Visitor visitTableName', () => {
 | 
			
		||||
        class MyVisitor
 | 
			
		||||
            extends AbstractParseTreeVisitor<any>
 | 
			
		||||
            implements SparkSqlParserVisitor<any>
 | 
			
		||||
        {
 | 
			
		||||
            result: string = '';
 | 
			
		||||
            protected defaultResult() {
 | 
			
		||||
                return this.result;
 | 
			
		||||
        class MyVisitor extends SparkSqlParserVisitor<string> {
 | 
			
		||||
            defaultResult(): string {
 | 
			
		||||
                return '';
 | 
			
		||||
            }
 | 
			
		||||
            visitTableName = (ctx): void => {
 | 
			
		||||
                this.result = ctx.getText().toLowerCase();
 | 
			
		||||
            aggregateResult(aggregate: string, nextResult: string): string {
 | 
			
		||||
                return aggregate + nextResult;
 | 
			
		||||
            }
 | 
			
		||||
            visitProgram = (ctx) => {
 | 
			
		||||
                return this.visitChildren(ctx);
 | 
			
		||||
            };
 | 
			
		||||
            visitTableName = (ctx) => {
 | 
			
		||||
                return ctx.getText().toLowerCase();
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
        const visitor = new MyVisitor();
 | 
			
		||||
        visitor.visit(parseTree);
 | 
			
		||||
        const result = visitor.visit(parseTree);
 | 
			
		||||
 | 
			
		||||
        expect(visitor.result).toBe(expectTableName);
 | 
			
		||||
        expect(result).toBe(expectTableName);
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user