diff --git a/electron/jobs/example/hello.ts b/electron/jobs/example/hello.ts index a4b0250..16311a4 100644 --- a/electron/jobs/example/hello.ts +++ b/electron/jobs/example/hello.ts @@ -1,11 +1,10 @@ -'use strict'; +import { logger } from 'ee-core/log'; -const { logger } = require('ee-core/log'); - -function welcome() { - logger.info('[child-process] [jobs/example/hello] welcome ! '); +/** + * Welcome function + */ +function welcome(): void { + logger.info('[child-process] [jobs/example/hello] welcome !'); } -module.exports = { - welcome -}; \ No newline at end of file +export { welcome }; \ No newline at end of file diff --git a/electron/jobs/example/timer.ts b/electron/jobs/example/timer.ts index ed70364..40316dc 100644 --- a/electron/jobs/example/timer.ts +++ b/electron/jobs/example/timer.ts @@ -1,18 +1,21 @@ -'use strict'; - -const { logger } = require('ee-core/log'); -const { isChildJob, exit } = require('ee-core/ps'); -const { childMessage } = require('ee-core/message'); -const { welcome } = require('./hello'); -const { UserService } = require('../../service/job/user'); +import { logger } from 'ee-core/log'; +import { isChildJob, exit } from 'ee-core/ps'; +import { childMessage } from 'ee-core/message'; +import { welcome } from './hello'; +import { UserService } from '../../service/job/user'; /** * example - TimerJob * @class */ class TimerJob { + params: any; + timer: NodeJS.Timeout | undefined; + timeoutTimer: NodeJS.Timeout | undefined; + number: number; + countdown: number; - constructor(params) { + constructor(params: any) { this.params = params; this.timer = undefined; this.timeoutTimer = undefined; @@ -21,43 +24,43 @@ class TimerJob { } /** - * handle()方法是必要的,且会被自动调用 + * handle() method is necessary and will be automatically called */ - async handle () { + async handle(): Promise { logger.info("[child-process] TimerJob params: ", this.params); const { jobId } = this.params; - // 子进程中使用service - // 1. 确保引入的 service 中不能有electron 的 api或依赖, electron 不支持 + // Use service in child process + // 1. Ensure that the service does not have Electron's API or dependencies, as Electron does not support them const userService = new UserService(); userService.hello('job'); - // 执行任务 + // Execute the task this.doTimer(jobId); } /** - * 暂停任务运行 + * Pause the job */ - async pause(jobId) { + async pause(jobId: string): Promise { logger.info("[child-process] Pause timerJob, jobId: ", jobId); clearInterval(this.timer); clearInterval(this.timeoutTimer); } /** - * 恢复任务运行 + * Resume the job */ - async resume(jobId, pid) { + async resume(jobId: string, pid: number): Promise { logger.info("[child-process] Resume timerJob, jobId: ", jobId, ", pid: ", pid); this.doTimer(jobId); } /** - * 运行任务 + * Run the task */ async doTimer(jobId) { - // 计时器模拟任务 + // Timer to simulate the task const eventName = 'job-timer-progress-' + jobId; this.timer = setInterval(() => { welcome(); @@ -67,22 +70,22 @@ class TimerJob { this.countdown--; }, 1000); - // 用 setTimeout 模拟任务运行时长 + // Use setTimeout to simulate the task duration this.timeoutTimer = setTimeout(() => { - // 关闭计时器模拟任务 + // Stop the timer to simulate the task clearInterval(this.timer); - // 任务结束,重置前端显示 + // Task completed, reset the front-end display childMessage.send(eventName, {jobId, number:0, pid:0, end: true}); - // 如果是childJob任务,必须调用 exit() 方法,让进程退出,否则会常驻内存 - // 如果是childPoolJob任务,常驻内存,等待下一个业务 + // If it is a childJob task, call exit() to exit the process, otherwise it will stay in memory + // If it is a childPoolJob task, stay in memory and wait for the next business if (isChildJob()) { exit(); } }, this.countdown * 1000) } } - TimerJob.toString = () => '[class TimerJob]'; -module.exports = TimerJob; + +export default TimerJob; diff --git a/electron/service/os/window.ts b/electron/service/os/window.ts index 8532034..393337c 100644 --- a/electron/service/os/window.ts +++ b/electron/service/os/window.ts @@ -32,16 +32,12 @@ class WindowService { let addr = 'http://localhost:8080' if (isProd()) { const { mainServer } = getConfig(); - if (isFileProtocol(mainServer.protocol)) { + if (mainServer.protocol && isFileProtocol(mainServer.protocol)) { addr = mainServer.protocol + path.join(getBaseDir(), mainServer.indexPath); - } else { - addr = mainServer.protocol + mainServer.host + ':' + mainServer.port; } } contentUrl = addr + content; - } else { - // some } console.log('contentUrl: ', contentUrl); @@ -68,9 +64,9 @@ class WindowService { /** * Get window contents id */ - getWCid(args) { + getWCid(args: { windowName: string }): number { const { windowName } = args; - let win; + let win: BrowserWindow; if (windowName == 'main') { win = getMainWindow(); } else { @@ -83,7 +79,7 @@ class WindowService { /** * Realize communication between two windows through the transfer of the main process */ - communicate(args) { + communicate(args: { receiver: string; content: any }): void { const { receiver, content } = args; if (receiver == 'main') { const win = getMainWindow(); @@ -97,12 +93,12 @@ class WindowService { /** * createNotification */ - createNotification(options, event) { + createNotification(options: any, event: any): void { const channel = 'controller.os.sendNotification'; this.myNotification = new Notification(options); if (options.clickEvent) { - this.myNotification.on('click', (e) => { + this.myNotification.on('click', () => { let data = { type: 'click', msg: '您点击了通知消息' @@ -112,7 +108,7 @@ class WindowService { } if (options.closeEvent) { - this.myNotification.on('close', (e) => { + this.myNotification.on('close', () => { let data = { type: 'close', msg: '您关闭了通知消息' @@ -125,9 +121,10 @@ class WindowService { } } - WindowService.toString = () => '[class WindowService]'; -module.exports = { +const windowService = new WindowService(); + +export { WindowService, - windowService: new WindowService() -}; \ No newline at end of file + windowService +} \ No newline at end of file