Skip to content

Commit

Permalink
Pass through warnings from extension host (#214)
Browse files Browse the repository at this point in the history
- also remove unused `process.type`
  • Loading branch information
irahopkinson authored and lyonsil committed Jun 13, 2023
1 parent 8bfbe10 commit d78cf30
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 6 deletions.
1 change: 1 addition & 0 deletions lib/papi-dts/papi.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,7 @@ declare module 'shared/data/network-connector.model' {
}
declare module 'shared/services/logger.service' {
import log from 'electron-log';
export const WARN_TAG = '<WARN>';
/**
* Format a string of a service message
* @param message message from the service
Expand Down
1 change: 0 additions & 1 deletion src/extension-host/extension-host.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import extensionAssetService from '@shared/services/extension-asset.service';

logger.info('Starting extension-host');
logger.info(`Extension host is${isClient() ? '' : ' not'} client`);
logger.info(`Extension host process.type = ${process.type}`);
logger.info(`Extension host process.env.NODE_ENV = ${process.env.NODE_ENV}`);
logger.warn('Extension host example warning');

Expand Down
8 changes: 6 additions & 2 deletions src/main/services/extension-host.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
ARG_EXTENSIONS,
getCommandLineArgumentsGroup,
} from '@node/utils/command-line.util';
import logger, { formatLog } from '@shared/services/logger.service';
import logger, { formatLog, WARN_TAG } from '@shared/services/logger.service';
import { waitForDuration } from '@shared/utils/util';
import { ChildProcess, ChildProcessByStdio, fork, spawn } from 'child_process';
import { app } from 'electron';
Expand All @@ -26,7 +26,11 @@ const closePromise: Promise<void> = new Promise<void>((resolve) => {

// log functions for inside the extension host process
function logProcessError(message: unknown) {
logger.error(formatLog(message?.toString() || '', EXTENSION_HOST_NAME, 'error'));
let msg = message?.toString() || '';
if (msg.includes(WARN_TAG)) {
msg = msg.split(WARN_TAG).join('');
logger.warn(formatLog(msg, EXTENSION_HOST_NAME, 'warning'));
} else logger.error(formatLog(msg, EXTENSION_HOST_NAME, 'error'));
}
function logProcessInfo(message: unknown) {
logger.info(formatLog(message?.toString() || '', EXTENSION_HOST_NAME));
Expand Down
16 changes: 13 additions & 3 deletions src/shared/services/logger.service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import chalk from 'chalk';
import log, { LogLevel } from 'electron-log';
import { getProcessType, isClient, isRenderer } from '@shared/utils/internal-util';
import { getProcessType, isClient, isExtensionHost, isRenderer } from '@shared/utils/internal-util';

export const WARN_TAG = '<WARN>';

/**
* Format a string of a service message
Expand Down Expand Up @@ -37,8 +39,6 @@ if (isClient()) {
return {
...message,
data: message.data.map((logLine) =>
// We just checked above if message.variables is null
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
formatLog(
logLine,
getProcessType(),
Expand All @@ -48,6 +48,16 @@ if (isClient()) {
),
};
});
if (isExtensionHost())
// Add a tag for warnings so we can recognize them outside the process.
log.hooks.push((message) => {
return {
...message,
data: message.data.map((logLine) =>
message.level === 'warn' ? `${WARN_TAG}${logLine}` : logLine,
),
};
});
} else {
log.initialize();
log.transports.console.level = level;
Expand Down

0 comments on commit d78cf30

Please sign in to comment.