Skip to content

Commit

Permalink
Use serializeError
Browse files Browse the repository at this point in the history
  • Loading branch information
Konard committed Jun 11, 2024
1 parent e821d70 commit b6749b6
Show file tree
Hide file tree
Showing 33 changed files with 343 additions and 192 deletions.
4 changes: 3 additions & 1 deletion imports/bool_exp_to_sql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { HasuraApi } from '@deep-foundation/hasura/api.js';
import { generateMutation, generateSerial } from './gql/index.js';
import { DeepClient } from './client.js';
import { Id } from './minilinks.js';
import { serializeError } from 'serialize-error';

const debug = Debug('deeplinks:bool_exp');
const log = debug.extend('log');
Expand Down Expand Up @@ -67,7 +68,8 @@ export const boolExpToSQL = async (boolExpId: Id, boolExpValue: any) => {
}
}
} catch (e) {
error(e);
const serializedError = serializeError(e);
error(JSON.stringify(serializedError, null, 2));
error('error', gql, explained, sql);
}
};
7 changes: 5 additions & 2 deletions imports/container-controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import axios from 'axios';
import getPort from 'get-port';
import Debug from 'debug';
import util from 'util';
import { serializeError } from 'serialize-error';
const execAsync = util.promisify(exec);

const debug = Debug('deeplinks:container-controller');
Expand Down Expand Up @@ -106,7 +107,8 @@ export class ContainerController {
const waitResult = await execAsync(`npx wait-on --timeout 5000 http-get://${host}:${dockerPort}/healthz`);
log('_runContainer npx done', { waitResult });
} catch (e) {
error('_runContainer error', e);
const serializedError = serializeError(e);
error('_runContainer error', JSON.stringify(serializedError, null, 2));
return { error: 'wait-on healthz timeout _runContainer' };
}

