UNPKG

@aurora-mp/client

Version:

Client package of the aurora-mp TypeScript framework.

268 lines (258 loc) 9.63 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/client.module.ts import { EVENT_SERVICE, Global, Module, RPC_SERVICE, WEBVIEW_SERVICE } from "@aurora-mp/core"; // src/services/event.service.ts import { Injectable, Inject, PLATFORM_DRIVER } from "@aurora-mp/core"; function _ts_decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } __name(_ts_decorate, "_ts_decorate"); function _ts_metadata(k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); } __name(_ts_metadata, "_ts_metadata"); function _ts_param(paramIndex, decorator) { return function(target, key) { decorator(target, key, paramIndex); }; } __name(_ts_param, "_ts_param"); var EventService = class { static { __name(this, "EventService"); } platformDriver; constructor(platformDriver) { this.platformDriver = platformDriver; } emit(eventName, ...args) { if (!this.platformDriver.emit) { console.warn("[Aurora] Warning: The current platform driver does not support emit."); return; } this.platformDriver.emit(eventName, ...args); } emitServer(eventName, ...args) { if (!this.platformDriver.emitServer) { console.warn("[Aurora] Warning: The current platform driver does not support emitServer."); return; } this.platformDriver.emitServer(eventName, ...args); } }; EventService = _ts_decorate([ Injectable(), _ts_param(0, Inject(PLATFORM_DRIVER)), _ts_metadata("design:type", Function), _ts_metadata("design:paramtypes", [ typeof IPlatformDriver === "undefined" ? Object : IPlatformDriver ]) ], EventService); // src/services/rpc.service.ts import { Inject as Inject2, Injectable as Injectable2, LOGGER_SERVICE, PLATFORM_DRIVER as PLATFORM_DRIVER2 } from "@aurora-mp/core"; function _ts_decorate2(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } __name(_ts_decorate2, "_ts_decorate"); function _ts_metadata2(k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); } __name(_ts_metadata2, "_ts_metadata"); function _ts_param2(paramIndex, decorator) { return function(target, key) { decorator(target, key, paramIndex); }; } __name(_ts_param2, "_ts_param"); var RpcService = class { static { __name(this, "RpcService"); } platformDriver; logger; /** * @param platformDriver - The platform-specific driver implementation, * injected via the PLATFORM_DRIVER token. */ constructor(platformDriver, logger) { this.platformDriver = platformDriver; this.logger = logger; } async invokeServer(method, ...args) { if (!this.platformDriver.invokeServer) { const err = new Error(`[RpcService] invokeServer not implemented on platformDriver.`); this.logger.error(err); throw err; } try { const result = await this.platformDriver.invokeServer(method, ...args); return result; } catch (error) { this.logger.error(`[RpcService] Rpc error on method: ${method}, error: ${error}`); throw error; } } }; RpcService = _ts_decorate2([ Injectable2(), _ts_param2(0, Inject2(PLATFORM_DRIVER2)), _ts_param2(1, Inject2(LOGGER_SERVICE)), _ts_metadata2("design:type", Function), _ts_metadata2("design:paramtypes", [ typeof IPlatformDriver === "undefined" ? Object : IPlatformDriver, typeof ILogger === "undefined" ? Object : ILogger ]) ], RpcService); // src/services/webview.service.ts import { Injectable as Injectable3, Inject as Inject3, PLATFORM_DRIVER as PLATFORM_DRIVER3, LOGGER_SERVICE as LOGGER_SERVICE2 } from "@aurora-mp/core"; function _ts_decorate3(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } __name(_ts_decorate3, "_ts_decorate"); function _ts_metadata3(k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); } __name(_ts_metadata3, "_ts_metadata"); function _ts_param3(paramIndex, decorator) { return function(target, key) { decorator(target, key, paramIndex); }; } __name(_ts_param3, "_ts_param"); var WebviewService = class { static { __name(this, "WebviewService"); } platformDriver; logger; instances = /* @__PURE__ */ new Map(); createListeners = []; constructor(platformDriver, logger) { this.platformDriver = platformDriver; this.logger = logger; } create(id, url, focused = false, hidden = false) { if (!this.platformDriver.createWebview) { throw new Error("[Aurora] The current platform driver does not support creating webviews."); } if (this.instances.has(id)) { this.logger.warn(`[Aurora] A webview with ID "${id}" already exists. It will be overwritten.`); this.destroy(id); } const webview = this.platformDriver.createWebview(id, url, focused, hidden); this.instances.set(id, webview); this.createListeners.forEach((listener) => listener(id, webview)); return webview; } destroy(id) { if (!this.platformDriver.destroyWebview) { this.logger.warn("[Aurora] The current platform driver does not support destroying webviews."); return; } const webview = this.instances.get(id); if (webview) { this.platformDriver.destroyWebview(id); this.instances.delete(id); } } getById(id) { return this.instances.get(id); } getAll() { return Array.from(this.instances.values()); } onCreate(listener) { this.createListeners.push(listener); } }; WebviewService = _ts_decorate3([ Injectable3(), _ts_param3(0, Inject3(PLATFORM_DRIVER3)), _ts_param3(1, Inject3(LOGGER_SERVICE2)), _ts_metadata3("design:type", Function), _ts_metadata3("design:paramtypes", [ typeof IPlatformDriver === "undefined" ? Object : IPlatformDriver, typeof ILogger === "undefined" ? Object : ILogger ]) ], WebviewService); // src/client.module.ts function _ts_decorate4(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } __name(_ts_decorate4, "_ts_decorate"); var ClientModule = class { static { __name(this, "ClientModule"); } }; ClientModule = _ts_decorate4([ Global(), Module({ providers: [ { provide: EVENT_SERVICE, useClass: EventService }, { provide: RPC_SERVICE, useClass: RpcService }, { provide: WEBVIEW_SERVICE, useClass: WebviewService } ], exports: [ EVENT_SERVICE, RPC_SERVICE, WEBVIEW_SERVICE ] }) ], ClientModule); // src/decorators/events/on-server.decorator.ts import { createEventDecorator, EventType } from "@aurora-mp/core"; function OnServer(eventName) { return createEventDecorator(EventType.ON_SERVER, eventName); } __name(OnServer, "OnServer"); // src/decorators/events/on-webview.decorator.ts import { createEventDecorator as createEventDecorator2, EventType as EventType2 } from "@aurora-mp/core"; function OnWebView(webviewId, eventName) { return createEventDecorator2(EventType2.ON, eventName, webviewId); } __name(OnWebView, "OnWebView"); // src/decorators/rpc/on-server-rpc.decorator.ts import { createRpcDecorator, RpcType } from "@aurora-mp/core"; function OnServerRpc(rpcName) { return createRpcDecorator(RpcType.ON_SERVER, rpcName); } __name(OnServerRpc, "OnServerRpc"); // src/decorators/rpc/on-webview-rpc.decorator.ts import { createRpcDecorator as createRpcDecorator2, RpcType as RpcType2 } from "@aurora-mp/core"; function OnWebViewRpc(webviewId, rpcName) { return createRpcDecorator2(RpcType2.ON_SERVER, rpcName, webviewId); } __name(OnWebViewRpc, "OnWebViewRpc"); export { ClientModule, EventService, OnServer, OnServerRpc, OnWebView, OnWebViewRpc, RpcService, WebviewService };