diff --git a/src/common/data-types/mysql.ts b/src/common/data-types/mysql.ts index e4afc2eb..8b1e33ed 100644 --- a/src/common/data-types/mysql.ts +++ b/src/common/data-types/mysql.ts @@ -1,3 +1,5 @@ +import { TypesGroup } from 'common/interfaces/antares'; + export default [ { group: 'integer', @@ -306,4 +308,4 @@ export default [ } ] } -]; +] as TypesGroup[]; diff --git a/src/common/data-types/postgresql.ts b/src/common/data-types/postgresql.ts index 547a021d..969c8060 100644 --- a/src/common/data-types/postgresql.ts +++ b/src/common/data-types/postgresql.ts @@ -1,3 +1,5 @@ +import { TypesGroup } from 'common/interfaces/antares'; + export default [ { group: 'integer', @@ -290,4 +292,4 @@ export default [ } ] } -]; +] as TypesGroup[]; diff --git a/src/common/data-types/sqlite.ts b/src/common/data-types/sqlite.ts index 0afa316f..1da3be07 100644 --- a/src/common/data-types/sqlite.ts +++ b/src/common/data-types/sqlite.ts @@ -1,3 +1,5 @@ +import { TypesGroup } from 'common/interfaces/antares'; + export default [ { group: 'integer', @@ -134,4 +136,4 @@ export default [ } ] } -]; +] as TypesGroup[]; diff --git a/src/common/interfaces/antares.ts b/src/common/interfaces/antares.ts index 3532c0c6..301c9cf2 100644 --- a/src/common/interfaces/antares.ts +++ b/src/common/interfaces/antares.ts @@ -67,6 +67,11 @@ export interface TypeInformations { zerofill: boolean; } +export interface TypesGroup { + group: string; + types: TypeInformations[]; +} + // Tables export interface TableField { name: string; diff --git a/src/common/libs/hexToBinary.ts b/src/common/libs/hexToBinary.ts index a686c8ef..5e5a6aa7 100644 --- a/src/common/libs/hexToBinary.ts +++ b/src/common/libs/hexToBinary.ts @@ -23,7 +23,7 @@ const lookup = { F: '1111' } as const; -type HexChar = keyof typeof lookup +export type HexChar = keyof typeof lookup export default function hexToBinary (hex: HexChar[]) { let binary = ''; diff --git a/src/main/ipc-handlers/connection.ts b/src/main/ipc-handlers/connection.ts index 36462f3a..72e14fe5 100644 --- a/src/main/ipc-handlers/connection.ts +++ b/src/main/ipc-handlers/connection.ts @@ -1,5 +1,5 @@ import * as antares from 'common/interfaces/antares'; -import fs from 'fs'; +import * as fs from 'fs'; import { ipcMain } from 'electron'; import { ClientsFactory } from '../libs/ClientsFactory'; import { SslOptions } from 'mysql2'; diff --git a/src/main/ipc-handlers/tables.ts b/src/main/ipc-handlers/tables.ts index 466fc10d..f721ce50 100644 --- a/src/main/ipc-handlers/tables.ts +++ b/src/main/ipc-handlers/tables.ts @@ -6,7 +6,7 @@ import moment from 'moment'; import { sqlEscaper } from 'common/libs/sqlEscaper'; import { TEXT, LONG_TEXT, ARRAY, TEXT_SEARCH, NUMBER, FLOAT, BLOB, BIT, DATE, DATETIME } from 'common/fieldTypes'; import * as customizations from 'common/customizations'; -import fs from 'fs'; +import * as fs from 'fs'; export default (connections: {[key: string]: antares.Client}) => { ipcMain.handle('get-table-columns', async (event, params) => { diff --git a/src/main/libs/clients/MySQLClient.ts b/src/main/libs/clients/MySQLClient.ts index 0357180b..fef7de49 100644 --- a/src/main/libs/clients/MySQLClient.ts +++ b/src/main/libs/clients/MySQLClient.ts @@ -1,8 +1,8 @@ import * as antares from 'common/interfaces/antares'; import * as mysql from 'mysql2/promise'; import { AntaresCore } from '../AntaresCore'; -import * as dataTypes from 'common/data-types/mysql'; -import SSH2Promise from 'ssh2-promise'; +import dataTypes from 'common/data-types/mysql'; +import SSH2Promise = require('ssh2-promise'); import SSHConfig from 'ssh2-promise/lib/sshConfig'; export class MySQLClient extends AntaresCore { diff --git a/src/main/libs/clients/PostgreSQLClient.ts b/src/main/libs/clients/PostgreSQLClient.ts index 5727e26a..c4550581 100644 --- a/src/main/libs/clients/PostgreSQLClient.ts +++ b/src/main/libs/clients/PostgreSQLClient.ts @@ -4,8 +4,8 @@ import { builtinsTypes } from 'pg-types'; import * as pg from 'pg'; import * as pgAst from 'pgsql-ast-parser'; import { AntaresCore } from '../AntaresCore'; -import * as dataTypes from 'common/data-types/postgresql'; -import SSH2Promise from 'ssh2-promise'; +import dataTypes from 'common/data-types/postgresql'; +import SSH2Promise = require('ssh2-promise'); import SSHConfig from 'ssh2-promise/lib/sshConfig'; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/src/main/libs/clients/SQLiteClient.ts b/src/main/libs/clients/SQLiteClient.ts index c908bfad..b73a40f2 100644 --- a/src/main/libs/clients/SQLiteClient.ts +++ b/src/main/libs/clients/SQLiteClient.ts @@ -1,7 +1,7 @@ import * as antares from 'common/interfaces/antares'; import * as sqlite from 'better-sqlite3'; import { AntaresCore } from '../AntaresCore'; -import * as dataTypes from 'common/data-types/sqlite'; +import dataTypes from 'common/data-types/sqlite'; import { NUMBER, FLOAT, TIME, DATETIME } from 'common/fieldTypes'; export class SQLiteClient extends AntaresCore { diff --git a/src/main/libs/exporters/sql/MysqlExporter.ts b/src/main/libs/exporters/sql/MysqlExporter.ts index 713c51cc..80ce3c85 100644 --- a/src/main/libs/exporters/sql/MysqlExporter.ts +++ b/src/main/libs/exporters/sql/MysqlExporter.ts @@ -2,7 +2,7 @@ import * as exporter from 'common/interfaces/exporter'; import * as mysql from 'mysql2/promise'; import { SqlExporter } from './SqlExporter'; import { BLOB, BIT, DATE, DATETIME, FLOAT, SPATIAL, IS_MULTI_SPATIAL, NUMBER } from 'common/fieldTypes'; -import hexToBinary from 'common/libs/hexToBinary'; +import hexToBinary, { HexChar } from 'common/libs/hexToBinary'; import { getArrayDepth } from 'common/libs/getArrayDepth'; import * as moment from 'moment'; import { lineString, point, polygon } from '@turf/helpers'; @@ -138,7 +138,7 @@ ${footer} : this.escapeAndQuote(val); } else if (BIT.includes(column.type)) - sqlInsertString += `b'${hexToBinary(Buffer.from(val).toString('hex'))}'`; + sqlInsertString += `b'${hexToBinary(Buffer.from(val).toString('hex') as undefined as HexChar[])}'`; else if (BLOB.includes(column.type)) sqlInsertString += `X'${val.toString('hex').toUpperCase()}'`; else if (NUMBER.includes(column.type)) diff --git a/src/main/libs/exporters/sql/PostgreSQLExporter.ts b/src/main/libs/exporters/sql/PostgreSQLExporter.ts index b2feb460..ee66a784 100644 --- a/src/main/libs/exporters/sql/PostgreSQLExporter.ts +++ b/src/main/libs/exporters/sql/PostgreSQLExporter.ts @@ -2,7 +2,7 @@ import * as antares from 'common/interfaces/antares'; import * as exporter from 'common/interfaces/exporter'; import { SqlExporter } from './SqlExporter'; import { BLOB, BIT, DATE, DATETIME, FLOAT, NUMBER, TEXT_SEARCH } from 'common/fieldTypes'; -import hexToBinary from 'common/libs/hexToBinary'; +import hexToBinary, { HexChar } from 'common/libs/hexToBinary'; import * as moment from 'moment'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore @@ -249,7 +249,7 @@ SET row_security = off;\n\n\n`; else if (TEXT_SEARCH.includes(column.type)) sqlInsertString += `'${val.replaceAll('\'', '\'\'')}'`; else if (BIT.includes(column.type)) - sqlInsertString += `b'${hexToBinary(Buffer.from(val).toString('hex'))}'`; + sqlInsertString += `b'${hexToBinary(Buffer.from(val).toString('hex') as undefined as HexChar[])}'`; else if (BLOB.includes(column.type)) sqlInsertString += `decode('${val.toString('hex').toUpperCase()}', 'hex')`; else if (NUMBER.includes(column.type)) diff --git a/src/main/libs/importers/sql/PostgreSQLImporter.ts b/src/main/libs/importers/sql/PostgreSQLImporter.ts index eb6a79fd..e7d3168c 100644 --- a/src/main/libs/importers/sql/PostgreSQLImporter.ts +++ b/src/main/libs/importers/sql/PostgreSQLImporter.ts @@ -1,6 +1,6 @@ import * as pg from 'pg'; import * as importer from 'common/interfaces/importer'; -import fs from 'fs/promises'; +import * as fs from 'fs/promises'; import PostgreSQLParser from '../../parsers/PostgreSQLParser'; import { BaseImporter } from '../BaseImporter';