add ts types

This commit is contained in:
gaoshuaixing
2025-01-09 12:28:47 +08:00
parent 47ba701c61
commit 756f7adece
5 changed files with 92 additions and 90 deletions

View File

@@ -17,7 +17,7 @@ class CrossController {
/**
* Get service url
*/
async getUrl(args) {
async getUrl(args: { name: string }): Promise<string> {
const { name } = args;
const serverUrl = crossService.getUrl(name);
return serverUrl;
@@ -27,7 +27,7 @@ class CrossController {
* kill service
* By default (modifiable), killing the process will exit the electron application.
*/
async killServer(args) {
async killServer(args: { type: string; name: string }): Promise<void> {
const { type, name } = args;
crossService.killServer(type, name);
return;
@@ -36,7 +36,7 @@ class CrossController {
/**
* create service
*/
async createServer(args) {
async createServer(args: { program: string }): Promise<void> {
const { program } = args;
if (program == 'go') {
crossService.createGoServer();
@@ -52,12 +52,12 @@ class CrossController {
/**
* Access the api for the cross service
*/
async requestApi(args) {
async requestApi(args: { name: string; urlPath: string; params: any }): Promise<any> {
const { name, urlPath, params} = args;
const data = await crossService.requestApi(name, urlPath, params);
return data;
}
}
CrossController.toString = () => '[class CrossController]';
module.exports = CrossController;
export default CrossController;

View File

@@ -1,8 +1,5 @@
'use strict';
const { dialog } = require('electron');
const _ = require('lodash');
const { getMainWindow } = require('ee-core/electron');
import { dialog } from 'electron';
import { getMainWindow } from 'ee-core/electron';
/**
* effect - demo
@@ -13,12 +10,12 @@ class EffectController {
/**
* select file
*/
selectFile() {
selectFile(): string | null {
const filePaths = dialog.showOpenDialogSync({
properties: ['openFile']
});
if (_.isEmpty(filePaths)) {
if (!filePaths) {
return null
}
@@ -28,7 +25,7 @@ class EffectController {
/**
* login window
*/
loginWindow(args) {
loginWindow(args: { width?: number; height?: number }): void {
const { width, height } = args;
const win = getMainWindow();
@@ -46,7 +43,7 @@ class EffectController {
/**
* restore window
*/
restoreWindow(args) {
restoreWindow(args: { width?: number; height?: number }): void {
const { width, height } = args;
const win = getMainWindow();
@@ -61,6 +58,6 @@ class EffectController {
win.focus();
}
}
EffectController.toString = () => '[class EffectController]';
module.exports = EffectController;
export default EffectController;

View File

@@ -1,5 +1,3 @@
'use strict';
/**
* example
* @class
@@ -9,10 +7,10 @@ class ExampleController {
/**
* test
*/
async test () {
async test(): Promise<string> {
return 'hello electron-egg';
}
}
ExampleController.toString = () => '[class ExampleController]';
module.exports = ExampleController;
export default ExampleController;

View File

@@ -1,16 +1,14 @@
'use strict';
const dayjs = require('dayjs');
const path = require('path');
const fs = require('fs');
const { exec } = require('child_process');
const { app: electronApp, shell } = require('electron');
const { getExtraResourcesDir } = require('ee-core/ps');
const { logger } = require('ee-core/log');
const { getConfig } = require('ee-core/config');
const { frameworkService } = require('../service/framework');
const { sqlitedbService } = require('../service/database/sqlitedb');
const { autoUpdaterService } = require('../service/os/auto_updater');
import dayjs from 'dayjs';
import path from 'path';
import fs from 'fs';
import { exec } from 'child_process';
import { app as electronApp, shell } from 'electron';
import { getExtraResourcesDir } from 'ee-core/ps';
import { logger } from 'ee-core/log';
import { getConfig } from 'ee-core/config';
import { frameworkService } from '../service/framework';
import { sqlitedbService } from '../service/database/sqlitedb';
import { autoUpdaterService } from '../service/os/auto_updater';
/**
* framework - demo
@@ -27,13 +25,26 @@ class FrameworkController {
/**
* sqlite数据库操作
*/
async sqlitedbOperation(args) {
async sqlitedbOperation(args: {
action: string;
info?: any;
delete_name?: string;
update_name?: string;
update_age?: number;
search_age?: number;
data_dir?: string;
}): Promise<{
action: string;
result: any;
all_list: any;
code: number;
}> {
const { action, info, delete_name, update_name, update_age, search_age, data_dir } = args;
const data = {
action,
result: null,
all_list: [],
result: null as any,
all_list: []as any,
code: 0
};
@@ -63,7 +74,7 @@ class FrameworkController {
data.result = await sqlitedbService.getDataDir();
break;
case 'setDataDir' :
data.result = await sqlitedbService.setCustomDataDir(data_dir);
data.result = await sqlitedbService.setCustomDataDir(data_dir || "");
break;
}
@@ -76,7 +87,7 @@ class FrameworkController {
* 调用其它程序exe、bash等可执行程序
*
*/
openSoftware(args) {
openSoftware(args: { softName: string }): boolean {
const { softName } = args;
const softwarePath = path.join(getExtraResourcesDir(), softName);
logger.info('[openSoftware] softwarePath:', softwarePath);
@@ -98,9 +109,13 @@ class FrameworkController {
/**
* 检测http服务是否开启
*/
async checkHttpServer() {
const { enable, protocol, host, port } = getConfig().httpServer;
const url = protocol + host + ':' + port;
async checkHttpServer(): Promise<{ enable: boolean; server: string }> {
const httpConfig = getConfig().httpServer;
if (!httpConfig || !('enable' in httpConfig) || !('protocol' in httpConfig) || !('host' in httpConfig) || !('port' in httpConfig)) {
return { enable: false, server: '' };
}
const { enable, protocol, host, port } = httpConfig;
const url = `${protocol}://${host}:${port}`;
console.log('[checkHttpServer] url:', url);
const data = {
enable: enable,
@@ -114,7 +129,7 @@ class FrameworkController {
* args 是 前端传的参数
* ctx 是 koa 的 ctx 对象
*/
async doHttpRequest(args, ctx) {
async doHttpRequest(args: any, ctx: any): Promise<boolean> {
const httpInfo = {
args,
method: ctx.request.method,
@@ -136,7 +151,7 @@ class FrameworkController {
/**
* 一个socket io请求访问此方法
*/
async doSocketRequest(args) {
async doSocketRequest(args: any): Promise<boolean> {
const { id } = args;
if (!id) {
return false;
@@ -150,7 +165,7 @@ class FrameworkController {
/**
* 异步消息类型
*/
async ipcInvokeMsg(args) {
async ipcInvokeMsg(args: string): Promise<string> {
let timeNow = dayjs().format('YYYY-MM-DD HH:mm:ss');
const data = args + ' - ' + timeNow;
@@ -160,7 +175,7 @@ class FrameworkController {
/**
* 同步消息类型
*/
async ipcSendSyncMsg(args) {
async ipcSendSyncMsg(args: string): Promise<string> {
let timeNow = dayjs().format('YYYY-MM-DD HH:mm:ss');
const data = args + ' - ' + timeNow;
@@ -170,7 +185,7 @@ class FrameworkController {
/**
* 双向异步通信
*/
ipcSendMsg(args, event) {
ipcSendMsg(args: { type: string; content: any }, event: any): any {
const { type, content } = args;
const data = frameworkService.bothWayMessage(type, content, event);
@@ -180,9 +195,9 @@ class FrameworkController {
/**
* 任务
*/
someJob(args, event) {
someJob(args: { jobId: string; action: string }, event: any): any {
const { jobId, action} = args;
let result;
let result = null as any;
switch (action) {
case 'create':
@@ -211,7 +226,7 @@ class FrameworkController {
/**
* 创建任务池
*/
async createPool(args, event) {
async createPool(args: { number: number }, event: any): Promise<void> {
let num = args.number;
frameworkService.doCreatePool(num, event);
@@ -224,9 +239,9 @@ class FrameworkController {
/**
* 通过进程池执行任务
*/
someJobByPool(args, event) {
someJobByPool(args: { jobId: string; action: string }, event: any): any {
const { jobId, action } = args;
let result;
let result = null as any;
switch (action) {
case 'run':
result = frameworkService.doJobByPool(jobId, action, event);
@@ -261,10 +276,10 @@ class FrameworkController {
/**
* 测试接口
*/
hello(args) {
hello(args: any): void {
logger.info('hello ', args);
}
}
FrameworkController.toString = () => '[class FrameworkController]';
module.exports = FrameworkController;
export default FrameworkController;

View File

@@ -1,12 +1,8 @@
'use strict';
const _ = require('lodash');
const fs = require('fs');
const path = require('path');
const {
app: electronApp, dialog, shell, Notification,
} = require('electron');
const { windowService } = require('../service/os/window');
import fs from 'fs';
import path from 'path';
import { app as electronApp, dialog, shell } from 'electron';
import { windowService } from '../service/os/window';
import exp from 'constants';
/**
* example
@@ -23,7 +19,7 @@ class OsController {
/**
* Message prompt dialog box
*/
messageShow() {
messageShow(): string {
dialog.showMessageBoxSync({
type: 'info', // "none", "info", "error", "question" 或者 "warning"
title: 'Custom Title',
@@ -37,7 +33,7 @@ class OsController {
/**
* Message prompt and confirmation dialog box
*/
messageShowConfirm() {
messageShowConfirm(): string {
const res = dialog.showMessageBoxSync({
type: 'info',
title: 'Custom Title',
@@ -60,8 +56,8 @@ class OsController {
properties: ['openDirectory', 'createDirectory']
});
if (_.isEmpty(filePaths)) {
return null
if (!filePaths) {
return ""
}
return filePaths[0];
@@ -70,7 +66,7 @@ class OsController {
/**
* open directory
*/
openDirectory(args) {
openDirectory(args: { id: any }): boolean {
const { id } = args;
if (!id) {
return false;
@@ -89,7 +85,7 @@ class OsController {
/**
* Select Picture
*/
selectPic() {
selectPic(): string | null {
const filePaths = dialog.showOpenDialogSync({
title: 'select pic',
properties: ['openFile'],
@@ -97,7 +93,7 @@ class OsController {
{ name: 'Images', extensions: ['jpg', 'png', 'gif'] },
]
});
if (_.isEmpty(filePaths)) {
if (!filePaths) {
return null
}
@@ -114,7 +110,7 @@ class OsController {
/**
* Open a new window
*/
createWindow(args) {
createWindow(args: any): any {
const wcid = windowService.createWindow(args);
return wcid;
}
@@ -122,7 +118,7 @@ class OsController {
/**
* Get Window contents id
*/
getWCid(args) {
getWCid(args: any): any {
const wcid = windowService.getWCid(args);
return wcid;
}
@@ -130,40 +126,36 @@ class OsController {
/**
* Realize communication between two windows through the transfer of the main process
*/
window1ToWindow2(args, event) {
windowService.communicate(args, event);
window1ToWindow2(args: any): void {
windowService.communicate(args);
return;
}
/**
* Realize communication between two windows through the transfer of the main process
*/
window2ToWindow1(args, event) {
windowService.communicate(args, event);
window2ToWindow1(args: any): void {
windowService.communicate(args);
return;
}
/**
* Create system notifications
*/
sendNotification(args, event) {
sendNotification(args: { title?: string; subtitle?: string; body?: string; silent?: boolean }, event: any): boolean {
const { title, subtitle, body, silent} = args;
if (!Notification.isSupported()) {
return '当前系统不支持通知';
}
let options = {};
if (!_.isEmpty(title)) {
const options: any = {};
if (title) {
options.title = title;
}
if (!_.isEmpty(subtitle)) {
if (subtitle) {
options.subtitle = subtitle;
}
if (!_.isEmpty(body)) {
if (body) {
options.body = body;
}
if (!_.isEmpty(silent)) {
if (silent !== undefined) {
options.silent = silent;
}
windowService.createNotification(options, event);
@@ -171,6 +163,6 @@ class OsController {
return true
}
}
OsController.toString = () => '[class OsController]';
module.exports = OsController;
export default OsController;