import { wrt } from '../browser/wrt';
+let funcConsoleLog: any = null;
let foregroundAppMessagePort: any = null;
let lastForegroundApp: string = '';
+const wrtCommonPort = 'wrt.message.port';
export function notifyServiceMessage(type: string, message: string) {
let foregroundApp = wrt.tv?.getForegroundApp();
try {
if (!foregroundAppMessagePort || lastForegroundApp != foregroundApp) {
foregroundAppMessagePort =
- global.tizen.messageport.requestRemoteMessagePort(foregroundApp, 'wrt.message.port');
+ global.tizen.messageport.requestRemoteMessagePort(foregroundApp, wrtCommonPort);
lastForegroundApp = foregroundApp;
}
if (foregroundAppMessagePort)
- foregroundAppMessagePort.sendMessage([{key: type, value: ['', message]}]);
+ foregroundAppMessagePort.sendMessage([{ key: type, value: ['', message] }]);
} catch { }
}
+
+export function initConsoleMessageNotification(id: string) {
+ try {
+ let mainAppId = wrt.getMainAppId(id);
+ if (!mainAppId)
+ return;
+
+ let mainAppMessagePort = global.tizen.messageport.requestRemoteMessagePort(
+ mainAppId, wrtCommonPort);
+ if (!mainAppMessagePort)
+ return;
+
+ Object.defineProperty(global, 'mainAppMessagePort',
+ { value: mainAppMessagePort, writable: false });
+
+ funcConsoleLog = console.log;
+ console.log = (log: any) => {
+ funcConsoleLog(log);
+ if (global.mainAppMessagePort) {
+ let value = [id, log.toString()];
+ global.mainAppMessagePort.sendMessage([{ key: 'service-log', value }]);
+ }
+ }
+ } catch { }
+}
\ No newline at end of file
import { DeviceAPIRouter } from './device_api_router';
import { isMainThread, parentPort, workerData } from 'worker_threads';
import { wrt } from '../browser/wrt';
-
-Object.defineProperty(global, 'serviceType', {
- value: wrt.getServiceModel(),
- writable: false
-});
+import * as ServiceMessage from '../common/service_message';
function isServiceApplication() {
return global['serviceType'] !== 'UI';
console.debug(`serviceType : ${global['serviceType']}`)
new DeviceAPIRouter(id, isGlobalService());
printAppControlData(id);
+ ServiceMessage.initConsoleMessageNotification(id);
// This is for awaking up uv loop.
if (isGlobalService()) {
process.exit();
}
- Object.defineProperty(global, 'internalId', {
- value: id,
- writable: false
+ Object.defineProperties(global, {
+ 'internalId': { value: id, writable: false },
+ 'serviceType': { value: wrt.getServiceModel(), writable: false }
});
let filename = workerData.filename;