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 { PostgreSQL } from 'src/parser/postgresql';
 | 
			
		||||
import { PostgreSqlParserListener } from 'src/lib/postgresql/PostgreSqlParserListener';
 | 
			
		||||
import { ParseTreeListener } from 'antlr4ng';
 | 
			
		||||
 | 
			
		||||
describe('PostgreSQL Listener Tests', () => {
 | 
			
		||||
    const expectTableName = 'user1';
 | 
			
		||||
@ -10,20 +9,16 @@ describe('PostgreSQL Listener Tests', () => {
 | 
			
		||||
    const parseTree = postgresql.parse(sql);
 | 
			
		||||
 | 
			
		||||
    test('Listener enterTableName', async () => {
 | 
			
		||||
        let result = '';
 | 
			
		||||
        class MyListener implements PostgreSqlParserListener {
 | 
			
		||||
            enterTable_ref(ctx) {
 | 
			
		||||
                result = ctx.getText().toLowerCase();
 | 
			
		||||
            }
 | 
			
		||||
            visitTerminal() {}
 | 
			
		||||
            visitErrorNode() {}
 | 
			
		||||
            enterEveryRule() {}
 | 
			
		||||
            exitEveryRule() {}
 | 
			
		||||
        class MyListener extends PostgreSqlParserListener {
 | 
			
		||||
            result = '';
 | 
			
		||||
            enterTable_ref = (ctx) => {
 | 
			
		||||
                this.result = ctx.getText().toLowerCase();
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
        const listenTableName = new MyListener();
 | 
			
		||||
        const listener = new MyListener();
 | 
			
		||||
 | 
			
		||||
        await postgresql.listen(listenTableName as ParseTreeListener, parseTree);
 | 
			
		||||
        expect(result).toBe(expectTableName);
 | 
			
		||||
        postgresql.listen(listener, parseTree);
 | 
			
		||||
        expect(listener.result).toBe(expectTableName);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    test('Split sql listener', async () => {
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,4 @@
 | 
			
		||||
import { PostgreSQL } from 'src/parser/postgresql';
 | 
			
		||||
import { AbstractParseTreeVisitor } from 'antlr4ng';
 | 
			
		||||
import { PostgreSqlParserVisitor } from 'src/lib/postgresql/PostgreSqlParserVisitor';
 | 
			
		||||
 | 
			
		||||
describe('MySQL Visitor Tests', () => {
 | 
			
		||||
@ -12,21 +11,22 @@ describe('MySQL Visitor Tests', () => {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    test('Visitor visitTableName', () => {
 | 
			
		||||
        let result = '';
 | 
			
		||||
        class MyVisitor
 | 
			
		||||
            extends AbstractParseTreeVisitor<any>
 | 
			
		||||
            implements PostgreSqlParserVisitor<any>
 | 
			
		||||
        {
 | 
			
		||||
            protected defaultResult() {
 | 
			
		||||
                return result;
 | 
			
		||||
        class MyVisitor extends PostgreSqlParserVisitor<string> {
 | 
			
		||||
            defaultResult(): string {
 | 
			
		||||
                return '';
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            visitTable_ref(ctx) {
 | 
			
		||||
                result = ctx.getText().toLowerCase();
 | 
			
		||||
            aggregateResult(aggregate: string, nextResult: string): string {
 | 
			
		||||
                return aggregate + nextResult;
 | 
			
		||||
            }
 | 
			
		||||
            visitProgram = (ctx) => {
 | 
			
		||||
                return this.visitChildren(ctx);
 | 
			
		||||
            };
 | 
			
		||||
            visitTable_ref = (ctx) => {
 | 
			
		||||
                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);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user