ee-core 5.0.0-beta.7 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +214 -40
- package/dist/cjs/electron/window/index.d.ts +3 -2
- package/dist/cjs/electron/window/index.d.ts.map +1 -1
- package/dist/cjs/electron/window/index.js +14 -23
- package/dist/cjs/electron/window/index.js.map +1 -1
- package/dist/cjs/jobs/child/jobProcess.js +1 -1
- package/dist/cjs/socket/index.d.ts +12 -3
- package/dist/cjs/socket/index.d.ts.map +1 -1
- package/dist/cjs/socket/index.js +24 -3
- package/dist/cjs/socket/index.js.map +1 -1
- package/dist/esm/electron/window/index.d.ts +3 -2
- package/dist/esm/electron/window/index.d.ts.map +1 -1
- package/dist/esm/electron/window/index.js +14 -23
- package/dist/esm/electron/window/index.js.map +1 -1
- package/dist/esm/jobs/child/jobProcess.js +1 -1
- package/dist/esm/socket/index.d.ts +12 -3
- package/dist/esm/socket/index.d.ts.map +1 -1
- package/dist/esm/socket/index.js +24 -3
- package/dist/esm/socket/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Enterprise-grade Electron application framework core — TypeScript edition with
|
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
`ee-core`
|
|
7
|
+
`ee-core` is the runtime foundation for [electron-egg](https://github.com/wallace5303/electron-egg) applications. It handles the complete lifecycle from boot to shutdown: configuration loading, controller registration, IPC communication, window management, logging, storage, background jobs, and cross-process coordination.
|
|
8
8
|
|
|
9
9
|
The package outputs dual module formats (CJS + ESM) via conditional exports in `package.json`, making it compatible with both `require()` and `import` environments.
|
|
10
10
|
|
|
@@ -19,13 +19,13 @@ npm install ee-core
|
|
|
19
19
|
ee-core exposes fine-grained subpath modules. Each can be imported individually:
|
|
20
20
|
|
|
21
21
|
```ts
|
|
22
|
-
// Main entry (boot, app, config, etc.)
|
|
22
|
+
// Main entry (boot, app, config, events, etc.)
|
|
23
23
|
import { ElectronEgg } from 'ee-core';
|
|
24
24
|
|
|
25
25
|
// Specific submodules
|
|
26
26
|
import { ControllerLoader } from 'ee-core/controller';
|
|
27
27
|
import { Cross, cross } from 'ee-core/cross';
|
|
28
|
-
import { extend } from 'ee-core/utils';
|
|
28
|
+
import { extend, is } from 'ee-core/utils';
|
|
29
29
|
import { SqliteStorage } from 'ee-core/storage';
|
|
30
30
|
import { ChildJob, ChildPoolJob, LoadBalancer } from 'ee-core/jobs';
|
|
31
31
|
import type { Config, DevConfig } from 'ee-core/types';
|
|
@@ -35,51 +35,88 @@ Available subpaths:
|
|
|
35
35
|
|
|
36
36
|
| Subpath | Description |
|
|
37
37
|
|---|---|
|
|
38
|
-
| `ee-core` | Main entry — boot, application, config, events |
|
|
39
|
-
| `ee-core/app` | Application lifecycle
|
|
38
|
+
| `ee-core` | Main entry — boot, application, config, events, all modules |
|
|
39
|
+
| `ee-core/app` | Application lifecycle, event bus, directory init |
|
|
40
40
|
| `ee-core/config` | Configuration loading and merging |
|
|
41
|
+
| `ee-core/const` | IPC channel and event constants |
|
|
41
42
|
| `ee-core/controller` | Controller loader and registry |
|
|
42
|
-
| `ee-core/core` | FileLoader
|
|
43
|
-
| `ee-core/cross` |
|
|
43
|
+
| `ee-core/core` | FileLoader, Timing, core utilities |
|
|
44
|
+
| `ee-core/cross` | External process management (Go/Python backends) |
|
|
44
45
|
| `ee-core/electron` | Electron app/window management |
|
|
45
|
-
| `ee-core/exception` |
|
|
46
|
-
| `ee-core/html` | HTML
|
|
46
|
+
| `ee-core/exception` | Global exception handling (uncaught/unhandled) |
|
|
47
|
+
| `ee-core/html` | Static HTML page path utility (failure pages) |
|
|
47
48
|
| `ee-core/jobs` | Background jobs (ChildJob, ChildPoolJob, LoadBalancer) |
|
|
48
49
|
| `ee-core/loader` | File/module loading utilities |
|
|
49
|
-
| `ee-core/log` | Pino
|
|
50
|
-
| `ee-core/message` | IPC message routing |
|
|
51
|
-
| `ee-core/ps` | Process
|
|
52
|
-
| `ee-core/socket` | Socket.IO, HTTP, IPC servers |
|
|
50
|
+
| `ee-core/log` | Pino logging (pino-roll + pino-pretty) |
|
|
51
|
+
| `ee-core/message` | Child process IPC message routing |
|
|
52
|
+
| `ee-core/ps` | Process state, environment detection, path utilities |
|
|
53
|
+
| `ee-core/socket` | Socket.IO, HTTP (Koa), IPC servers |
|
|
53
54
|
| `ee-core/storage` | SQLite storage (better-sqlite3) |
|
|
54
55
|
| `ee-core/types` | TypeScript type definitions |
|
|
55
|
-
| `ee-core/utils` | extend, is, json, helper, pargv, port |
|
|
56
|
+
| `ee-core/utils` | extend, is, json, wrap, helper, pargv, port, ip |
|
|
56
57
|
|
|
57
58
|
## Architecture
|
|
58
59
|
|
|
59
60
|
### Lifecycle
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
The `ElectronEgg` startup sequence is strictly ordered:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
init() → loadException → loadConfig → loadDir → loadLog
|
|
66
|
+
run() → loadController → loadSocket → emitLifecycle(Ready) → loadElectron
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Exception handling must register first to catch subsequent errors; config is the foundation for all modules; directories must exist before writing logs; controllers precede communication services; Ready fires after core modules are loaded; Electron starts last.
|
|
70
|
+
|
|
71
|
+
### Lifecycle Events
|
|
72
|
+
|
|
73
|
+
Five framework milestones managed by `EventBus`:
|
|
74
|
+
|
|
75
|
+
| Event | When |
|
|
76
|
+
|---|---|
|
|
77
|
+
| `Ready` | Core modules loaded, before Electron |
|
|
78
|
+
| `ElectronAppReady` | `app.whenReady()` completed |
|
|
79
|
+
| `WindowReady` | BrowserWindow created |
|
|
80
|
+
| `BeforeClose` | Window close triggered |
|
|
81
|
+
| `Preload` | Preload scripts executing |
|
|
82
|
+
|
|
83
|
+
Register handlers via `app.register(eventName, handler)` or custom events via `eventBus.on()/emit()`.
|
|
62
84
|
|
|
63
85
|
### Controller Loading Pipeline
|
|
64
86
|
|
|
65
|
-
- **Build time** (ee-bin): `
|
|
66
|
-
- **
|
|
87
|
+
- **Build time** (ee-bin): `bundleRegistryPlugin` scans `electron/controller/`, computes property paths (`defaultCamelize` with `caseStyle: 'lower'`), generates `app:controller-registry` virtual module setting `global.__EE_CONTROLLER_REGISTRY__` with lazy getters (`get module() { return require(...) }`).
|
|
88
|
+
- **Bundle entry** (`app:bundle-entry`): loads config registry → controller registry → real `main.js`.
|
|
89
|
+
- **Runtime** (ee-core): If `globalThis.__EE_CONTROLLER_REGISTRY__` exists (bundle mode), `FileLoader.parseFromRegistry()` reads from it. Otherwise, falls back to filesystem scanning via `scanDirSync()`.
|
|
90
|
+
|
|
91
|
+
### Configuration Loading Pipeline
|
|
92
|
+
|
|
93
|
+
Same dual-mode pattern as controllers:
|
|
94
|
+
|
|
95
|
+
- **Build time** (ee-bin): `bundleRegistryPlugin` scans `electron/config/`, generates `app:config-registry` virtual module.
|
|
96
|
+
- **Runtime** (ee-core): If `globalThis.__EE_CONFIG_REGISTRY__` exists, `ConfigLoader._loadConfig()` loads by filename. Otherwise, reads from filesystem using `loadFile()`.
|
|
67
97
|
|
|
68
|
-
|
|
98
|
+
Config layering (dev mode only): `config.default.js` → `config.local.js` / `config.prod.js`, merged by `ConfigLoader`.
|
|
69
99
|
|
|
70
|
-
|
|
71
|
-
- Socket.IO (bidirectional real-time)
|
|
72
|
-
- HTTP server (RESTful)
|
|
73
|
-
- Electron IPC (native)
|
|
100
|
+
### Communication Services
|
|
74
101
|
|
|
75
|
-
|
|
102
|
+
Three channels created in order during `loadSocket()`:
|
|
103
|
+
|
|
104
|
+
| Server | Use Case | Implementation |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| `SocketServer` | Third-party process communication (Go/Python) | Socket.IO |
|
|
107
|
+
| `HttpServer` | RESTful API for external HTTP clients | Koa + middleware |
|
|
108
|
+
| `IpcServer` | Main ↔ renderer process | `ipcMain.handle/on` + `ipcRenderer.invoke/send` |
|
|
109
|
+
|
|
110
|
+
All share `resolveControllerFn()` routing — channel pattern: `controller/{name}/{method}`.
|
|
76
111
|
|
|
77
112
|
### Window Loading Strategy
|
|
78
113
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
114
|
+
`loadServer()` selects strategy based on config and environment:
|
|
115
|
+
|
|
116
|
+
1. **Remote mode** (`remote.enable=true`) → Load remote URL
|
|
117
|
+
2. **Dev mode** → Poll frontend dev server (`waitForUrl`), show loading page first
|
|
118
|
+
3. **Prod + cross takeover** → Wait for cross-process service to be ready
|
|
119
|
+
4. **Prod (default)** → Load local HTML file
|
|
83
120
|
|
|
84
121
|
## Key APIs
|
|
85
122
|
|
|
@@ -89,7 +126,10 @@ Channels follow pattern `controller/{name}/{method}`.
|
|
|
89
126
|
import { ElectronEgg } from 'ee-core';
|
|
90
127
|
|
|
91
128
|
// Start the framework
|
|
92
|
-
const
|
|
129
|
+
const boot = new ElectronEgg();
|
|
130
|
+
|
|
131
|
+
// Async startup (ESM)
|
|
132
|
+
await boot.runAsync();
|
|
93
133
|
```
|
|
94
134
|
|
|
95
135
|
### Configuration
|
|
@@ -98,32 +138,83 @@ const app = new ElectronEgg();
|
|
|
98
138
|
import { getConfig, setConfig } from 'ee-core/config';
|
|
99
139
|
|
|
100
140
|
const config = getConfig();
|
|
141
|
+
|
|
142
|
+
// Child processes can receive config without filesystem access
|
|
143
|
+
setConfig(config);
|
|
101
144
|
```
|
|
102
145
|
|
|
103
146
|
### Controller
|
|
104
147
|
|
|
105
148
|
```ts
|
|
106
|
-
import { getController } from 'ee-core/controller';
|
|
149
|
+
import { getController, getControllers } from 'ee-core/controller';
|
|
107
150
|
|
|
151
|
+
// Get specific controller
|
|
108
152
|
const userController = getController('user');
|
|
153
|
+
|
|
154
|
+
// Get all loaded controllers
|
|
155
|
+
const all = getControllers();
|
|
109
156
|
```
|
|
110
157
|
|
|
111
158
|
### Cross-Process Communication
|
|
112
159
|
|
|
113
160
|
```ts
|
|
114
161
|
import { cross } from 'ee-core/cross';
|
|
162
|
+
import type { CrossTargetConfig } from 'ee-core';
|
|
163
|
+
|
|
164
|
+
// Run Go backend with custom config
|
|
165
|
+
const opt: CrossTargetConfig = {
|
|
166
|
+
name: 'goapp',
|
|
167
|
+
cmd: path.join(getExtraResourcesDir(), 'goapp'),
|
|
168
|
+
directory: getExtraResourcesDir(),
|
|
169
|
+
args: ['--port=7073'],
|
|
170
|
+
appExit: true,
|
|
171
|
+
};
|
|
172
|
+
const entity = await cross.run('go', opt);
|
|
173
|
+
|
|
174
|
+
// Get service URL
|
|
175
|
+
const url = cross.getUrl('goapp');
|
|
176
|
+
|
|
177
|
+
// Kill by name
|
|
178
|
+
cross.killByName('goapp');
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Communication Servers
|
|
115
182
|
|
|
116
|
-
|
|
117
|
-
|
|
183
|
+
```ts
|
|
184
|
+
import { getSocketServer, getHttpServer, getIpcServer } from 'ee-core/socket';
|
|
185
|
+
|
|
186
|
+
// All getters return non-null instances after Ready event
|
|
187
|
+
const socket = getSocketServer();
|
|
188
|
+
const http = getHttpServer();
|
|
189
|
+
const ipc = getIpcServer();
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Main Window
|
|
193
|
+
|
|
194
|
+
```ts
|
|
195
|
+
import { getMainWindow } from 'ee-core/electron';
|
|
196
|
+
|
|
197
|
+
// Returns BrowserWindow (non-null) after WindowReady event
|
|
198
|
+
const win = getMainWindow();
|
|
199
|
+
win.setMenuBarVisibility(false);
|
|
118
200
|
```
|
|
119
201
|
|
|
120
202
|
### Jobs
|
|
121
203
|
|
|
122
204
|
```ts
|
|
123
|
-
import { ChildJob, ChildPoolJob, LoadBalancer } from 'ee-core/jobs';
|
|
205
|
+
import { ChildJob, ChildPoolJob, LoadBalancer, AlgorithmType } from 'ee-core/jobs';
|
|
124
206
|
|
|
207
|
+
// Single task execution
|
|
125
208
|
const job = new ChildJob();
|
|
126
|
-
const result = await job.exec(
|
|
209
|
+
const result = await job.exec('./jobs/demo.js', { taskName: 'cleanup' });
|
|
210
|
+
|
|
211
|
+
// Process pool with load balancing
|
|
212
|
+
const pool = new ChildPoolJob();
|
|
213
|
+
pool.create(3); // Create 3 workers
|
|
214
|
+
const result = await pool.run('./jobs/demo.js', { taskName: 'batch' });
|
|
215
|
+
|
|
216
|
+
// 8 algorithms: polling, weights, random, specify, weightsPolling,
|
|
217
|
+
// weightsRandom, minimumConnection, weightsMinimumConnection
|
|
127
218
|
```
|
|
128
219
|
|
|
129
220
|
### Storage
|
|
@@ -131,28 +222,99 @@ const result = await job.exec({ name: 'task', script: './jobs/demo.js' });
|
|
|
131
222
|
```ts
|
|
132
223
|
import { SqliteStorage } from 'ee-core/storage';
|
|
133
224
|
|
|
134
|
-
|
|
135
|
-
db
|
|
225
|
+
// Four modes: memory, onlyName, relative, absolute
|
|
226
|
+
const db = new SqliteStorage({ mode: 'onlyName', name: 'app' });
|
|
136
227
|
```
|
|
137
228
|
|
|
138
229
|
### Logging
|
|
139
230
|
|
|
140
231
|
```ts
|
|
141
|
-
import {
|
|
232
|
+
import { logger, coreLogger } from 'ee-core/log';
|
|
233
|
+
|
|
234
|
+
// Supports three call styles: pino standard, pino printf, concatenation
|
|
235
|
+
logger.info('Application started');
|
|
236
|
+
logger.info('User %s logged in', 'admin');
|
|
237
|
+
logger.info('data:', { id: 1, name: 'test' });
|
|
142
238
|
|
|
143
|
-
|
|
239
|
+
// Log files: ee.log, ee-core.log, ee-error.log
|
|
240
|
+
// Rotation: daily/hourly via pino-roll
|
|
241
|
+
// Dev mode: pino-pretty for terminal output
|
|
144
242
|
```
|
|
145
243
|
|
|
146
244
|
### Process/Environment
|
|
147
245
|
|
|
148
246
|
```ts
|
|
149
|
-
import { isDev, getBaseDir,
|
|
247
|
+
import { isDev, isProd, getBaseDir, getDataDir, getLogDir } from 'ee-core/ps';
|
|
248
|
+
import { is } from 'ee-core/utils';
|
|
150
249
|
|
|
151
250
|
if (isDev()) {
|
|
152
251
|
// Development-specific logic
|
|
153
252
|
}
|
|
253
|
+
|
|
254
|
+
// Platform detection
|
|
255
|
+
if (is.macOS()) { /* macOS */ }
|
|
256
|
+
if (is.windows()) { /* Windows */ }
|
|
257
|
+
if (is.linux()) { /* Linux */ }
|
|
258
|
+
if (is.openharmony()) { /* OpenHarmony */ }
|
|
259
|
+
|
|
260
|
+
// Path utilities
|
|
261
|
+
const baseDir = getBaseDir();
|
|
262
|
+
const dataDir = getDataDir();
|
|
263
|
+
const logDir = getLogDir();
|
|
264
|
+
const extraRes = getExtraResourcesDir();
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Event Bus
|
|
268
|
+
|
|
269
|
+
```ts
|
|
270
|
+
import { eventBus, BeforeClose } from 'ee-core/app';
|
|
271
|
+
|
|
272
|
+
// Register lifecycle hook
|
|
273
|
+
app.register(BeforeClose, async () => {
|
|
274
|
+
// Cleanup before app closes
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
// Custom events
|
|
278
|
+
eventBus.on('myEvent', (data) => { /* handle */ });
|
|
279
|
+
eventBus.emit('myEvent', { key: 'value' });
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Exception Handling
|
|
283
|
+
|
|
284
|
+
```ts
|
|
285
|
+
// Auto-registered during boot. Controls exit behavior:
|
|
286
|
+
// exception.mainExit / childExit / rendererExit
|
|
287
|
+
// Errors logged via coreLogger, dev mode sends to terminal
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Utility Functions
|
|
291
|
+
|
|
292
|
+
```ts
|
|
293
|
+
import { extend, strictParse, getPort, parseArgv, sleep } from 'ee-core/utils';
|
|
294
|
+
|
|
295
|
+
// Deep merge with prototype pollution guard
|
|
296
|
+
const merged = extend(true, {}, defaults, userConfig);
|
|
297
|
+
|
|
298
|
+
// Port allocation with two-level locking
|
|
299
|
+
const port = await getPort({ port: 7070 });
|
|
300
|
+
|
|
301
|
+
// CLI argument parser
|
|
302
|
+
const args = parseArgv(process.argv);
|
|
303
|
+
|
|
304
|
+
// Sync sleep (Atomics.wait-based, no subprocess)
|
|
305
|
+
sleep(1000);
|
|
154
306
|
```
|
|
155
307
|
|
|
308
|
+
## TypeScript Types
|
|
309
|
+
|
|
310
|
+
All types are exported from `ee-core/types`:
|
|
311
|
+
|
|
312
|
+
```ts
|
|
313
|
+
import type { Config, CrossTargetConfig, DevConfig, AppInfo } from 'ee-core/types';
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Key type interfaces: `ElectronEggOptions`, `Config`, `AppInfo`, `CrossTargetConfig`, `CrossRunOptions`, `LoggerConfig`, `ExceptionConfig`, `FileLoaderOptions`, `LoadBalancerOptions`, `JobProcessOptions`, `MessageData`.
|
|
317
|
+
|
|
156
318
|
## Build
|
|
157
319
|
|
|
158
320
|
```bash
|
|
@@ -161,10 +323,21 @@ npm run build:cjs # Build CommonJS only
|
|
|
161
323
|
npm run build:esm # Build ESM only
|
|
162
324
|
npm run typecheck # TypeScript type checking
|
|
163
325
|
npm run test # Run vitest
|
|
326
|
+
npm run test:watch # Run vitest in watch mode
|
|
164
327
|
```
|
|
165
328
|
|
|
166
329
|
The `exports` map in `package.json` is auto-generated by `scripts/gen-exports.js`. Do not edit manually — run `npm run gen-exports` after adding new subpath modules.
|
|
167
330
|
|
|
331
|
+
## Debug Logging
|
|
332
|
+
|
|
333
|
+
ee-core uses the `debug` library for verbose namespace-scoped logging. Enable to see runtime internals (config merging, controller loading, module resolution):
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
DEBUG=ee-* node your-app # All ee-* namespaces
|
|
337
|
+
DEBUG=ee-core:config:* node your-app # Config subsystem only
|
|
338
|
+
DEBUG=ee-core:controller:* node your-app # Controller loading only
|
|
339
|
+
```
|
|
340
|
+
|
|
168
341
|
## Requirements
|
|
169
342
|
|
|
170
343
|
- Node.js >= 20.19.0
|
|
@@ -174,5 +347,6 @@ The `exports` map in `package.json` is auto-generated by `scripts/gen-exports.js
|
|
|
174
347
|
## Notes
|
|
175
348
|
|
|
176
349
|
- ESM imports in ee-core source must include `.js` extensions (required by `module: NodeNext`)
|
|
177
|
-
- ee-core is NOT bundled into the Electron main process bundle — it's an esbuild external loaded from `node_modules` at runtime
|
|
178
|
-
-
|
|
350
|
+
- ee-core is NOT bundled into the Electron main process bundle — it's an esbuild external loaded from `node_modules` at runtime. This allows `child_process.fork()` to find `app.js` as a real disk file
|
|
351
|
+
- `getMainWindow()`, `getSocketServer()`, `getHttpServer()`, `getIpcServer()` return non-null instances. If called before the corresponding lifecycle event, they throw an Error indicating a lifecycle ordering bug
|
|
352
|
+
- The `exports` map is auto-generated — run `npm run gen-exports` after adding new modules
|
|
@@ -2,9 +2,10 @@ import { BrowserWindow } from 'electron';
|
|
|
2
2
|
/**
|
|
3
3
|
* Get main window instance
|
|
4
4
|
*
|
|
5
|
-
* @returns BrowserWindow instance
|
|
5
|
+
* @returns BrowserWindow instance
|
|
6
|
+
* @throws Error if mainWindow has not been created yet (lifecycle ordering bug)
|
|
6
7
|
*/
|
|
7
|
-
export declare function getMainWindow(): BrowserWindow
|
|
8
|
+
export declare function getMainWindow(): BrowserWindow;
|
|
8
9
|
/**
|
|
9
10
|
* Create main application window
|
|
10
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2DzC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2DzC;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,aAAa,CAM7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAShD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAwEhD"}
|
|
@@ -79,10 +79,15 @@ const Instance = {
|
|
|
79
79
|
/**
|
|
80
80
|
* Get main window instance
|
|
81
81
|
*
|
|
82
|
-
* @returns BrowserWindow instance
|
|
82
|
+
* @returns BrowserWindow instance
|
|
83
|
+
* @throws Error if mainWindow has not been created yet (lifecycle ordering bug)
|
|
83
84
|
*/
|
|
84
85
|
function getMainWindow() {
|
|
85
|
-
|
|
86
|
+
const win = Instance.mainWindow;
|
|
87
|
+
if (!win) {
|
|
88
|
+
throw new Error('[ee-core] getMainWindow() called before mainWindow was created. Ensure this code runs after the WindowReady event.');
|
|
89
|
+
}
|
|
90
|
+
return win;
|
|
86
91
|
}
|
|
87
92
|
/**
|
|
88
93
|
* Create main application window
|
|
@@ -107,13 +112,12 @@ function createMainWindow() {
|
|
|
107
112
|
* Used when a second instance starts to activate the existing instance's window.
|
|
108
113
|
*/
|
|
109
114
|
function restoreMainWindow() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
Instance.mainWindow.show();
|
|
115
|
-
Instance.mainWindow.focus();
|
|
115
|
+
const win = getMainWindow();
|
|
116
|
+
if (win.isMinimized()) {
|
|
117
|
+
win.restore();
|
|
116
118
|
}
|
|
119
|
+
win.show();
|
|
120
|
+
win.focus();
|
|
117
121
|
}
|
|
118
122
|
/**
|
|
119
123
|
* Set close and quit flag
|
|
@@ -140,9 +144,6 @@ function getCloseAndQuit() {
|
|
|
140
144
|
*/
|
|
141
145
|
async function loadServer() {
|
|
142
146
|
const { remote, mainServer } = (0, index_js_1.getConfig)();
|
|
143
|
-
const win = getMainWindow();
|
|
144
|
-
if (!win)
|
|
145
|
-
return;
|
|
146
147
|
// Remote mode: load remote URL directly
|
|
147
148
|
if (remote.enable) {
|
|
148
149
|
loadMainUrl('remote', remote.url);
|
|
@@ -181,10 +182,7 @@ async function loadServer() {
|
|
|
181
182
|
if (frontendReady === false && frontendConf.force !== true) {
|
|
182
183
|
// Frontend service not ready, show failure page
|
|
183
184
|
const bootFailurePage = (0, index_js_7.getHtmlFilepath)('failure.html');
|
|
184
|
-
|
|
185
|
-
if (win) {
|
|
186
|
-
win.loadFile(bootFailurePage);
|
|
187
|
-
}
|
|
185
|
+
getMainWindow().loadFile(bootFailurePage);
|
|
188
186
|
index_js_3.coreLogger.error(`Please check the ${url} !`);
|
|
189
187
|
return;
|
|
190
188
|
}
|
|
@@ -215,8 +213,6 @@ async function loadServer() {
|
|
|
215
213
|
function loadMainUrl(type, url, load = 'url') {
|
|
216
214
|
const { openDevTools, mainServer } = (0, index_js_1.getConfig)();
|
|
217
215
|
const win = getMainWindow();
|
|
218
|
-
if (!win)
|
|
219
|
-
return;
|
|
220
216
|
index_js_3.coreLogger.info('Env: %s, Type: %s', (0, index_js_2.env)(), type);
|
|
221
217
|
index_js_3.coreLogger.info('App running at: %s', url);
|
|
222
218
|
debugLog('[loadMainUrl] type:%s, url:%s', type, url);
|
|
@@ -253,8 +249,6 @@ function loadMainUrl(type, url, load = 'url') {
|
|
|
253
249
|
*/
|
|
254
250
|
function _loadingPage(filepath) {
|
|
255
251
|
const win = getMainWindow();
|
|
256
|
-
if (!win)
|
|
257
|
-
return;
|
|
258
252
|
if ((0, helper_js_1.fileIsExist)(filepath)) {
|
|
259
253
|
win.loadFile(filepath);
|
|
260
254
|
}
|
|
@@ -299,10 +293,7 @@ async function crossTakeover() {
|
|
|
299
293
|
if (!serviceReady) {
|
|
300
294
|
// Service not ready, show failure page
|
|
301
295
|
const bootFailurePage = (0, index_js_7.getHtmlFilepath)('cross-failure.html');
|
|
302
|
-
|
|
303
|
-
if (mainWindow) {
|
|
304
|
-
mainWindow.loadFile(bootFailurePage);
|
|
305
|
-
}
|
|
296
|
+
getMainWindow().loadFile(bootFailurePage);
|
|
306
297
|
throw new Error(`[ee-core] Please check cross service [${service}] ${url} !`);
|
|
307
298
|
}
|
|
308
299
|
index_js_3.coreLogger.info(`cross service [${service}] is started successfully`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,11 @@ export { Koa, IoServer, IoClient };
|
|
|
28
28
|
export declare function createSocketServer(): Promise<SocketServer>;
|
|
29
29
|
/**
|
|
30
30
|
* Get SocketIO server instance
|
|
31
|
+
*
|
|
32
|
+
* @returns SocketServer instance
|
|
33
|
+
* @throws Error if socketServer has not been created yet
|
|
31
34
|
*/
|
|
32
|
-
export declare function getSocketServer(): SocketServer
|
|
35
|
+
export declare function getSocketServer(): SocketServer;
|
|
33
36
|
/**
|
|
34
37
|
* Create HTTP server
|
|
35
38
|
*
|
|
@@ -38,8 +41,11 @@ export declare function getSocketServer(): SocketServer | null;
|
|
|
38
41
|
export declare function createHttpServer(): Promise<HttpServer>;
|
|
39
42
|
/**
|
|
40
43
|
* Get HTTP server instance
|
|
44
|
+
*
|
|
45
|
+
* @returns HttpServer instance
|
|
46
|
+
* @throws Error if httpServer has not been created yet
|
|
41
47
|
*/
|
|
42
|
-
export declare function getHttpServer(): HttpServer
|
|
48
|
+
export declare function getHttpServer(): HttpServer;
|
|
43
49
|
/**
|
|
44
50
|
* Create IPC server
|
|
45
51
|
*
|
|
@@ -48,8 +54,11 @@ export declare function getHttpServer(): HttpServer | null;
|
|
|
48
54
|
export declare function createIpcServer(): IpcServer;
|
|
49
55
|
/**
|
|
50
56
|
* Get IPC server instance
|
|
57
|
+
*
|
|
58
|
+
* @returns IpcServer instance
|
|
59
|
+
* @throws Error if ipcServer has not been created yet
|
|
51
60
|
*/
|
|
52
|
-
export declare function getIpcServer(): IpcServer
|
|
61
|
+
export declare function getIpcServer(): IpcServer;
|
|
53
62
|
/**
|
|
54
63
|
* Load and initialize all communication services
|
|
55
64
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAanC;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAGhE;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAanC;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAGhE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAM9C;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAM1C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAG3C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAMxC;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAIhD"}
|
package/dist/cjs/socket/index.js
CHANGED
|
@@ -55,9 +55,16 @@ async function createSocketServer() {
|
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* Get SocketIO server instance
|
|
58
|
+
*
|
|
59
|
+
* @returns SocketServer instance
|
|
60
|
+
* @throws Error if socketServer has not been created yet
|
|
58
61
|
*/
|
|
59
62
|
function getSocketServer() {
|
|
60
|
-
|
|
63
|
+
const server = Instance.socketServer;
|
|
64
|
+
if (!server) {
|
|
65
|
+
throw new Error('[ee-core] getSocketServer() called before socketServer was created. Ensure this code runs after the Ready lifecycle event.');
|
|
66
|
+
}
|
|
67
|
+
return server;
|
|
61
68
|
}
|
|
62
69
|
/**
|
|
63
70
|
* Create HTTP server
|
|
@@ -70,9 +77,16 @@ async function createHttpServer() {
|
|
|
70
77
|
}
|
|
71
78
|
/**
|
|
72
79
|
* Get HTTP server instance
|
|
80
|
+
*
|
|
81
|
+
* @returns HttpServer instance
|
|
82
|
+
* @throws Error if httpServer has not been created yet
|
|
73
83
|
*/
|
|
74
84
|
function getHttpServer() {
|
|
75
|
-
|
|
85
|
+
const server = Instance.httpServer;
|
|
86
|
+
if (!server) {
|
|
87
|
+
throw new Error('[ee-core] getHttpServer() called before httpServer was created. Ensure this code runs after the Ready lifecycle event.');
|
|
88
|
+
}
|
|
89
|
+
return server;
|
|
76
90
|
}
|
|
77
91
|
/**
|
|
78
92
|
* Create IPC server
|
|
@@ -85,9 +99,16 @@ function createIpcServer() {
|
|
|
85
99
|
}
|
|
86
100
|
/**
|
|
87
101
|
* Get IPC server instance
|
|
102
|
+
*
|
|
103
|
+
* @returns IpcServer instance
|
|
104
|
+
* @throws Error if ipcServer has not been created yet
|
|
88
105
|
*/
|
|
89
106
|
function getIpcServer() {
|
|
90
|
-
|
|
107
|
+
const server = Instance.ipcServer;
|
|
108
|
+
if (!server) {
|
|
109
|
+
throw new Error('[ee-core] getIpcServer() called before ipcServer was created. Ensure this code runs after the Ready lifecycle event.');
|
|
110
|
+
}
|
|
111
|
+
return server;
|
|
91
112
|
}
|
|
92
113
|
/**
|
|
93
114
|
* Load and initialize all communication services
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AAyCA,gDAGC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AAyCA,gDAGC;AAQD,0CAMC;AAOD,4CAGC;AAQD,sCAMC;AAOD,0CAGC;AAQD,oCAMC;AAQD,gCAIC;AAtHD;;;;;;;;;;;GAWG;AACH,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,yCAA+C;AAOjC,yFAPK,kBAAQ,OAOL;AANtB,wEAAwC;AAMhB,mBANjB,0BAAQ,CAMiB;AALhC,8CAAsB;AAKb,cALF,aAAG,CAKE;AAJZ,uDAAiD;AACjD,mDAA6C;AAC7C,iDAA2C;AAI3C,+BAA+B;AAC/B,MAAM,QAAQ,GAIV;IACF,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;GAIG;AACI,KAAK,UAAU,kBAAkB;IACtC,QAAQ,CAAC,YAAY,GAAG,MAAM,8BAAY,CAAC,MAAM,EAAE,CAAC;IACpD,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4HAA4H,CAAC,CAAC;IAChJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,gBAAgB;IACpC,QAAQ,CAAC,UAAU,GAAG,MAAM,0BAAU,CAAC,MAAM,EAAE,CAAC;IAChD,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wHAAwH,CAAC,CAAC;IAC5I,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe;IAC7B,QAAQ,CAAC,SAAS,GAAG,IAAI,wBAAS,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sHAAsH,CAAC,CAAC;IAC1I,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,gBAAgB,EAAE,CAAC;IACzB,eAAe,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -2,9 +2,10 @@ import { BrowserWindow } from 'electron';
|
|
|
2
2
|
/**
|
|
3
3
|
* Get main window instance
|
|
4
4
|
*
|
|
5
|
-
* @returns BrowserWindow instance
|
|
5
|
+
* @returns BrowserWindow instance
|
|
6
|
+
* @throws Error if mainWindow has not been created yet (lifecycle ordering bug)
|
|
6
7
|
*/
|
|
7
|
-
export declare function getMainWindow(): BrowserWindow
|
|
8
|
+
export declare function getMainWindow(): BrowserWindow;
|
|
8
9
|
/**
|
|
9
10
|
* Create main application window
|
|
10
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2DzC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2DzC;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,aAAa,CAM7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAShD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAwEhD"}
|
|
@@ -79,10 +79,15 @@ const Instance = {
|
|
|
79
79
|
/**
|
|
80
80
|
* Get main window instance
|
|
81
81
|
*
|
|
82
|
-
* @returns BrowserWindow instance
|
|
82
|
+
* @returns BrowserWindow instance
|
|
83
|
+
* @throws Error if mainWindow has not been created yet (lifecycle ordering bug)
|
|
83
84
|
*/
|
|
84
85
|
function getMainWindow() {
|
|
85
|
-
|
|
86
|
+
const win = Instance.mainWindow;
|
|
87
|
+
if (!win) {
|
|
88
|
+
throw new Error('[ee-core] getMainWindow() called before mainWindow was created. Ensure this code runs after the WindowReady event.');
|
|
89
|
+
}
|
|
90
|
+
return win;
|
|
86
91
|
}
|
|
87
92
|
/**
|
|
88
93
|
* Create main application window
|
|
@@ -107,13 +112,12 @@ function createMainWindow() {
|
|
|
107
112
|
* Used when a second instance starts to activate the existing instance's window.
|
|
108
113
|
*/
|
|
109
114
|
function restoreMainWindow() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
Instance.mainWindow.show();
|
|
115
|
-
Instance.mainWindow.focus();
|
|
115
|
+
const win = getMainWindow();
|
|
116
|
+
if (win.isMinimized()) {
|
|
117
|
+
win.restore();
|
|
116
118
|
}
|
|
119
|
+
win.show();
|
|
120
|
+
win.focus();
|
|
117
121
|
}
|
|
118
122
|
/**
|
|
119
123
|
* Set close and quit flag
|
|
@@ -140,9 +144,6 @@ function getCloseAndQuit() {
|
|
|
140
144
|
*/
|
|
141
145
|
async function loadServer() {
|
|
142
146
|
const { remote, mainServer } = (0, index_js_1.getConfig)();
|
|
143
|
-
const win = getMainWindow();
|
|
144
|
-
if (!win)
|
|
145
|
-
return;
|
|
146
147
|
// Remote mode: load remote URL directly
|
|
147
148
|
if (remote.enable) {
|
|
148
149
|
loadMainUrl('remote', remote.url);
|
|
@@ -181,10 +182,7 @@ async function loadServer() {
|
|
|
181
182
|
if (frontendReady === false && frontendConf.force !== true) {
|
|
182
183
|
// Frontend service not ready, show failure page
|
|
183
184
|
const bootFailurePage = (0, index_js_7.getHtmlFilepath)('failure.html');
|
|
184
|
-
|
|
185
|
-
if (win) {
|
|
186
|
-
win.loadFile(bootFailurePage);
|
|
187
|
-
}
|
|
185
|
+
getMainWindow().loadFile(bootFailurePage);
|
|
188
186
|
index_js_3.coreLogger.error(`Please check the ${url} !`);
|
|
189
187
|
return;
|
|
190
188
|
}
|
|
@@ -215,8 +213,6 @@ async function loadServer() {
|
|
|
215
213
|
function loadMainUrl(type, url, load = 'url') {
|
|
216
214
|
const { openDevTools, mainServer } = (0, index_js_1.getConfig)();
|
|
217
215
|
const win = getMainWindow();
|
|
218
|
-
if (!win)
|
|
219
|
-
return;
|
|
220
216
|
index_js_3.coreLogger.info('Env: %s, Type: %s', (0, index_js_2.env)(), type);
|
|
221
217
|
index_js_3.coreLogger.info('App running at: %s', url);
|
|
222
218
|
debugLog('[loadMainUrl] type:%s, url:%s', type, url);
|
|
@@ -253,8 +249,6 @@ function loadMainUrl(type, url, load = 'url') {
|
|
|
253
249
|
*/
|
|
254
250
|
function _loadingPage(filepath) {
|
|
255
251
|
const win = getMainWindow();
|
|
256
|
-
if (!win)
|
|
257
|
-
return;
|
|
258
252
|
if ((0, helper_js_1.fileIsExist)(filepath)) {
|
|
259
253
|
win.loadFile(filepath);
|
|
260
254
|
}
|
|
@@ -299,10 +293,7 @@ async function crossTakeover() {
|
|
|
299
293
|
if (!serviceReady) {
|
|
300
294
|
// Service not ready, show failure page
|
|
301
295
|
const bootFailurePage = (0, index_js_7.getHtmlFilepath)('cross-failure.html');
|
|
302
|
-
|
|
303
|
-
if (mainWindow) {
|
|
304
|
-
mainWindow.loadFile(bootFailurePage);
|
|
305
|
-
}
|
|
296
|
+
getMainWindow().loadFile(bootFailurePage);
|
|
306
297
|
throw new Error(`[ee-core] Please check cross service [${service}] ${url} !`);
|
|
307
298
|
}
|
|
308
299
|
index_js_3.coreLogger.info(`cross service [${service}] is started successfully`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/electron/window/index.ts"],"names":[],"mappings":";;;;;AAgFA,sCAMC;AAWD,4CASC;AAQD,8CAOC;AAOD,0CAEC;AAKD,0CAEC;AAWD,gCAwEC;AA5ND;;;;;;;;;;GAUG;AACH,kDAA0B;AAC1B,6DAAqD;AACrD,gDAAwB;AACxB,kDAA0B;AAC1B,uCAAyC;AACzC,oDAAkD;AAClD,mDAA4D;AAC5D,gDAA2D;AAC3D,iDAAgD;AAChD,oDAAiD;AACjD,mDAAsD;AACtD,qDAA2D;AAC3D,qDAA+C;AAC/C,mDAA6C;AAC7C,kDAAsD;AAGtD,MAAM,QAAQ,GAAG,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,OAAmE;IACxG,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,CAAC,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,IAAA,iBAAK,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG;gBACH,OAAO,EAAE,OAAO,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,EAAE,QAAQ,EAAE,8CAA8C,EAAE;aACtE,CAAC,CAAC;YACH,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QACD,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yCAAyC;AACzC,MAAM,QAAQ,GAGV;IACF,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,aAAa;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAC;IACxI,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,oBAAS,GAElC,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,wBAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;IAE1B,oBAAQ,CAAC,aAAa,CAAC,uBAAW,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QACtB,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IACD,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,IAAa;IAC3C,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,oBAAS,GAGvC,CAAC;IAEF,wCAAwC;IACxC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAA,gBAAK,GAAE,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,qBAAU,GAAE,EAAE,cAAc,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAA,mBAAQ,EAAC,OAAO,CAAuB,CAAC;QAC1D,MAAM,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,EAAe,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAA,kBAAM,EAAC,IAAI,EAAE;YAChC,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,eAAe;SAC3B,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAsB,CAAC;QAC5C,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAsB,CAAC;QAE/D,IAAI,GAAG,GAAG,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,GAAG,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC;QAClF,IAAI,IAAI,GAAmB,KAAK,CAAC;QACjC,6CAA6C;QAC7C,IAAI,IAAA,yBAAc,EAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,qBAAU,GAAE,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9E,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;QAED,+EAA+E;QAC/E,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,oBAAoB;YACpB,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC7B,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,IAAA,qBAAU,GAAE,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,gDAAgD;YAChD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxG,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;YAE9C,IAAI,aAAa,KAAK,KAAK,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3D,gDAAgD;gBAChD,MAAM,eAAe,GAAG,IAAA,0BAAe,EAAC,cAAc,CAAC,CAAC;gBACxD,aAAa,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAC1C,qBAAU,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;QACH,CAAC;QAED,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,aAAa,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,IAAI,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,qBAAU,GAAE,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,IAAA,yBAAc,EAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5C,CAAC;IACD,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,GAAW,EAAE,IAAI,GAAG,KAAK;IAC1D,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAA,oBAAS,GAG7C,CAAC;IACF,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,qBAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAA,cAAG,GAAE,EAAE,IAAI,CAAC,CAAC;IAClD,qBAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAQ,CAAC,+BAA+B,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAErD,sGAAsG;IACtG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC3C,IAAI,IAAA,wBAAQ,EAAC,YAAY,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,YAAuD,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACjC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;aAClC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,qBAAU,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;aACjC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,qBAAU,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,IAAI,IAAA,uBAAW,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa;IAC1B,MAAM,SAAS,GAAG,IAAA,oBAAS,GAAE,CAAC,KAAoF,CAAC;IACnH,MAAM,QAAQ,GAAG,IAAA,oBAAS,GAAE,CAAC,UAAuD,CAAC;IAErF,oBAAoB;IACpB,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,EAAE,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,qBAAU,GAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzD,YAAY,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,2CAA2C;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,6CAA6C,OAAO,mBAAmB,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC;IAC/C,MAAM,GAAG,GAAG,gBAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAErC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,+BAA+B,CAAC,CAAC;IACzG,CAAC;IAED,wCAAwC;IACxC,MAAM,KAAK,GAAG,IAAA,gBAAK,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,gBAAK,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACtG,QAAQ,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IAElD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,uCAAuC;QACvC,MAAM,eAAe,GAAG,IAAA,0BAAe,EAAC,oBAAoB,CAAC,CAAC;QAC9D,aAAa,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,KAAK,GAAG,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,qBAAU,CAAC,IAAI,CAAC,kBAAkB,OAAO,2BAA2B,CAAC,CAAC;IACtE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -28,8 +28,11 @@ export { Koa, IoServer, IoClient };
|
|
|
28
28
|
export declare function createSocketServer(): Promise<SocketServer>;
|
|
29
29
|
/**
|
|
30
30
|
* Get SocketIO server instance
|
|
31
|
+
*
|
|
32
|
+
* @returns SocketServer instance
|
|
33
|
+
* @throws Error if socketServer has not been created yet
|
|
31
34
|
*/
|
|
32
|
-
export declare function getSocketServer(): SocketServer
|
|
35
|
+
export declare function getSocketServer(): SocketServer;
|
|
33
36
|
/**
|
|
34
37
|
* Create HTTP server
|
|
35
38
|
*
|
|
@@ -38,8 +41,11 @@ export declare function getSocketServer(): SocketServer | null;
|
|
|
38
41
|
export declare function createHttpServer(): Promise<HttpServer>;
|
|
39
42
|
/**
|
|
40
43
|
* Get HTTP server instance
|
|
44
|
+
*
|
|
45
|
+
* @returns HttpServer instance
|
|
46
|
+
* @throws Error if httpServer has not been created yet
|
|
41
47
|
*/
|
|
42
|
-
export declare function getHttpServer(): HttpServer
|
|
48
|
+
export declare function getHttpServer(): HttpServer;
|
|
43
49
|
/**
|
|
44
50
|
* Create IPC server
|
|
45
51
|
*
|
|
@@ -48,8 +54,11 @@ export declare function getHttpServer(): HttpServer | null;
|
|
|
48
54
|
export declare function createIpcServer(): IpcServer;
|
|
49
55
|
/**
|
|
50
56
|
* Get IPC server instance
|
|
57
|
+
*
|
|
58
|
+
* @returns IpcServer instance
|
|
59
|
+
* @throws Error if ipcServer has not been created yet
|
|
51
60
|
*/
|
|
52
|
-
export declare function getIpcServer(): IpcServer
|
|
61
|
+
export declare function getIpcServer(): IpcServer;
|
|
53
62
|
/**
|
|
54
63
|
* Load and initialize all communication services
|
|
55
64
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAanC;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAGhE;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAanC;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAGhE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAM9C;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAM1C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAG3C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAMxC;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAIhD"}
|
package/dist/esm/socket/index.js
CHANGED
|
@@ -55,9 +55,16 @@ async function createSocketServer() {
|
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* Get SocketIO server instance
|
|
58
|
+
*
|
|
59
|
+
* @returns SocketServer instance
|
|
60
|
+
* @throws Error if socketServer has not been created yet
|
|
58
61
|
*/
|
|
59
62
|
function getSocketServer() {
|
|
60
|
-
|
|
63
|
+
const server = Instance.socketServer;
|
|
64
|
+
if (!server) {
|
|
65
|
+
throw new Error('[ee-core] getSocketServer() called before socketServer was created. Ensure this code runs after the Ready lifecycle event.');
|
|
66
|
+
}
|
|
67
|
+
return server;
|
|
61
68
|
}
|
|
62
69
|
/**
|
|
63
70
|
* Create HTTP server
|
|
@@ -70,9 +77,16 @@ async function createHttpServer() {
|
|
|
70
77
|
}
|
|
71
78
|
/**
|
|
72
79
|
* Get HTTP server instance
|
|
80
|
+
*
|
|
81
|
+
* @returns HttpServer instance
|
|
82
|
+
* @throws Error if httpServer has not been created yet
|
|
73
83
|
*/
|
|
74
84
|
function getHttpServer() {
|
|
75
|
-
|
|
85
|
+
const server = Instance.httpServer;
|
|
86
|
+
if (!server) {
|
|
87
|
+
throw new Error('[ee-core] getHttpServer() called before httpServer was created. Ensure this code runs after the Ready lifecycle event.');
|
|
88
|
+
}
|
|
89
|
+
return server;
|
|
76
90
|
}
|
|
77
91
|
/**
|
|
78
92
|
* Create IPC server
|
|
@@ -85,9 +99,16 @@ function createIpcServer() {
|
|
|
85
99
|
}
|
|
86
100
|
/**
|
|
87
101
|
* Get IPC server instance
|
|
102
|
+
*
|
|
103
|
+
* @returns IpcServer instance
|
|
104
|
+
* @throws Error if ipcServer has not been created yet
|
|
88
105
|
*/
|
|
89
106
|
function getIpcServer() {
|
|
90
|
-
|
|
107
|
+
const server = Instance.ipcServer;
|
|
108
|
+
if (!server) {
|
|
109
|
+
throw new Error('[ee-core] getIpcServer() called before ipcServer was created. Ensure this code runs after the Ready lifecycle event.');
|
|
110
|
+
}
|
|
111
|
+
return server;
|
|
91
112
|
}
|
|
92
113
|
/**
|
|
93
114
|
* Load and initialize all communication services
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AAyCA,gDAGC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AAyCA,gDAGC;AAQD,0CAMC;AAOD,4CAGC;AAQD,sCAMC;AAOD,0CAGC;AAQD,oCAMC;AAQD,gCAIC;AAtHD;;;;;;;;;;;GAWG;AACH,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,yCAA+C;AAOjC,yFAPK,kBAAQ,OAOL;AANtB,wEAAwC;AAMhB,mBANjB,0BAAQ,CAMiB;AALhC,8CAAsB;AAKb,cALF,aAAG,CAKE;AAJZ,uDAAiD;AACjD,mDAA6C;AAC7C,iDAA2C;AAI3C,+BAA+B;AAC/B,MAAM,QAAQ,GAIV;IACF,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;GAIG;AACI,KAAK,UAAU,kBAAkB;IACtC,QAAQ,CAAC,YAAY,GAAG,MAAM,8BAAY,CAAC,MAAM,EAAE,CAAC;IACpD,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4HAA4H,CAAC,CAAC;IAChJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,gBAAgB;IACpC,QAAQ,CAAC,UAAU,GAAG,MAAM,0BAAU,CAAC,MAAM,EAAE,CAAC;IAChD,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wHAAwH,CAAC,CAAC;IAC5I,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe;IAC7B,QAAQ,CAAC,SAAS,GAAG,IAAI,wBAAS,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sHAAsH,CAAC,CAAC;IAC1I,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,gBAAgB,EAAE,CAAC;IACzB,eAAe,EAAE,CAAC;AACpB,CAAC"}
|