@flighthq/app 0.5.1-next.815.cc08b93 → 0.5.1-next.903.f434bc2
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 +2 -2
- package/dist/app.d.ts +2 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +12 -9
- package/dist/app.js.map +1 -1
- package/dist/contract.d.ts +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/package.json +4 -4
- package/src/app.test.ts +110 -48
- package/src/appHost.test.ts +31 -7
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/app`. The `@flighthq
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/app@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/app@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/app)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
|
package/dist/app.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { App, AppActivationPolicy, AppLoginItem, AppLoginItemLike, AppPathKind, HasAppActivate, HasAppActivationPolicy, HasAppAllWindowsClosed, HasAppBadge, HasAppDock, HasAppFocus, HasAppHiddenQuery, HasAppHide, HasAppLocale, HasAppLoginItem, HasAppName, HasAppNameWrite, HasAppOpenFile, HasAppPath, HasAppQuit, HasAppQuitRequest, HasAppReady, HasAppRecentDocuments, HasAppRelaunch, HasAppSecondInstance, HasAppShow, HasAppSingleInstance, HasAppUserModelId, HasAppVersion, MenuItemTemplate } from '@flighthq/types/contract';
|
|
1
|
+
import type { App, AppActivationPolicy, AppLoginItem, AppLoginItemLike, AppPathKind, EntityConstruction, HasAppActivate, HasAppActivationPolicy, HasAppAllWindowsClosed, HasAppBadge, HasAppDock, HasAppFocus, HasAppHiddenQuery, HasAppHide, HasAppLocale, HasAppLoginItem, HasAppName, HasAppNameWrite, HasAppOpenFile, HasAppPath, HasAppQuit, HasAppQuitRequest, HasAppReady, HasAppRecentDocuments, HasAppRelaunch, HasAppSecondInstance, HasAppShow, HasAppSingleInstance, HasAppUserModelId, HasAppVersion, MenuItemTemplate } from '@flighthq/types/contract';
|
|
2
2
|
type HasAllAppEvents = HasAppActivate & HasAppAllWindowsClosed & HasAppOpenFile & HasAppQuitRequest & HasAppReady & HasAppSecondInstance;
|
|
3
3
|
export declare function addAppRecentDocument(host: HasAppRecentDocuments, path: string): void;
|
|
4
4
|
export declare function attachApp(host: HasAllAppEvents, app: App): void;
|
|
@@ -27,6 +27,7 @@ export declare function getAppSystemLocale(host: HasAppLocale): string;
|
|
|
27
27
|
export declare function getAppVersion(host: HasAppVersion): string;
|
|
28
28
|
export declare function hasAppSingleInstanceLock(host: HasAppSingleInstance): boolean;
|
|
29
29
|
export declare function hideApp(host: HasAppHide): void;
|
|
30
|
+
export declare function initializeApp(out: EntityConstruction<App>): void;
|
|
30
31
|
export declare function isAppHidden(host: HasAppHiddenQuery): boolean;
|
|
31
32
|
export declare function quitApp(host: HasAppQuit): void;
|
|
32
33
|
export declare function relaunchApp(host: HasAppRelaunch): void;
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,GAAG,EACH,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,KAAK,eAAe,GAAG,cAAc,GACnC,sBAAsB,GACtB,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,oBAAoB,CAAC;AAWvB,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEpF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAQ/D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMtE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMtF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMtE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAS5E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMhE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMlF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAEzE;AAED,wBAAgB,SAAS,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { clearSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
|
|
3
3
|
export function addAppRecentDocument(host, path) {
|
|
4
4
|
host.app.recentDocuments.addRecentDocument(path);
|
|
@@ -47,14 +47,9 @@ export function clearAppRecentDocuments(host) {
|
|
|
47
47
|
host.app.recentDocuments.clearRecentDocuments();
|
|
48
48
|
}
|
|
49
49
|
export function createApp() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
onOpenFile: createSignal(),
|
|
54
|
-
onQuitRequest: createSignal(),
|
|
55
|
-
onReady: createSignal(),
|
|
56
|
-
onSecondInstance: createSignal(),
|
|
57
|
-
});
|
|
50
|
+
const out = allocateEntity();
|
|
51
|
+
initializeApp(out);
|
|
52
|
+
return finishEntity(out);
|
|
58
53
|
}
|
|
59
54
|
export function detachApp(app) {
|
|
60
55
|
const subscriptions = _subscriptions.get(app);
|
|
@@ -109,6 +104,14 @@ export function hasAppSingleInstanceLock(host) {
|
|
|
109
104
|
export function hideApp(host) {
|
|
110
105
|
host.app.hide.hideApp();
|
|
111
106
|
}
|
|
107
|
+
export function initializeApp(out) {
|
|
108
|
+
out.onActivate = createSignal();
|
|
109
|
+
out.onAllWindowsClosed = createSignal();
|
|
110
|
+
out.onOpenFile = createSignal();
|
|
111
|
+
out.onQuitRequest = createSignal();
|
|
112
|
+
out.onReady = createSignal();
|
|
113
|
+
out.onSecondInstance = createSignal();
|
|
114
|
+
}
|
|
112
115
|
export function isAppHidden(host) {
|
|
113
116
|
return host.app.hiddenQuery.isAppHidden();
|
|
114
117
|
}
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.d.ts
CHANGED
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/contract.js
CHANGED
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/app",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.903.f434bc2",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/signals": "0.5.1-next.
|
|
43
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.903.f434bc2",
|
|
42
|
+
"@flighthq/signals": "0.5.1-next.903.f434bc2",
|
|
43
|
+
"@flighthq/types": "0.5.1-next.903.f434bc2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.3.0"
|
package/src/app.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { cancelSignal, connectSignal } from '@flighthq/signals/contract';
|
|
3
3
|
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
4
4
|
import { describe, expect, it, vi } from 'vitest';
|
|
@@ -66,63 +66,125 @@ function createFixture() {
|
|
|
66
66
|
secondInstance: vi.fn(),
|
|
67
67
|
};
|
|
68
68
|
const subscribe = <Key extends keyof typeof listeners>(key: Key) =>
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
(() => {
|
|
70
|
+
const out = allocateEntity<any>();
|
|
71
|
+
out.subscribe = (listener: NonNullable<(typeof listeners)[Key]>) => {
|
|
71
72
|
listeners[key] = listener;
|
|
72
73
|
return unsubscribes[key];
|
|
73
|
-
}
|
|
74
|
-
|
|
74
|
+
};
|
|
75
|
+
return finishEntity(out);
|
|
76
|
+
})();
|
|
75
77
|
const host = {
|
|
76
78
|
app: {
|
|
77
79
|
activate: subscribe('activate'),
|
|
78
|
-
activationPolicy:
|
|
80
|
+
activationPolicy: (() => {
|
|
81
|
+
const out = allocateEntity<any>();
|
|
82
|
+
out.setActivationPolicy = (policy: string) => calls.push(`policy:${policy}`);
|
|
83
|
+
return finishEntity(out);
|
|
84
|
+
})(),
|
|
79
85
|
allWindowsClosed: subscribe('allWindowsClosed'),
|
|
80
|
-
badge:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
86
|
+
badge: (() => {
|
|
87
|
+
const out = allocateEntity<any>();
|
|
88
|
+
out.setBadgeCount = async (count: number) => (calls.push(`badge:${count}`), true);
|
|
89
|
+
return finishEntity(out);
|
|
90
|
+
})(),
|
|
91
|
+
dock: (() => {
|
|
92
|
+
const out = allocateEntity<any>();
|
|
93
|
+
out.bounceDock = () => 17;
|
|
94
|
+
out.cancelAttention = (id: number) => calls.push(`cancelAttention:${id}`);
|
|
95
|
+
out.cancelDockBounce = (id: number) => calls.push(`cancelBounce:${id}`);
|
|
96
|
+
out.requestAttention = (critical: boolean) => (calls.push(`attention:${critical}`), 19);
|
|
97
|
+
out.setDockBadge = (text: string) => calls.push(`dockBadge:${text}`);
|
|
98
|
+
out.setDockMenu = (items: readonly unknown[]) => calls.push(`dockMenu:${items.length}`);
|
|
99
|
+
return finishEntity(out);
|
|
100
|
+
})(),
|
|
101
|
+
focus: (() => {
|
|
102
|
+
const out = allocateEntity<any>();
|
|
103
|
+
out.focus = () => calls.push('focus');
|
|
104
|
+
return finishEntity(out);
|
|
105
|
+
})(),
|
|
106
|
+
hiddenQuery: (() => {
|
|
107
|
+
const out = allocateEntity<any>();
|
|
108
|
+
out.isAppHidden = () => true;
|
|
109
|
+
return finishEntity(out);
|
|
110
|
+
})(),
|
|
111
|
+
hide: (() => {
|
|
112
|
+
const out = allocateEntity<any>();
|
|
113
|
+
out.hideApp = () => calls.push('hide');
|
|
114
|
+
return finishEntity(out);
|
|
115
|
+
})(),
|
|
116
|
+
locale: (() => {
|
|
117
|
+
const out = allocateEntity<any>();
|
|
118
|
+
out.getLocale = () => 'en-GB';
|
|
119
|
+
out.getPreferredSystemLanguages = () => ['en-GB', 'fr'];
|
|
120
|
+
out.getSystemLocale = () => 'en-US';
|
|
121
|
+
return finishEntity(out);
|
|
122
|
+
})(),
|
|
123
|
+
loginItem: (() => {
|
|
124
|
+
const out = allocateEntity<any>();
|
|
125
|
+
out.getLoginItem = () => ({ args: ['--start'], openAsHidden: true, openAtLogin: true, path: '/app' });
|
|
126
|
+
out.setLoginItem = () => calls.push('loginItem');
|
|
127
|
+
return finishEntity(out);
|
|
128
|
+
})(),
|
|
129
|
+
name: (() => {
|
|
130
|
+
const out = allocateEntity<any>();
|
|
131
|
+
out.getName = () => 'Flight';
|
|
132
|
+
return finishEntity(out);
|
|
133
|
+
})(),
|
|
134
|
+
nameWrite: (() => {
|
|
135
|
+
const out = allocateEntity<any>();
|
|
136
|
+
out.setName = (name: string) => calls.push(`name:${name}`);
|
|
137
|
+
return finishEntity(out);
|
|
138
|
+
})(),
|
|
103
139
|
openFile: subscribe('openFile'),
|
|
104
|
-
path:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
140
|
+
path: (() => {
|
|
141
|
+
const out = allocateEntity<any>();
|
|
142
|
+
out.getAppDirectoryPath = (kind: string) => `/app/${kind}`;
|
|
143
|
+
out.getAppPath = () => '/app';
|
|
144
|
+
out.getExecutablePath = () => '/app/flight';
|
|
145
|
+
return finishEntity(out);
|
|
146
|
+
})(),
|
|
147
|
+
quit: (() => {
|
|
148
|
+
const out = allocateEntity<any>();
|
|
149
|
+
out.quit = () => calls.push('quit');
|
|
150
|
+
return finishEntity(out);
|
|
151
|
+
})(),
|
|
110
152
|
quitRequest: subscribe('quitRequest'),
|
|
111
153
|
ready: subscribe('ready'),
|
|
112
|
-
recentDocuments:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
154
|
+
recentDocuments: (() => {
|
|
155
|
+
const out = allocateEntity<any>();
|
|
156
|
+
out.addRecentDocument = (path: string) => calls.push(`recent:${path}`);
|
|
157
|
+
out.clearRecentDocuments = () => calls.push('clearRecent');
|
|
158
|
+
return finishEntity(out);
|
|
159
|
+
})(),
|
|
160
|
+
relaunch: (() => {
|
|
161
|
+
const out = allocateEntity<any>();
|
|
162
|
+
out.relaunch = () => calls.push('relaunch');
|
|
163
|
+
return finishEntity(out);
|
|
164
|
+
})(),
|
|
117
165
|
secondInstance: subscribe('secondInstance'),
|
|
118
|
-
show:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
166
|
+
show: (() => {
|
|
167
|
+
const out = allocateEntity<any>();
|
|
168
|
+
out.showApp = () => calls.push('show');
|
|
169
|
+
return finishEntity(out);
|
|
170
|
+
})(),
|
|
171
|
+
singleInstance: (() => {
|
|
172
|
+
const out = allocateEntity<any>();
|
|
173
|
+
out.hasSingleInstanceLock = () => true;
|
|
174
|
+
out.releaseSingleInstanceLock = () => calls.push('releaseLock');
|
|
175
|
+
out.requestSingleInstanceLock = () => true;
|
|
176
|
+
return finishEntity(out);
|
|
177
|
+
})(),
|
|
178
|
+
userModelId: (() => {
|
|
179
|
+
const out = allocateEntity<any>();
|
|
180
|
+
out.setUserModelId = (id: string) => calls.push(`userModel:${id}`);
|
|
181
|
+
return finishEntity(out);
|
|
182
|
+
})(),
|
|
183
|
+
version: (() => {
|
|
184
|
+
const out = allocateEntity<any>();
|
|
185
|
+
out.getVersion = () => '1.2.3';
|
|
186
|
+
return finishEntity(out);
|
|
187
|
+
})(),
|
|
126
188
|
},
|
|
127
189
|
};
|
|
128
190
|
return { calls, host, listeners, unsubscribes };
|
package/src/appHost.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { connectSignal } from '@flighthq/signals/contract';
|
|
3
3
|
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
4
4
|
import { describe, expect, it, vi } from 'vitest';
|
|
@@ -14,10 +14,26 @@ describe('app explicit Host ownership', () => {
|
|
|
14
14
|
const setBadgeCount = vi.fn(() => true);
|
|
15
15
|
const host = {
|
|
16
16
|
app: {
|
|
17
|
-
badge:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
badge: (() => {
|
|
18
|
+
const out = allocateEntity<any>();
|
|
19
|
+
out.setBadgeCount = setBadgeCount;
|
|
20
|
+
return finishEntity(out);
|
|
21
|
+
})(),
|
|
22
|
+
focus: (() => {
|
|
23
|
+
const out = allocateEntity<any>();
|
|
24
|
+
out.focus = focus;
|
|
25
|
+
return finishEntity(out);
|
|
26
|
+
})(),
|
|
27
|
+
name: (() => {
|
|
28
|
+
const out = allocateEntity<any>();
|
|
29
|
+
out.getName = getName;
|
|
30
|
+
return finishEntity(out);
|
|
31
|
+
})(),
|
|
32
|
+
quit: (() => {
|
|
33
|
+
const out = allocateEntity<any>();
|
|
34
|
+
out.quit = quit;
|
|
35
|
+
return finishEntity(out);
|
|
36
|
+
})(),
|
|
21
37
|
},
|
|
22
38
|
};
|
|
23
39
|
|
|
@@ -38,14 +54,22 @@ describe('app explicit Host ownership', () => {
|
|
|
38
54
|
listeners.ready = listener;
|
|
39
55
|
return vi.fn();
|
|
40
56
|
});
|
|
41
|
-
const inert =
|
|
57
|
+
const inert = (() => {
|
|
58
|
+
const out = allocateEntity<any>();
|
|
59
|
+
out.subscribe = () => vi.fn();
|
|
60
|
+
return finishEntity(out);
|
|
61
|
+
})();
|
|
42
62
|
const host = {
|
|
43
63
|
app: {
|
|
44
64
|
activate: inert,
|
|
45
65
|
allWindowsClosed: inert,
|
|
46
66
|
openFile: inert,
|
|
47
67
|
quitRequest: inert,
|
|
48
|
-
ready:
|
|
68
|
+
ready: (() => {
|
|
69
|
+
const out = allocateEntity<any>();
|
|
70
|
+
out.subscribe = subscribe;
|
|
71
|
+
return finishEntity(out);
|
|
72
|
+
})(),
|
|
49
73
|
secondInstance: inert,
|
|
50
74
|
},
|
|
51
75
|
};
|