fix(core): update

This commit is contained in:
2023-12-06 02:16:36 +01:00
parent 96c9cf8ee6
commit 007f25fcca
13 changed files with 422 additions and 119 deletions

View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@api.global/typedelectron',
version: '1.0.3',
description: 'a package made for ipc communication in electron'
}

View File

@ -0,0 +1,29 @@
import * as plugins from './plugins.js';
export class TypedElectronFrontend {
// STATIC
public static async createTypedElectronFrontend() {
return new TypedElectronFrontend();
}
// INSTANCE
public typedrouter = new plugins.typedrequest.TypedRouter();
constructor() {
plugins.electronApi.receiveMessage('typedrequest', (payloadArg) => {
this.typedrouter.routeAndAddResponse(payloadArg);
});
}
createTypedRequest<T extends plugins.typedrequestInterfaces.ITypedRequest>(
methodName: T['method'],
) {
const typedrequest = new plugins.typedrequest.TypedRequest<T>(new plugins.typedrequest.TypedTarget({
typedRouterRef: this.typedrouter,
postMethodWithTypedRouter: async (payloadArg: T) => {
plugins.electronApi.sendMessage('typedrequest', payloadArg);
}
}), methodName);
return typedrequest;
}
}

0
ts_web/index.ts Normal file
View File

15
ts_web/plugins.ts Normal file
View File

@ -0,0 +1,15 @@
// @api.global scope
import * as typedrequest from '@api.global/typedrequest';
import * as typedrequestInterfaces from '@api.global/typedrequest-interfaces';
export {
typedrequest,
typedrequestInterfaces,
}
// electron through preload script
const electronApi = (window as any).electronApi;
export {
electronApi,
}