@_traeop_/electron-modular 1.0.5
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/LICENSE +21 -0
- package/README.md +675 -0
- package/dist/@core/bootstrap/bootstrap.d.ts +3 -0
- package/dist/@core/bootstrap/bootstrap.d.ts.map +1 -0
- package/dist/@core/bootstrap/bootstrap.js +21 -0
- package/dist/@core/bootstrap/bootstrap.js.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/handlers.d.ts +4 -0
- package/dist/@core/bootstrap/initialize-ipc/handlers.d.ts.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/handlers.js +48 -0
- package/dist/@core/bootstrap/initialize-ipc/handlers.js.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/window-creator.d.ts +4 -0
- package/dist/@core/bootstrap/initialize-ipc/window-creator.d.ts.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/window-creator.js +29 -0
- package/dist/@core/bootstrap/initialize-ipc/window-creator.js.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.d.ts +4 -0
- package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.d.ts.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.js +91 -0
- package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.js.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.d.ts +4 -0
- package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.d.ts.map +1 -0
- package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.js +11 -0
- package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.js.map +1 -0
- package/dist/@core/bootstrap/initialize-module.d.ts +4 -0
- package/dist/@core/bootstrap/initialize-module.d.ts.map +1 -0
- package/dist/@core/bootstrap/initialize-module.js +19 -0
- package/dist/@core/bootstrap/initialize-module.js.map +1 -0
- package/dist/@core/bootstrap/instantiate-module.d.ts +3 -0
- package/dist/@core/bootstrap/instantiate-module.d.ts.map +1 -0
- package/dist/@core/bootstrap/instantiate-module.js +10 -0
- package/dist/@core/bootstrap/instantiate-module.js.map +1 -0
- package/dist/@core/bootstrap/register-imports.d.ts +3 -0
- package/dist/@core/bootstrap/register-imports.d.ts.map +1 -0
- package/dist/@core/bootstrap/register-imports.js +13 -0
- package/dist/@core/bootstrap/register-imports.js.map +1 -0
- package/dist/@core/bootstrap/register-ipc-handlers.d.ts +4 -0
- package/dist/@core/bootstrap/register-ipc-handlers.d.ts.map +1 -0
- package/dist/@core/bootstrap/register-ipc-handlers.js +10 -0
- package/dist/@core/bootstrap/register-ipc-handlers.js.map +1 -0
- package/dist/@core/bootstrap/register-providers.d.ts +4 -0
- package/dist/@core/bootstrap/register-providers.d.ts.map +1 -0
- package/dist/@core/bootstrap/register-providers.js +22 -0
- package/dist/@core/bootstrap/register-providers.js.map +1 -0
- package/dist/@core/bootstrap/register-windows.d.ts +4 -0
- package/dist/@core/bootstrap/register-windows.d.ts.map +1 -0
- package/dist/@core/bootstrap/register-windows.js +16 -0
- package/dist/@core/bootstrap/register-windows.js.map +1 -0
- package/dist/@core/bootstrap/settings.d.ts +12 -0
- package/dist/@core/bootstrap/settings.d.ts.map +1 -0
- package/dist/@core/bootstrap/settings.js +14 -0
- package/dist/@core/bootstrap/settings.js.map +1 -0
- package/dist/@core/container.d.ts +32 -0
- package/dist/@core/container.d.ts.map +1 -0
- package/dist/@core/container.js +166 -0
- package/dist/@core/container.js.map +1 -0
- package/dist/@core/control-window/cache.d.ts +2 -0
- package/dist/@core/control-window/cache.d.ts.map +1 -0
- package/dist/@core/control-window/cache.js +2 -0
- package/dist/@core/control-window/cache.js.map +1 -0
- package/dist/@core/control-window/create.d.ts +4 -0
- package/dist/@core/control-window/create.d.ts.map +1 -0
- package/dist/@core/control-window/create.js +82 -0
- package/dist/@core/control-window/create.js.map +1 -0
- package/dist/@core/control-window/destroy.d.ts +2 -0
- package/dist/@core/control-window/destroy.d.ts.map +1 -0
- package/dist/@core/control-window/destroy.js +10 -0
- package/dist/@core/control-window/destroy.js.map +1 -0
- package/dist/@core/control-window/receive.d.ts +3 -0
- package/dist/@core/control-window/receive.d.ts.map +1 -0
- package/dist/@core/control-window/receive.js +9 -0
- package/dist/@core/control-window/receive.js.map +1 -0
- package/dist/@core/control-window/types.d.ts +15 -0
- package/dist/@core/control-window/types.d.ts.map +1 -0
- package/dist/@core/control-window/types.js +2 -0
- package/dist/@core/control-window/types.js.map +1 -0
- package/dist/@core/decorators/inject.d.ts +7 -0
- package/dist/@core/decorators/inject.d.ts.map +1 -0
- package/dist/@core/decorators/inject.js +16 -0
- package/dist/@core/decorators/inject.js.map +1 -0
- package/dist/@core/decorators/injectable.d.ts +3 -0
- package/dist/@core/decorators/injectable.d.ts.map +1 -0
- package/dist/@core/decorators/injectable.js +7 -0
- package/dist/@core/decorators/injectable.js.map +1 -0
- package/dist/@core/decorators/ipc-handler.d.ts +3 -0
- package/dist/@core/decorators/ipc-handler.d.ts.map +1 -0
- package/dist/@core/decorators/ipc-handler.js +7 -0
- package/dist/@core/decorators/ipc-handler.js.map +1 -0
- package/dist/@core/decorators/rg-module.d.ts +4 -0
- package/dist/@core/decorators/rg-module.d.ts.map +1 -0
- package/dist/@core/decorators/rg-module.js +7 -0
- package/dist/@core/decorators/rg-module.js.map +1 -0
- package/dist/@core/decorators/window-manager.d.ts +4 -0
- package/dist/@core/decorators/window-manager.d.ts.map +1 -0
- package/dist/@core/decorators/window-manager.js +7 -0
- package/dist/@core/decorators/window-manager.js.map +1 -0
- package/dist/@core/errors/index.d.ts +16 -0
- package/dist/@core/errors/index.d.ts.map +1 -0
- package/dist/@core/errors/index.js +31 -0
- package/dist/@core/errors/index.js.map +1 -0
- package/dist/@core/types/constructor.d.ts +2 -0
- package/dist/@core/types/constructor.d.ts.map +1 -0
- package/dist/@core/types/constructor.js +2 -0
- package/dist/@core/types/constructor.js.map +1 -0
- package/dist/@core/types/index.d.ts +8 -0
- package/dist/@core/types/index.d.ts.map +1 -0
- package/dist/@core/types/index.js +2 -0
- package/dist/@core/types/index.js.map +1 -0
- package/dist/@core/types/ipc-handler.d.ts +8 -0
- package/dist/@core/types/ipc-handler.d.ts.map +1 -0
- package/dist/@core/types/ipc-handler.js +2 -0
- package/dist/@core/types/ipc-handler.js.map +1 -0
- package/dist/@core/types/module-metadata.d.ts +11 -0
- package/dist/@core/types/module-metadata.d.ts.map +1 -0
- package/dist/@core/types/module-metadata.js +2 -0
- package/dist/@core/types/module-metadata.js.map +1 -0
- package/dist/@core/types/provider.d.ts +22 -0
- package/dist/@core/types/provider.d.ts.map +1 -0
- package/dist/@core/types/provider.js +2 -0
- package/dist/@core/types/provider.js.map +1 -0
- package/dist/@core/types/window-factory.d.ts +7 -0
- package/dist/@core/types/window-factory.d.ts.map +1 -0
- package/dist/@core/types/window-factory.js +2 -0
- package/dist/@core/types/window-factory.js.map +1 -0
- package/dist/@core/types/window-manager.d.ts +11 -0
- package/dist/@core/types/window-manager.d.ts.map +1 -0
- package/dist/@core/types/window-manager.js +2 -0
- package/dist/@core/types/window-manager.js.map +1 -0
- package/dist/@core/types/window-metadata.d.ts +7 -0
- package/dist/@core/types/window-metadata.d.ts.map +1 -0
- package/dist/@core/types/window-metadata.js +2 -0
- package/dist/@core/types/window-metadata.js.map +1 -0
- package/dist/@core/utils/dependency-tokens.d.ts +5 -0
- package/dist/@core/utils/dependency-tokens.d.ts.map +1 -0
- package/dist/@core/utils/dependency-tokens.js +24 -0
- package/dist/@core/utils/dependency-tokens.js.map +1 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +5 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,YAA2B,EACZ,EAAE;IACjB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAE/C,CAAC;QAEd,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CACV,0CAA0C,WAAW,CAAC,IAAI,6CAA6C,CACxG,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Constructor } from "../../types/constructor.js";
|
|
2
|
+
import type { RgModuleMetadata } from "../../types/module-metadata.js";
|
|
3
|
+
export declare const initializeIpcHandlers: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AA+DvE,eAAO,MAAM,qBAAqB,GAChC,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAiBd,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { container } from "../../container.js";
|
|
2
|
+
import { createWindowWithParams } from "./window-creator.js";
|
|
3
|
+
import { createWindowInstance } from "./window-instance-creator.js";
|
|
4
|
+
import { attachWindowEventListeners } from "./window-event-listeners.js";
|
|
5
|
+
const createWindowFactory = (moduleClass, windowMetadata) => {
|
|
6
|
+
if (!windowMetadata?.metadata?.options ||
|
|
7
|
+
!windowMetadata.metadata.hash ||
|
|
8
|
+
!windowMetadata.windowClass) {
|
|
9
|
+
return {
|
|
10
|
+
create: async () => undefined,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
create: async (params) => {
|
|
15
|
+
const browserWindow = createWindowWithParams(windowMetadata.metadata, params);
|
|
16
|
+
const windowInstance = await createWindowInstance(moduleClass, windowMetadata.windowClass);
|
|
17
|
+
if (browserWindow && windowInstance) {
|
|
18
|
+
attachWindowEventListeners(browserWindow, windowInstance);
|
|
19
|
+
return browserWindow;
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
const createGetWindowFunction = (moduleClass) => {
|
|
26
|
+
return (name) => {
|
|
27
|
+
if (!name) {
|
|
28
|
+
return {
|
|
29
|
+
create: async () => undefined,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const windowMetadata = container.getProvider(moduleClass, name);
|
|
33
|
+
return createWindowFactory(moduleClass, windowMetadata);
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export const initializeIpcHandlers = async (moduleClass, metadata) => {
|
|
37
|
+
if (!metadata.ipc) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const getWindow = createGetWindowFunction(moduleClass);
|
|
41
|
+
for (const ipcClass of metadata.ipc) {
|
|
42
|
+
const ipcInstance = await container.resolve(moduleClass, ipcClass);
|
|
43
|
+
if (ipcInstance?.onInit) {
|
|
44
|
+
ipcInstance.onInit({ getWindow });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/handlers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,MAAM,mBAAmB,GAAG,CAC1B,WAAwB,EACxB,cAA2C,EAC3B,EAAE;IAClB,IACE,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO;QAClC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI;QAC7B,CAAC,cAAc,CAAC,WAAW,EAC3B,CAAC;QACD,OAAO;YACL,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,EACX,MAA4B,EACQ,EAAE;YACtC,MAAM,aAAa,GAAG,sBAAsB,CAC1C,cAAc,CAAC,QAAQ,EACvB,MAAM,CACP,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,WAAW,EACX,cAAc,CAAC,WAAW,CAC3B,CAAC;YAEF,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,0BAA0B,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;gBAC1D,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,WAAwB,EAAE,EAAE;IAC3D,OAAO,CAAC,IAAa,EAAkB,EAAE;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;aAC9B,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAC1C,WAAW,EACX,IAAI,CACL,CAAC;QAEF,OAAO,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEvD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CACzC,WAAW,EACX,QAAQ,CACT,CAAC;QAEF,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BrowserWindow } from "electron";
|
|
2
|
+
import type { TParamsCreateWindow } from "../../control-window/types.js";
|
|
3
|
+
export declare const createWindowWithParams: <W extends TParamsCreateWindow>(baseMetadata: W, params?: W) => BrowserWindow;
|
|
4
|
+
//# sourceMappingURL=window-creator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-creator.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AA+BzE,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,mBAAmB,EAClE,cAAc,CAAC,EACf,SAAS,CAAC,KACT,aAOF,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createWindow } from "../../control-window/create.js";
|
|
2
|
+
const isPlainObject = (value) => {
|
|
3
|
+
return (typeof value === "object" &&
|
|
4
|
+
value !== null &&
|
|
5
|
+
!Array.isArray(value) &&
|
|
6
|
+
Object.prototype.toString.call(value) === "[object Object]");
|
|
7
|
+
};
|
|
8
|
+
const mergeDeep = (target, source) => {
|
|
9
|
+
const output = { ...target };
|
|
10
|
+
for (const [key, value] of Object.entries(source)) {
|
|
11
|
+
if (isPlainObject(value)) {
|
|
12
|
+
const current = output[key];
|
|
13
|
+
output[key] = isPlainObject(current)
|
|
14
|
+
? mergeDeep(current, value)
|
|
15
|
+
: mergeDeep({}, value);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
output[key] = value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return output;
|
|
22
|
+
};
|
|
23
|
+
export const createWindowWithParams = (baseMetadata, params) => {
|
|
24
|
+
const mergedSettings = params !== undefined
|
|
25
|
+
? mergeDeep(baseMetadata, params)
|
|
26
|
+
: baseMetadata;
|
|
27
|
+
return createWindow(mergedSettings);
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=window-creator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-creator.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-creator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,MAAM,aAAa,GAAG,CAAC,KAAc,EAAyB,EAAE;IAC9D,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAC5D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAyB,MAAS,EAAE,MAAS,EAAK,EAAE;IACpE,MAAM,MAAM,GAAiB,EAAE,GAAG,MAAM,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;gBAClC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;gBAC3B,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,YAAe,EACf,MAAU,EACK,EAAE;IACjB,MAAM,cAAc,GAClB,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,SAAS,CAAC,YAA4B,EAAE,MAAsB,CAAC;QACjE,CAAC,CAAC,YAAY,CAAC;IAEnB,OAAO,YAAY,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BrowserWindow } from "electron";
|
|
2
|
+
import type { TWindowManagerWithHandlers } from "../../types/window-manager.js";
|
|
3
|
+
export declare const attachWindowEventListeners: (browserWindow: BrowserWindow, windowInstance: TWindowManagerWithHandlers) => void;
|
|
4
|
+
//# sourceMappingURL=window-event-listeners.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-event-listeners.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AA0GhF,eAAO,MAAM,0BAA0B,GACrC,eAAe,aAAa,EAC5B,gBAAgB,0BAA0B,KACzC,IA0CF,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
const windowListeners = new WeakMap();
|
|
2
|
+
const EVENT_PREFIX = "on";
|
|
3
|
+
const WINDOW_PREFIX = "onWindow";
|
|
4
|
+
const WEB_CONTENTS_PREFIX = "onWebContents";
|
|
5
|
+
const getPrototypeMethodNames = (instance) => {
|
|
6
|
+
const names = new Set();
|
|
7
|
+
let proto = Object.getPrototypeOf(instance);
|
|
8
|
+
while (proto && proto !== Object.prototype) {
|
|
9
|
+
Object.getOwnPropertyNames(proto).forEach((name) => {
|
|
10
|
+
if (name !== "constructor") {
|
|
11
|
+
names.add(name);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
proto = Object.getPrototypeOf(proto);
|
|
15
|
+
}
|
|
16
|
+
return Array.from(names);
|
|
17
|
+
};
|
|
18
|
+
const toEventName = (handlerName) => {
|
|
19
|
+
const cleaned = handlerName
|
|
20
|
+
.replace(WINDOW_PREFIX, "")
|
|
21
|
+
.replace(WEB_CONTENTS_PREFIX, "")
|
|
22
|
+
.replace(EVENT_PREFIX, "");
|
|
23
|
+
return cleaned
|
|
24
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1-$2")
|
|
25
|
+
.replace(/([A-Z])([A-Z][a-z])/g, "$1-$2")
|
|
26
|
+
.toLowerCase();
|
|
27
|
+
};
|
|
28
|
+
const isHandlerName = (name) => {
|
|
29
|
+
return name.startsWith(EVENT_PREFIX);
|
|
30
|
+
};
|
|
31
|
+
const isWebContentsHandler = (name) => {
|
|
32
|
+
return name.startsWith(WEB_CONTENTS_PREFIX);
|
|
33
|
+
};
|
|
34
|
+
const addListener = (emitter, eventName, listener) => {
|
|
35
|
+
emitter.on(eventName, listener);
|
|
36
|
+
return () => {
|
|
37
|
+
if (emitter.off) {
|
|
38
|
+
emitter.off(eventName, listener);
|
|
39
|
+
}
|
|
40
|
+
else if (emitter.removeListener) {
|
|
41
|
+
emitter.removeListener(eventName, listener);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
const attachHandlersToEmitter = (emitter, browserWindow, windowInstance, handlerNames, filter) => {
|
|
46
|
+
const cleanups = [];
|
|
47
|
+
for (const handlerName of handlerNames) {
|
|
48
|
+
if (!filter(handlerName)) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const handler = windowInstance[handlerName];
|
|
52
|
+
if (typeof handler !== "function") {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const eventName = toEventName(handlerName);
|
|
56
|
+
const listener = (...args) => {
|
|
57
|
+
if (handler.length <= 1) {
|
|
58
|
+
handler.apply(windowInstance, [browserWindow]);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
handler.apply(windowInstance, [...args, browserWindow]);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
cleanups.push(addListener(emitter, eventName, listener));
|
|
65
|
+
}
|
|
66
|
+
return cleanups;
|
|
67
|
+
};
|
|
68
|
+
export const attachWindowEventListeners = (browserWindow, windowInstance) => {
|
|
69
|
+
const entry = windowListeners.get(browserWindow);
|
|
70
|
+
if (entry?.instance === windowInstance) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (entry) {
|
|
74
|
+
entry.cleanup.forEach((cleanup) => cleanup());
|
|
75
|
+
}
|
|
76
|
+
const handlerNames = getPrototypeMethodNames(windowInstance).filter(isHandlerName);
|
|
77
|
+
const windowCleanups = attachHandlersToEmitter(browserWindow, browserWindow, windowInstance, handlerNames, (name) => !isWebContentsHandler(name));
|
|
78
|
+
const webContentsCleanups = attachHandlersToEmitter(browserWindow.webContents, browserWindow, windowInstance, handlerNames, isWebContentsHandler);
|
|
79
|
+
windowListeners.set(browserWindow, {
|
|
80
|
+
instance: windowInstance,
|
|
81
|
+
cleanup: [...windowCleanups, ...webContentsCleanups],
|
|
82
|
+
});
|
|
83
|
+
browserWindow.once("closed", () => {
|
|
84
|
+
const existing = windowListeners.get(browserWindow);
|
|
85
|
+
if (existing) {
|
|
86
|
+
existing.cleanup.forEach((cleanup) => cleanup());
|
|
87
|
+
windowListeners.delete(browserWindow);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=window-event-listeners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-event-listeners.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-event-listeners.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Constructor } from "../../types/constructor.js";
|
|
2
|
+
import type { TWindowManagerWithHandlers } from "../../types/window-manager.js";
|
|
3
|
+
export declare const createWindowInstance: <T extends TWindowManagerWithHandlers>(moduleClass: Constructor, windowClass: Constructor<T>) => Promise<T | undefined>;
|
|
4
|
+
//# sourceMappingURL=window-instance-creator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-instance-creator.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-instance-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAIhF,eAAO,MAAM,oBAAoB,GAC/B,CAAC,SAAS,0BAA0B,EAEpC,aAAa,WAAW,EACxB,aAAa,WAAW,CAAC,CAAC,CAAC,KAC1B,OAAO,CAAC,CAAC,GAAG,SAAS,CAWvB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { container } from "../../container.js";
|
|
2
|
+
import { getDependencyTokens } from "../../utils/dependency-tokens.js";
|
|
3
|
+
export const createWindowInstance = async (moduleClass, windowClass) => {
|
|
4
|
+
if (!windowClass) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
const dependenciesTypes = getDependencyTokens(windowClass);
|
|
8
|
+
const resolvedDependencies = await Promise.all(dependenciesTypes.map((depType) => container.resolve(moduleClass, depType)));
|
|
9
|
+
return new windowClass(...resolvedDependencies);
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=window-instance-creator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-instance-creator.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-instance-creator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAGvC,WAAwB,EACxB,WAA2B,EACH,EAAE;IAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5C,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAC5E,CAAC;IAEF,OAAO,IAAI,WAAW,CAAC,GAAG,oBAAoB,CAAC,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RgModuleMetadata } from "../types/module-metadata.js";
|
|
2
|
+
import type { Constructor } from "../types/constructor.js";
|
|
3
|
+
export declare const initializeModule: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=initialize-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize-module.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/initialize-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,eAAO,MAAM,gBAAgB,GAC3B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAcd,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { container } from "../container.js";
|
|
2
|
+
import { registerProviders } from "./register-providers.js";
|
|
3
|
+
import { registerImports } from "./register-imports.js";
|
|
4
|
+
import { registerWindows } from "./register-windows.js";
|
|
5
|
+
import { registerIpcHandlers } from "./register-ipc-handlers.js";
|
|
6
|
+
export const initializeModule = async (moduleClass, metadata) => {
|
|
7
|
+
const isNewModule = container.addModule(moduleClass, metadata);
|
|
8
|
+
container.setModuleMetadata(moduleClass, metadata);
|
|
9
|
+
if (!isNewModule) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
await Promise.all([
|
|
13
|
+
registerProviders(moduleClass, metadata),
|
|
14
|
+
registerImports(metadata),
|
|
15
|
+
registerWindows(moduleClass, metadata),
|
|
16
|
+
registerIpcHandlers(moduleClass, metadata),
|
|
17
|
+
]);
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=initialize-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize-module.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/initialize-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/D,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC;QACxC,eAAe,CAAC,QAAQ,CAAC;QACzB,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;QACtC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instantiate-module.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/instantiate-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,KACvB,OAAO,CAAC,OAAO,CAYjB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { container } from "../container.js";
|
|
2
|
+
import { getDependencyTokens } from "../utils/dependency-tokens.js";
|
|
3
|
+
export const instantiateModule = async (moduleClass) => {
|
|
4
|
+
const dependencies = getDependencyTokens(moduleClass);
|
|
5
|
+
const resolvedDependencies = await Promise.all(dependencies.map((dependency) => container.resolve(moduleClass, dependency)));
|
|
6
|
+
const instance = new moduleClass(...resolvedDependencies);
|
|
7
|
+
container.registerInstance(moduleClass, instance);
|
|
8
|
+
return instance;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=instantiate-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instantiate-module.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/instantiate-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,WAAwB,EACN,EAAE;IACpB,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5C,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9B,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAC3C,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAC1D,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAElD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-imports.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,eAAe,GAC1B,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAed,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { initializeModule } from "./initialize-module.js";
|
|
2
|
+
export const registerImports = async (metadata) => {
|
|
3
|
+
if (!metadata.imports) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
for (const importedModuleClass of metadata.imports) {
|
|
7
|
+
const importedModuleMetadata = Reflect.getMetadata("RgModule", importedModuleClass);
|
|
8
|
+
if (importedModuleMetadata) {
|
|
9
|
+
await initializeModule(importedModuleClass, importedModuleMetadata);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=register-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-imports.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,mBAAmB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAChD,UAAU,EACV,mBAAmB,CACY,CAAC;QAElC,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Constructor } from "../types/constructor.js";
|
|
2
|
+
import type { RgModuleMetadata } from "../types/module-metadata.js";
|
|
3
|
+
export declare const registerIpcHandlers: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=register-ipc-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-ipc-handlers.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-ipc-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,mBAAmB,GAC9B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAQd,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { container } from "../container.js";
|
|
2
|
+
export const registerIpcHandlers = async (moduleClass, metadata) => {
|
|
3
|
+
if (!metadata.ipc) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
for (const ipcClass of metadata.ipc) {
|
|
7
|
+
container.addProvider(moduleClass, ipcClass);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=register-ipc-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-ipc-handlers.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-ipc-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Constructor } from "../types/constructor.js";
|
|
2
|
+
import type { RgModuleMetadata } from "../types/module-metadata.js";
|
|
3
|
+
export declare const registerProviders: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=register-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-providers.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAYpE,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAkBd,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { InvalidProviderError } from "../errors/index.js";
|
|
2
|
+
import { container } from "../container.js";
|
|
3
|
+
const isProviderObject = (provider) => {
|
|
4
|
+
return (typeof provider === "object" && provider !== null && "provide" in provider);
|
|
5
|
+
};
|
|
6
|
+
export const registerProviders = async (moduleClass, metadata) => {
|
|
7
|
+
if (!metadata.providers) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
for (const provider of metadata.providers) {
|
|
11
|
+
if (typeof provider === "function") {
|
|
12
|
+
container.addProvider(moduleClass, provider);
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
if (isProviderObject(provider)) {
|
|
16
|
+
container.addProvider(moduleClass, provider.provide, provider);
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
throw new InvalidProviderError(moduleClass.name);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=register-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-providers.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,gBAAgB,GAAG,CACvB,QAAiB,EACiB,EAAE;IACpC,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,SAAS,IAAI,QAAQ,CAC3E,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,MAAM,IAAI,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Constructor } from "../types/constructor.js";
|
|
2
|
+
import type { RgModuleMetadata } from "../types/module-metadata.js";
|
|
3
|
+
export declare const registerWindows: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=register-windows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-windows.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-windows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAIpE,eAAO,MAAM,eAAe,GAC1B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAkBd,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { container } from "../container.js";
|
|
2
|
+
export const registerWindows = async (moduleClass, metadata) => {
|
|
3
|
+
if (!metadata.windows) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
for (const windowClass of metadata.windows) {
|
|
7
|
+
const windowMetadataValue = Reflect.getMetadata("WindowManager", windowClass);
|
|
8
|
+
if (windowMetadataValue?.hash) {
|
|
9
|
+
container.addProvider(moduleClass, windowMetadataValue.hash, {
|
|
10
|
+
metadata: windowMetadataValue,
|
|
11
|
+
windowClass,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=register-windows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-windows.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-windows.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAC7C,eAAe,EACf,WAAW,CACwB,CAAC;QAEtC,IAAI,mBAAmB,EAAE,IAAI,EAAE,CAAC;YAC9B,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE;gBAC3D,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type TFolderSettings = {
|
|
2
|
+
distRenderer: string;
|
|
3
|
+
distMain: string;
|
|
4
|
+
};
|
|
5
|
+
export type TSettings = {
|
|
6
|
+
baseRestApi: string;
|
|
7
|
+
localhostPort: string;
|
|
8
|
+
folders: TFolderSettings;
|
|
9
|
+
};
|
|
10
|
+
export declare const initSettings: (options: TSettings) => void;
|
|
11
|
+
export declare const getSettings: () => TSettings;
|
|
12
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/settings.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAKF,eAAO,MAAM,YAAY,GAAI,SAAS,SAAS,KAAG,IAEjD,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,SAQ9B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SettingsNotInitializedError } from "../errors/index.js";
|
|
2
|
+
const KEY = "settings";
|
|
3
|
+
const settings = new Map();
|
|
4
|
+
export const initSettings = (options) => {
|
|
5
|
+
settings.set(KEY, options);
|
|
6
|
+
};
|
|
7
|
+
export const getSettings = () => {
|
|
8
|
+
const cachedSettings = settings.get(KEY);
|
|
9
|
+
if (!cachedSettings) {
|
|
10
|
+
throw new SettingsNotInitializedError();
|
|
11
|
+
}
|
|
12
|
+
return cachedSettings;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAajE,MAAM,GAAG,GAAG,UAAmB,CAAC;AAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAkB,EAAQ,EAAE;IACvD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Constructor } from "./types/constructor.js";
|
|
2
|
+
import type { RgModuleMetadata } from "./types/module-metadata.js";
|
|
3
|
+
import type { TProviderToken } from "./types/provider.js";
|
|
4
|
+
export declare class Container {
|
|
5
|
+
private readonly modules;
|
|
6
|
+
private readonly moduleMetadata;
|
|
7
|
+
private readonly instances;
|
|
8
|
+
private readonly resolutionCache;
|
|
9
|
+
addModule(moduleClass: Constructor, metadata: Pick<RgModuleMetadata, "exports" | "providers">): boolean;
|
|
10
|
+
setModuleMetadata(moduleClass: Constructor, metadata: RgModuleMetadata): void;
|
|
11
|
+
hasModule(moduleClass: Constructor): boolean;
|
|
12
|
+
private getCacheKey;
|
|
13
|
+
addProvider(moduleClass: Constructor, provider: TProviderToken, instance?: unknown): void;
|
|
14
|
+
getProvider<T = unknown>(moduleClass: Constructor, token: TProviderToken): T | undefined;
|
|
15
|
+
getModuleExports(moduleClass: Constructor): Set<TProviderToken>;
|
|
16
|
+
getModuleMetadata(moduleClass: Constructor): RgModuleMetadata | undefined;
|
|
17
|
+
registerInstance(token: TProviderToken, instance: unknown): void;
|
|
18
|
+
resolve<T>(moduleClass: Constructor, token: TProviderToken): Promise<T | undefined>;
|
|
19
|
+
private resolveFromImports;
|
|
20
|
+
private instantiateProvider;
|
|
21
|
+
private instantiateFactoryProvider;
|
|
22
|
+
private instantiateClassProvider;
|
|
23
|
+
private instantiateClassConstructor;
|
|
24
|
+
private resolveDependencies;
|
|
25
|
+
private isProviderObject;
|
|
26
|
+
private isFactoryProvider;
|
|
27
|
+
private isClassProvider;
|
|
28
|
+
private isValueProvider;
|
|
29
|
+
private isExistingProvider;
|
|
30
|
+
}
|
|
31
|
+
export declare const container: Container;
|
|
32
|
+
//# sourceMappingURL=container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/@core/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAY7B,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAE9D,SAAS,CACP,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,WAAW,CAAC,GACxD,OAAO;IAYV,iBAAiB,CACf,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,gBAAgB,GACzB,IAAI;IAIP,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAI5C,OAAO,CAAC,WAAW;IAQnB,WAAW,CACT,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,cAAc,EACxB,QAAQ,CAAC,EAAE,OAAO,GACjB,IAAI;IASP,WAAW,CAAC,CAAC,GAAG,OAAO,EACrB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,cAAc,GACpB,CAAC,GAAG,SAAS;IAShB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC;IAK/D,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,GAAG,SAAS;IAIzE,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI1D,OAAO,CAAC,CAAC,EACb,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;YA8CX,kBAAkB;YAyBlB,mBAAmB;YAqCnB,0BAA0B;YAe1B,wBAAwB;YAgBxB,2BAA2B;YAe3B,mBAAmB;IASjC,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,kBAAkB;CAG3B;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
|