소스 검색

[frontend] Add tsx to eslint and fix linting issues

Johan Åhlén 3 년 전
부모
커밋
9888316f9a

+ 1 - 1
.eslintrc.js

@@ -112,7 +112,7 @@ module.exports = {
       }
     },
     {
-      files: ['*.ts'],
+      files: ['*.ts', '*.tsx'],
       extends: ['plugin:@typescript-eslint/recommended'],
       parser: '@typescript-eslint/parser',
       plugins: ['jest', '@typescript-eslint'],

+ 1 - 1
desktop/core/src/desktop/js/parse/types.ts

@@ -191,7 +191,7 @@ export interface AutocompleteParseResult {
 }
 
 export interface SqlStatementsParser {
-  parse(text: string): ParsedSqlStatement;
+  parse(text: string): ParsedSqlStatement[];
 }
 
 export interface AutocompleteParser {

+ 3 - 2
desktop/core/src/desktop/js/parse/utils.ts

@@ -17,10 +17,11 @@
 import { Connector } from 'config/types';
 import hplsqlStatementsParser from 'parse/hplsqlStatementsParser';
 import sqlStatementsParser from 'parse/sqlStatementsParser';
+import { SqlStatementsParser } from './types';
 
-export const getStatementsParser = (connector: Connector): any => {
+export const getStatementsParser = (connector: Connector): SqlStatementsParser => {
   if (connector.dialect === 'hplsql') {
-    return hplsqlStatementsParser;
+    return hplsqlStatementsParser as unknown as SqlStatementsParser;
   } else {
     return sqlStatementsParser;
   }

+ 11 - 5
desktop/core/src/desktop/js/reactComponents/ReactExampleGlobal/ReactExampleGlobal.tsx

@@ -5,19 +5,25 @@ import React, { useState } from 'react';
 import './ReactExampleGlobal.scss';
 
 export interface ReactExampleGlobalProps {
-  onClick(e: React.MouseEvent): any;
-  version: string;
-  myObj?: any;
+  onClick?(e: React.MouseEvent): void;
+  version?: string;
+  myObj?: { id: string };
   className?: string;
   children?: React.ReactNode | React.ReactNode[];
 }
 
 const defaultProps = {
+  // eslint-disable-next-line @typescript-eslint/no-empty-function
   onClick: () => {},
   version: 'xxx'
 };
 
-const ReactExampleGlobal = ({ onClick, children, version, myObj }: ReactExampleGlobalProps) => {
+const ReactExampleGlobal = ({
+  onClick,
+  children,
+  version,
+  myObj
+}: ReactExampleGlobalProps): JSX.Element => {
   const [isClicked, setIsClicked] = useState(false);
 
   return (
@@ -25,7 +31,7 @@ const ReactExampleGlobal = ({ onClick, children, version, myObj }: ReactExampleG
       className="react-example-global"
       disabled={isClicked}
       onClick={e => {
-        onClick(e);
+        onClick && onClick(e);
         setIsClicked(true);
         console.info(`ReactExampleGlobal clicked  ${version} ${myObj?.id}`);
       }}

+ 3 - 3
desktop/core/src/desktop/js/reactComponents/useHuePubSub.test.tsx

@@ -5,11 +5,11 @@ import huePubSub from '../utils/huePubSub';
 describe('useHuePubSub', () => {
   const originalSubscribe = huePubSub.subscribe;
   let publishCallback;
-  let remove = jest.fn();
+  const remove = jest.fn();
 
   const subscribeMock = jest.fn().mockImplementation((topic, callback) => {
     publishCallback = callback;
-    return { remove }
+    return { remove };
   });
 
   beforeAll(() => {
@@ -31,7 +31,7 @@ describe('useHuePubSub', () => {
     expect(huePubSub.subscribe).toHaveBeenCalledWith('my.test.topic', expect.anything(), undefined);
     expect(huePubSub.subscribe).toHaveBeenCalledTimes(1);
     expect(remove).not.toHaveBeenCalled();
-    
+
     rerender();
     expect(remove).toHaveBeenCalled();
     expect(huePubSub.subscribe).toHaveBeenCalledTimes(2);