mirror of https://github.com/Fabio286/antares.git
feat: ipc event channel to send logs to renderer
This commit is contained in:
parent
abf829867e
commit
f12a04b052
|
@ -25,6 +25,7 @@ export interface IpcResponse<T = any> {
|
||||||
*/
|
*/
|
||||||
export interface ClientParams {
|
export interface ClientParams {
|
||||||
client: ClientCode;
|
client: ClientCode;
|
||||||
|
uid: string;
|
||||||
params:
|
params:
|
||||||
mysql.ConnectionOptions & {schema: string; ssl?: mysql.SslOptions; ssh?: SSHConfig; readonly: boolean}
|
mysql.ConnectionOptions & {schema: string; ssl?: mysql.SslOptions; ssh?: SSHConfig; readonly: boolean}
|
||||||
| pg.ClientConfig & {schema: string; ssl?: mysql.SslOptions; ssh?: SSHConfig; readonly: boolean}
|
| pg.ClientConfig & {schema: string; ssl?: mysql.SslOptions; ssh?: SSHConfig; readonly: boolean}
|
||||||
|
|
|
@ -55,6 +55,7 @@ export default (connections: {[key: string]: antares.Client}) => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const connection = await ClientsFactory.getClient({
|
const connection = await ClientsFactory.getClient({
|
||||||
|
uid: conn.uid,
|
||||||
client: conn.client,
|
client: conn.client,
|
||||||
params
|
params
|
||||||
});
|
});
|
||||||
|
@ -128,6 +129,7 @@ export default (connections: {[key: string]: antares.Client}) => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const connection = ClientsFactory.getClient({
|
const connection = ClientsFactory.getClient({
|
||||||
|
uid: conn.uid,
|
||||||
client: conn.client,
|
client: conn.client,
|
||||||
params,
|
params,
|
||||||
poolSize: 5
|
poolSize: 5
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
import * as antares from 'common/interfaces/antares';
|
import * as antares from 'common/interfaces/antares';
|
||||||
|
import { webContents } from 'electron';
|
||||||
import mysql from 'mysql2/promise';
|
import mysql from 'mysql2/promise';
|
||||||
import * as pg from 'pg';
|
import * as pg from 'pg';
|
||||||
import SSH2Promise from 'ssh2-promise';
|
import SSH2Promise from 'ssh2-promise';
|
||||||
|
|
||||||
const queryLogger = (sql: string) => {
|
const queryLogger = ({ sql, cUid }: {sql: string; cUid: string}) => {
|
||||||
// Remove comments, newlines and multiple spaces
|
// Remove comments, newlines and multiple spaces
|
||||||
const escapedSql = sql.replace(/(\/\*(.|[\r\n])*?\*\/)|(--(.*|[\r\n]))/gm, '').replace(/\s\s+/g, ' ');
|
const escapedSql = sql.replace(/(\/\*(.|[\r\n])*?\*\/)|(--(.*|[\r\n]))/gm, '').replace(/\s\s+/g, ' ');
|
||||||
|
const mainWindow = webContents.fromId(1);
|
||||||
|
mainWindow.send('query-log', { cUid, sql: escapedSql });
|
||||||
console.log(escapedSql);
|
console.log(escapedSql);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -14,15 +17,17 @@ const queryLogger = (sql: string) => {
|
||||||
*/
|
*/
|
||||||
export class AntaresCore {
|
export class AntaresCore {
|
||||||
_client: antares.ClientCode;
|
_client: antares.ClientCode;
|
||||||
|
protected _cUid: string
|
||||||
protected _params: mysql.ConnectionOptions | pg.ClientConfig | { databasePath: string; readonly: boolean};
|
protected _params: mysql.ConnectionOptions | pg.ClientConfig | { databasePath: string; readonly: boolean};
|
||||||
protected _poolSize: number;
|
protected _poolSize: number;
|
||||||
protected _ssh?: SSH2Promise;
|
protected _ssh?: SSH2Promise;
|
||||||
protected _logger: (sql: string) => void;
|
protected _logger: (args: {sql: string; cUid: string}) => void;
|
||||||
protected _queryDefaults: antares.QueryBuilderObject;
|
protected _queryDefaults: antares.QueryBuilderObject;
|
||||||
protected _query: antares.QueryBuilderObject;
|
protected _query: antares.QueryBuilderObject;
|
||||||
|
|
||||||
constructor (args: antares.ClientParams) {
|
constructor (args: antares.ClientParams) {
|
||||||
this._client = args.client;
|
this._client = args.client;
|
||||||
|
this._cUid = args.uid;
|
||||||
this._params = args.params;
|
this._params = args.params;
|
||||||
this._poolSize = args.poolSize || undefined;
|
this._poolSize = args.poolSize || undefined;
|
||||||
this._logger = args.logger || queryLogger;
|
this._logger = args.logger || queryLogger;
|
||||||
|
|
|
@ -1536,7 +1536,7 @@ export class MySQLClient extends AntaresCore {
|
||||||
}
|
}
|
||||||
|
|
||||||
async raw<T = antares.QueryResult> (sql: string, args?: antares.QueryParams) {
|
async raw<T = antares.QueryResult> (sql: string, args?: antares.QueryParams) {
|
||||||
if (process.env.NODE_ENV === 'development') this._logger(sql);
|
if (process.env.NODE_ENV === 'development') this._logger({ cUid: this._cUid, sql });
|
||||||
|
|
||||||
args = {
|
args = {
|
||||||
nest: false,
|
nest: false,
|
||||||
|
|
|
@ -1314,7 +1314,7 @@ export class PostgreSQLClient extends AntaresCore {
|
||||||
}
|
}
|
||||||
|
|
||||||
async raw<T = antares.QueryResult> (sql: string, args?: antares.QueryParams) {
|
async raw<T = antares.QueryResult> (sql: string, args?: antares.QueryParams) {
|
||||||
if (process.env.NODE_ENV === 'development') this._logger(sql);
|
if (process.env.NODE_ENV === 'development') this._logger({ cUid: this._cUid, sql });
|
||||||
|
|
||||||
args = {
|
args = {
|
||||||
nest: false,
|
nest: false,
|
||||||
|
|
|
@ -586,7 +586,7 @@ export class SQLiteClient extends AntaresCore {
|
||||||
}
|
}
|
||||||
|
|
||||||
async raw<T = antares.QueryResult> (sql: string, args?: antares.QueryParams) {
|
async raw<T = antares.QueryResult> (sql: string, args?: antares.QueryParams) {
|
||||||
if (process.env.NODE_ENV === 'development') this._logger(sql);// TODO: replace BLOB content with a placeholder
|
if (process.env.NODE_ENV === 'development') this._logger({ cUid: this._cUid, sql });// TODO: replace BLOB content with a placeholder
|
||||||
|
|
||||||
args = {
|
args = {
|
||||||
nest: false,
|
nest: false,
|
||||||
|
|
|
@ -71,6 +71,10 @@ ipcRenderer.on('open-connections-modal', () => {
|
||||||
isAllConnectionsModal.value = true;
|
isAllConnectionsModal.value = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on('query-log', (e, sql: string) => {
|
||||||
|
console.log(sql);
|
||||||
|
});
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
changeApplicationTheme(applicationTheme.value);// Forces persistentStore to save on file and mail process
|
changeApplicationTheme(applicationTheme.value);// Forces persistentStore to save on file and mail process
|
||||||
|
|
Loading…
Reference in New Issue