Expand Down Expand Up @@ -219,7 +221,8 @@ export class ContainerController {
if (callResult?.data?.rejected) return Promise.reject(callResult?.data?.rejected);
return callResult?.data?.resolved;
} catch (e) {
error('call error', e);
const serializedError = serializeError(e);
error('call error', JSON.stringify(serializedError, null, 2));
const checkResult = await this._checkAndRestart(container);
if (checkResult?.error) return {...checkResult};
await this.callHandler(options);
Expand Down
4 changes: 3 additions & 1 deletion imports/cyber/QueueManager/QueueManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { CybIpfsNode, IpfsContentSource } from '../ipfs/ipfs';
import { ParticleCid } from '../types/base';

import { promiseToObservable } from '../utils/helpers';
import { serializeError } from 'serialize-error';

import type {
QueueItem,
Expand Down Expand Up @@ -193,7 +194,8 @@ class QueueManager {
};
}),
catchError((error): Observable<QueueItemResult> => {
debugCid(cid, 'fetchData - fetchIpfsContent catchErr', error);
const serializedError = serializeError(error);
debugCid(cid, 'fetchData - fetchIpfsContent catchErr', JSON.stringify(serializedError, null, 2));
if (error instanceof QueueItemTimeoutError) {
return of({
item,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { Transaction } from './types';

import { TRANSACTIONS_BATCH_LIMIT, CYBERLINKS_BATCH_LIMIT } from './consts';
import { fetchIterable } from './utils/fetch';
import { serializeError } from 'serialize-error';

type TransactionsByAddressResponse = {
messages_by_address: Transaction[];
Expand Down Expand Up @@ -102,7 +103,8 @@ const fetchTransactions = async (

return res?.messages_by_address;
} catch (e) {
console.log('--- fetchTransactions:', e);
const serializedError = serializeError(e);
console.log('--- fetchTransactions:', JSON.stringify(serializedError, null, 2));
return [];
}
};
Expand Down Expand Up @@ -146,7 +148,8 @@ const fetchCyberlinks = async (
);
return res.cyberlinks;
} catch (e) {
console.log('--- fetchCyberlinks:', e);
const serializedError = serializeError(e);
console.log('--- fetchCyberlinks:', JSON.stringify(serializedError, null, 2));
return [];
}
};
Expand Down
4 changes: 3 additions & 1 deletion imports/cyber/backend/services/dataSource/ipfs/ipfsSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { mapParticleToEntity } from '../../../../CozoDb/mapping';
import { LsResult } from 'ipfs-core-types/src/pin';

import DbApi from '../indexedDb/dbApiWrapper';
import { serializeError } from 'serialize-error';

const fetchPins = async (node: IpfsNode) => {
const pins: LsResult[] = [];
Expand All @@ -31,7 +32,8 @@ const importParicleContent = async (particle: IPFSContent, dbApi: DbApi) => {
const result = await dbApi!.putParticles(entity);
return result;
} catch (e) {
console.error('importParicleContent', e.toString(), !!dbApi);
const serializedError = serializeError(e);
console.error('importParicleContent', JSON.stringify(serializedError, null, 2), !!dbApi);
return false;
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { createLoopObservable } from '../utils/rxjs';
import { IPFS_SYNC_INTERVAL } from '../consts';
import { fetchPins } from '../../../dataSource/ipfs/ipfsSource';
import ParticlesResolverQueue from '../ParticlesResolverQueue/ParticlesResolverQueue';
import { serializeError } from 'serialize-error';

class SyncIpfsLoop {
private isInitialized$: Observable<boolean>;
Expand Down Expand Up @@ -119,7 +120,8 @@ class SyncIpfsLoop {
await this.db!.putPins(pinsToAdd.map(mapPinToEntity));
}
} catch (e) {
console.log('---syncPins error', e);
const serializedError = serializeError(e);
console.log('---syncPins error', JSON.stringify(serializedError, null, 2));
throw e;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { PARTICLES_SYNC_INTERVAL } from '../consts';
import ParticlesResolverQueue from '../ParticlesResolverQueue/ParticlesResolverQueue';
import { changeSyncStatus } from '../../utils';
import { SyncServiceParams } from '../../types';
import { serializeError } from 'serialize-error';

class SyncParticlesLoop {
private isInitialized$: Observable<boolean>;
Expand Down Expand Up @@ -94,7 +95,8 @@ class SyncParticlesLoop {
syncStatusEntities.length > 0 &&
(await this.db!.putSyncStatus(syncStatusEntities));
} catch (e) {
console.log('>>> SyncParticlesLoop error:', e);
const serializedError = serializeError(e);
console.log('>>> SyncParticlesLoop error:', JSON.stringify(serializedError, null, 2));
throw e;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { dateToNumber } from '../../../../../utils/date';
import { NeuronAddress } from '../../../../types/base';
import { QueuePriority } from '../../../../../QueueManager/types';
import { SyncStatusDto } from '../../../../../CozoDb/types/dto';
import { serializeError } from 'serialize-error';

import DbApi from '../../../dataSource/indexedDb/dbApiWrapper';

Expand Down Expand Up @@ -119,7 +120,8 @@ class SyncTransactionsLoop {
// this.params.followings.map((addr) => this.syncTransactions(this.params.myAddress, addr))
// );
} catch (err) {
console.error('>>> syncAllTransactions', err);
const serializedError = serializeError(err);
console.error('>>> syncAllTransactions', JSON.stringify(serializedError, null, 2));
throw err;
}
}
Expand Down
4 changes: 3 additions & 1 deletion imports/cyber/backend/services/sync/services/utils/rxjs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
distinctUntilChanged,
filter,
} from 'rxjs';
import { serializeError } from 'serialize-error';

export const createLoopObservable = (
intervalMs: number,
Expand All @@ -28,7 +29,8 @@ export const createLoopObservable = (
concatMap(() =>
actionObservable$.pipe(
catchError((error) => {
console.log('Error:', error);
const serializedError = serializeError(error);
console.log('Error:', JSON.stringify(serializedError, null, 2));
throw error;
})
)
Expand Down
4 changes: 3 additions & 1 deletion imports/cyber/backend/workers/factoryMethods.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { wrap, Remote, expose, transferHandlers } from 'comlink';
import { IPFSContentTransferHandler } from './serializers';
import { serializeError } from 'serialize-error';

type WorkerType = SharedWorker | Worker;

Expand All @@ -16,7 +17,8 @@ function safeStringify(obj: any): string {
try {
return JSON.stringify(obj);
} catch (error) {
return String(obj);
const serializedError = serializeError(error);
return JSON.stringify(serializedError, null, 2);
}
}

Expand Down
4 changes: 3 additions & 1 deletion imports/cyber/ipfs/utils/content.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { toString as uint8ArrayToAsciiString } from 'uint8arrays/to-string';
import isSvg from 'is-svg';
import { IPFSContentDetails, IPFSContentMaybe, IpfsContentType } from '../ipfs';
import { getResponseResult, onProgressCallback } from './stream';
import { serializeError } from 'serialize-error';

// TODO: fix to get working inside web worker, REFACTOR
// import { PATTERN_HTTP, PATTERN_IPFS_HASH } from '../config';
Expand Down Expand Up @@ -128,7 +129,8 @@ export const parseArrayLikeToDetails = async (

return response;
} catch (e) {
console.log('----parseRawIpfsData', e, cid);
const serializedError = serializeError(e);
console.log('----parseRawIpfsData', JSON.stringify(serializedError, null, 2), cid);
return undefined;
}
};
Expand Down
4 changes: 3 additions & 1 deletion imports/cyber/ipfs/utils/stream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import { fileTypeFromBuffer } from 'file-type';
import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
import { Uint8ArrayLike } from '../ipfs';
import { serializeError } from 'serialize-error';

type ResultWithMime = {
result: Uint8ArrayLike;
Expand Down Expand Up @@ -150,9 +151,10 @@ export const getResponseResult = async (
const result = uint8ArrayConcat(chunks);
return result;
} catch (error) {
const serializedError = serializeError(error);
console.error(
`Error reading stream/iterable.\r\n Probably Hot reload error!`,
error
JSON.stringify(serializedError, null, 2)
);

return undefined;
Expand Down
8 changes: 6 additions & 2 deletions imports/cyber/ipfs/utils/utils-ipfs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ import {
FILE_SIZE_DOWNLOAD,
} from '../config';

import { serializeError } from 'serialize-error';

// import { convertTimeToMilliseconds } from '../helpers';
// import { CYBER } from '../config';

Expand Down Expand Up @@ -173,7 +175,8 @@ const fetchIPFSContentFromNode = async (
}
}
} catch (error) {
console.log('error fetchIPFSContentFromNode', error);
const serializedError = serializeError(error);
console.log('error fetchIPFSContentFromNode', JSON.stringify(serializedError, null, 2));
return { cid, availableDownload: true, source: 'node', meta: emptyMeta };
}
};
Expand Down Expand Up @@ -261,7 +264,8 @@ async function fetchIpfsContent(
return undefined;
}
} catch (e) {
console.log('----fetchIpfsContent error', e);
const serializedError = serializeError(e);
console.log('----fetchIpfsContent error', JSON.stringify(serializedError, null, 2));
return undefined;
}
}
Expand Down
4 changes: 3 additions & 1 deletion imports/cyber/utils/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Observable } from 'rxjs';
import { serializeError } from 'serialize-error';

/**
* Promise will be rejected after timeout.
Expand Down Expand Up @@ -38,7 +39,8 @@ export function promiseToObservable<T>(promiseFactory: () => Promise<T>) {
observer.complete();
})
.catch((error) => {
console.log('----promiseToObservable error', error); //, error
const serializedError = serializeError(error);
console.log('----promiseToObservable error', JSON.stringify(serializedError, null, 2)); //, error
observer.error(error);
});
});
Expand Down
25 changes: 15 additions & 10 deletions imports/engine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import fixPath from 'fix-path';
import { fileURLToPath } from 'url';
import fs from 'fs';
import { rootPath } from 'root-path-electron';
import { serializeError } from 'serialize-error';
// import { remote } from 'electron'

const debug = Debug('deeplinks:engine');
Expand Down Expand Up @@ -204,8 +205,9 @@ export const _checkDeeplinksStatus = async (): Promise<ICheckDeeplinksStatusRetu
try {
// DL may be not in docker, when DC in docker, so we use host.docker.internal instead of docker-network link deep_links_1
status = await axios.get(`${+DOCKER ? 'http://host.docker.internal:3006' : DEEPLINKS_PUBLIC_URL}/api/healthz`, { validateStatus: status => true, timeout: 7000 });
} catch(e){
error(e)
} catch (e) {
const serializedError = serializeError(e);
error(JSON.stringify(serializedError, null, 2));
err = e;
}
return { result: status?.data?.docker, error: err };
Expand All @@ -218,8 +220,9 @@ export const _checkDeepcaseStatus = async (): Promise<ICheckDeeplinksStatusRetur
try {
// DL may be not in docker, when DC in docker, so we use host.docker.internal instead of docker-network link deep_links_1
status = await axios.get(`${+DOCKER ? 'http://host.docker.internal:3007' : NEXT_PUBLIC_DEEPLINKS_SERVER}/api/healthz`, { validateStatus: status => true, timeout: 7000 });
} catch(e){
error(e)
} catch (e) {
const serializedError = serializeError(e);
error(JSON.stringify(serializedError, null, 2));
err = e;
}
return { result: status?.data?.docker, error: err };
Expand Down Expand Up @@ -269,9 +272,10 @@ const _execEngine = async ({ envsStr, envs, engineStr }: { envsStr: string; envs
console.log(command);
const { stdout, stderr } = await execP(command);
return { result: { stdout, stderr } };
} catch(e) {
error(e);
return { error: e };
} catch (e) {
const serializedError = serializeError(e);
error(JSON.stringify(serializedError, null, 2));
return { error: serializedError };
}
}

Expand All @@ -289,7 +293,7 @@ const _AddNvmDirToPathEnv = async (envs: any): Promise<boolean> => {
// try {
// fs.accessSync(`/home/menzorg/.nvm/versions/node`, fs.constants.F_OK);
// nvmExists = true;
// } catch(e){
// } catch (e) {
// printLog(envs['MIGRATIONS_DIR'], e?.message, 'nvmError');
// nvmExists = false;
// }
Expand All @@ -305,8 +309,9 @@ const _AddNvmDirToPathEnv = async (envs: any): Promise<boolean> => {
try {
versions = fs.readdirSync(`${homeDir}/.nvm/versions/node`);
printLog(envs['MIGRATIONS_DIR'], versions, 'versions');
} catch(e){
printLog(envs['MIGRATIONS_DIR'], e.toString(), 'versions error');
} catch (e) {
const serializedError = serializeError(e);
printLog(envs['MIGRATIONS_DIR'], JSON.stringify(serializedError, null, 2), 'versions error');
}

if (!versions?.length) {
Expand Down
2 changes: 1 addition & 1 deletion imports/gql/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ export const generateQuery = ({
let query;
try {
query = gql`${queryString}`;
} catch(e) {
} catch (e) {
throw e;
}
const variables = {};
Expand Down
4 changes: 3 additions & 1 deletion imports/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { generateApolloClient } from '@deep-foundation/hasura/client.js';
import { DeepClient } from './client.js';
import _ from 'lodash';
import { Id } from './minilinks.js';
import { serializeError } from 'serialize-error';

const apolloClient = generateApolloClient({
path: `${process.env.DEEPLINKS_HASURA_PATH}/v1/graphql`,
Expand Down Expand Up @@ -217,7 +218,8 @@ export async function deleteIds(ids: Id[], options: {
}
catch (e)
{
console.error(`Error deleting ids: ${idsFiltered.join(', ')}`, JSON.stringify(e, null, 2));
const serializedError = serializeError(e);
console.error(`Error deleting ids: ${idsFiltered.join(', ')}`, JSON.stringify(serializedError, null, 2));
}
} else {
return { data: [] };
Expand Down
Loading

0 comments on commit b6749b6

Please sign in to comment.