electron-buff 1.0.3 → 1.0.4
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 +3 -1
- package/dist/packageHelper/main/index.d.mts +31 -0
- package/dist/packageHelper/main/index.d.ts +31 -0
- package/dist/packageHelper/main/index.js +66 -0
- package/dist/packageHelper/main/index.js.map +1 -0
- package/dist/packageHelper/main/index.mjs +64 -0
- package/dist/packageHelper/main/index.mjs.map +1 -0
- package/dist/packageHelper/preload/index.d.mts +18 -0
- package/dist/packageHelper/preload/index.d.ts +18 -0
- package/dist/packageHelper/preload/index.js +30 -0
- package/dist/packageHelper/preload/index.js.map +1 -0
- package/dist/packageHelper/preload/index.mjs +28 -0
- package/dist/packageHelper/preload/index.mjs.map +1 -0
- package/dist/packageHelper/renderer/index.d.mts +21 -0
- package/dist/packageHelper/renderer/index.d.ts +21 -0
- package/dist/packageHelper/renderer/index.js +8 -0
- package/dist/packageHelper/renderer/index.js.map +1 -0
- package/dist/packageHelper/renderer/index.mjs +6 -0
- package/dist/packageHelper/renderer/index.mjs.map +1 -0
- package/dist/pathHelper/preload/index.d.mts +11 -0
- package/dist/pathHelper/preload/index.d.ts +11 -0
- package/dist/pathHelper/preload/index.js +44 -0
- package/dist/pathHelper/preload/index.js.map +1 -0
- package/dist/pathHelper/preload/index.mjs +42 -0
- package/dist/pathHelper/preload/index.mjs.map +1 -0
- package/dist/pathHelper/renderer/index.d.mts +4 -13
- package/dist/pathHelper/renderer/index.d.ts +4 -13
- package/dist/pathHelper/renderer/index.js +2 -35
- package/dist/pathHelper/renderer/index.js.map +1 -1
- package/dist/pathHelper/renderer/index.mjs +2 -34
- package/dist/pathHelper/renderer/index.mjs.map +1 -1
- package/dist/xpc/preload/index.d.mts +8 -34
- package/dist/xpc/preload/index.d.ts +8 -34
- package/dist/xpc/preload/index.js +49 -57
- package/dist/xpc/preload/index.js.map +1 -1
- package/dist/xpc/preload/index.mjs +50 -58
- package/dist/xpc/preload/index.mjs.map +1 -1
- package/dist/xpc/renderer/index.d.mts +23 -0
- package/dist/xpc/renderer/index.d.ts +23 -0
- package/dist/xpc/renderer/index.js +8 -0
- package/dist/xpc/renderer/index.js.map +1 -0
- package/dist/xpc/renderer/index.mjs +6 -0
- package/dist/xpc/renderer/index.mjs.map +1 -0
- package/package.json +51 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Electron enhancement utilities for electron-vite projects.
|
|
|
6
6
|
|
|
7
7
|
| Module | Description | Documentation |
|
|
8
8
|
|--------|-------------|---------------|
|
|
9
|
-
| **XPC** |
|
|
9
|
+
| **XPC** | **Async/await** style cross-process communication | [English](./doc/xpc.doc.md) \| [中文](./doc/xpc_cn.doc.md) |
|
|
10
10
|
|
|
11
11
|
## Install
|
|
12
12
|
|
|
@@ -17,6 +17,8 @@ yarn add electron-buff
|
|
|
17
17
|
## TODO
|
|
18
18
|
|
|
19
19
|
1. 通过 Proxy 实现 XPC 调用:发送通过调用 class 的 function 实现,监听通过 class 的函数名在实例化过程中自动注册,无需手动调用 `handle`/`send` 并传入字符串句柄,可实现代码自动补全。
|
|
20
|
+
2. 重复监听处理优化:对同一 handleName 的重复注册进行检测与策略处理(覆盖、警告或抛错)。
|
|
21
|
+
3. 多进程广播支持:支持向多个已注册的进程同时广播消息。
|
|
20
22
|
|
|
21
23
|
|
|
22
24
|
## Module Overview
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
type PackageInfo = {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
versionCode: number;
|
|
5
|
+
description: string;
|
|
6
|
+
repository: string;
|
|
7
|
+
author: string;
|
|
8
|
+
license: string;
|
|
9
|
+
homepage: string;
|
|
10
|
+
};
|
|
11
|
+
type PackageHelperApi = {
|
|
12
|
+
getPackageInfo: () => Promise<PackageInfo>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
declare class PackageMainHelper {
|
|
16
|
+
private cached;
|
|
17
|
+
private pickFields;
|
|
18
|
+
/**
|
|
19
|
+
* Read package.json from app.getAppPath(), cache after first read.
|
|
20
|
+
* Returns only the allowed fields.
|
|
21
|
+
*/
|
|
22
|
+
getPackageInfo(): Promise<PackageInfo>;
|
|
23
|
+
/**
|
|
24
|
+
* Register IPC listener so renderer/preload processes can request package info.
|
|
25
|
+
* Call this in the main process during initialization.
|
|
26
|
+
*/
|
|
27
|
+
init(): void;
|
|
28
|
+
}
|
|
29
|
+
declare const packageMainHelper: PackageMainHelper;
|
|
30
|
+
|
|
31
|
+
export { type PackageHelperApi, type PackageInfo, packageMainHelper };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
type PackageInfo = {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
versionCode: number;
|
|
5
|
+
description: string;
|
|
6
|
+
repository: string;
|
|
7
|
+
author: string;
|
|
8
|
+
license: string;
|
|
9
|
+
homepage: string;
|
|
10
|
+
};
|
|
11
|
+
type PackageHelperApi = {
|
|
12
|
+
getPackageInfo: () => Promise<PackageInfo>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
declare class PackageMainHelper {
|
|
16
|
+
private cached;
|
|
17
|
+
private pickFields;
|
|
18
|
+
/**
|
|
19
|
+
* Read package.json from app.getAppPath(), cache after first read.
|
|
20
|
+
* Returns only the allowed fields.
|
|
21
|
+
*/
|
|
22
|
+
getPackageInfo(): Promise<PackageInfo>;
|
|
23
|
+
/**
|
|
24
|
+
* Register IPC listener so renderer/preload processes can request package info.
|
|
25
|
+
* Call this in the main process during initialization.
|
|
26
|
+
*/
|
|
27
|
+
init(): void;
|
|
28
|
+
}
|
|
29
|
+
declare const packageMainHelper: PackageMainHelper;
|
|
30
|
+
|
|
31
|
+
export { type PackageHelperApi, type PackageInfo, packageMainHelper };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var electron = require('electron');
|
|
4
|
+
var path = require('path');
|
|
5
|
+
var promises = require('fs/promises');
|
|
6
|
+
|
|
7
|
+
// src/packageHelper/main/package.helper.ts
|
|
8
|
+
var IPC_GET_PACKAGE_INFO = "__buff_pkg_getPackageInfo__";
|
|
9
|
+
var ALLOWED_FIELDS = [
|
|
10
|
+
"name",
|
|
11
|
+
"version",
|
|
12
|
+
"versionCode",
|
|
13
|
+
"description",
|
|
14
|
+
"repository",
|
|
15
|
+
"author",
|
|
16
|
+
"license",
|
|
17
|
+
"homepage"
|
|
18
|
+
];
|
|
19
|
+
var DEFAULTS = {
|
|
20
|
+
name: "",
|
|
21
|
+
version: "",
|
|
22
|
+
versionCode: 0,
|
|
23
|
+
description: "",
|
|
24
|
+
repository: "",
|
|
25
|
+
author: "",
|
|
26
|
+
license: "",
|
|
27
|
+
homepage: ""
|
|
28
|
+
};
|
|
29
|
+
var PackageMainHelper = class {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.cached = null;
|
|
32
|
+
}
|
|
33
|
+
pickFields(raw) {
|
|
34
|
+
const result = {};
|
|
35
|
+
for (const key of ALLOWED_FIELDS) {
|
|
36
|
+
result[key] = raw[key] ?? DEFAULTS[key];
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Read package.json from app.getAppPath(), cache after first read.
|
|
42
|
+
* Returns only the allowed fields.
|
|
43
|
+
*/
|
|
44
|
+
async getPackageInfo() {
|
|
45
|
+
if (this.cached) return this.cached;
|
|
46
|
+
const appPath = electron.app.getAppPath();
|
|
47
|
+
const packagePath = path.join(appPath, "package.json");
|
|
48
|
+
const raw = JSON.parse(await promises.readFile(packagePath, "utf-8"));
|
|
49
|
+
this.cached = this.pickFields(raw);
|
|
50
|
+
return this.cached;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Register IPC listener so renderer/preload processes can request package info.
|
|
54
|
+
* Call this in the main process during initialization.
|
|
55
|
+
*/
|
|
56
|
+
init() {
|
|
57
|
+
electron.ipcMain.handle(IPC_GET_PACKAGE_INFO, async () => {
|
|
58
|
+
return await this.getPackageInfo();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
var packageMainHelper = new PackageMainHelper();
|
|
63
|
+
|
|
64
|
+
exports.packageMainHelper = packageMainHelper;
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/packageHelper/main/package.helper.ts"],"names":["app","join","readFile","ipcMain"],"mappings":";;;;;;;AAKA,IAAM,oBAAA,GAAuB,6BAAA;AAE7B,IAAM,cAAA,GAAwC;AAAA,EAC5C,MAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,QAAA,GAA2C;AAAA,EAC/C,IAAA,EAAM,EAAA;AAAA,EACN,OAAA,EAAS,EAAA;AAAA,EACT,WAAA,EAAa,CAAA;AAAA,EACb,WAAA,EAAa,EAAA;AAAA,EACb,UAAA,EAAY,EAAA;AAAA,EACZ,MAAA,EAAQ,EAAA;AAAA,EACR,OAAA,EAAS,EAAA;AAAA,EACT,QAAA,EAAU;AACZ,CAAA;AAEA,IAAM,oBAAN,MAAwB;AAAA,EAAxB,WAAA,GAAA;AACE,IAAA,IAAA,CAAQ,MAAA,GAA6B,IAAA;AAAA,EAAA;AAAA,EAE7B,WAAW,GAAA,EAAuC;AACxD,IAAA,MAAM,SAA8B,EAAC;AACrC,IAAA,KAAA,MAAW,OAAO,cAAA,EAAgB;AAChC,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA,IAAK,SAAS,GAAG,CAAA;AAAA,IACxC;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAA,GAAuC;AAC3C,IAAA,IAAI,IAAA,CAAK,MAAA,EAAQ,OAAO,IAAA,CAAK,MAAA;AAE7B,IAAA,MAAM,OAAA,GAAUA,aAAI,UAAA,EAAW;AAC/B,IAAA,MAAM,WAAA,GAAcC,SAAA,CAAK,OAAA,EAAS,cAAc,CAAA;AAChD,IAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,MAAMC,iBAAA,CAAS,WAAA,EAAa,OAAO,CAAC,CAAA;AAC3D,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA;AACjC,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAA,GAAa;AACX,IAAAC,gBAAA,CAAQ,MAAA,CAAO,sBAAsB,YAAY;AAC/C,MAAA,OAAO,MAAM,KAAK,cAAA,EAAe;AAAA,IACnC,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,iBAAA,GAAoB,IAAI,iBAAA","file":"index.js","sourcesContent":["import { app, ipcMain } from 'electron';\nimport { join } from 'path';\nimport { readFile } from 'fs/promises';\nimport type { PackageInfo } from '../shared/packageHelper.type';\n\nconst IPC_GET_PACKAGE_INFO = '__buff_pkg_getPackageInfo__';\n\nconst ALLOWED_FIELDS: (keyof PackageInfo)[] = [\n 'name',\n 'version',\n 'versionCode',\n 'description',\n 'repository',\n 'author',\n 'license',\n 'homepage',\n];\n\nconst DEFAULTS: Record<keyof PackageInfo, any> = {\n name: '',\n version: '',\n versionCode: 0,\n description: '',\n repository: '',\n author: '',\n license: '',\n homepage: '',\n};\n\nclass PackageMainHelper {\n private cached: PackageInfo | null = null;\n\n private pickFields(raw: Record<string, any>): PackageInfo {\n const result: Record<string, any> = {};\n for (const key of ALLOWED_FIELDS) {\n result[key] = raw[key] ?? DEFAULTS[key];\n }\n return result as PackageInfo;\n }\n\n /**\n * Read package.json from app.getAppPath(), cache after first read.\n * Returns only the allowed fields.\n */\n async getPackageInfo(): Promise<PackageInfo> {\n if (this.cached) return this.cached;\n\n const appPath = app.getAppPath();\n const packagePath = join(appPath, 'package.json');\n const raw = JSON.parse(await readFile(packagePath, 'utf-8'));\n this.cached = this.pickFields(raw);\n return this.cached;\n }\n\n /**\n * Register IPC listener so renderer/preload processes can request package info.\n * Call this in the main process during initialization.\n */\n init(): void {\n ipcMain.handle(IPC_GET_PACKAGE_INFO, async () => {\n return await this.getPackageInfo();\n });\n }\n}\n\nexport const packageMainHelper = new PackageMainHelper();\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { app, ipcMain } from 'electron';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { readFile } from 'fs/promises';
|
|
4
|
+
|
|
5
|
+
// src/packageHelper/main/package.helper.ts
|
|
6
|
+
var IPC_GET_PACKAGE_INFO = "__buff_pkg_getPackageInfo__";
|
|
7
|
+
var ALLOWED_FIELDS = [
|
|
8
|
+
"name",
|
|
9
|
+
"version",
|
|
10
|
+
"versionCode",
|
|
11
|
+
"description",
|
|
12
|
+
"repository",
|
|
13
|
+
"author",
|
|
14
|
+
"license",
|
|
15
|
+
"homepage"
|
|
16
|
+
];
|
|
17
|
+
var DEFAULTS = {
|
|
18
|
+
name: "",
|
|
19
|
+
version: "",
|
|
20
|
+
versionCode: 0,
|
|
21
|
+
description: "",
|
|
22
|
+
repository: "",
|
|
23
|
+
author: "",
|
|
24
|
+
license: "",
|
|
25
|
+
homepage: ""
|
|
26
|
+
};
|
|
27
|
+
var PackageMainHelper = class {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.cached = null;
|
|
30
|
+
}
|
|
31
|
+
pickFields(raw) {
|
|
32
|
+
const result = {};
|
|
33
|
+
for (const key of ALLOWED_FIELDS) {
|
|
34
|
+
result[key] = raw[key] ?? DEFAULTS[key];
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Read package.json from app.getAppPath(), cache after first read.
|
|
40
|
+
* Returns only the allowed fields.
|
|
41
|
+
*/
|
|
42
|
+
async getPackageInfo() {
|
|
43
|
+
if (this.cached) return this.cached;
|
|
44
|
+
const appPath = app.getAppPath();
|
|
45
|
+
const packagePath = join(appPath, "package.json");
|
|
46
|
+
const raw = JSON.parse(await readFile(packagePath, "utf-8"));
|
|
47
|
+
this.cached = this.pickFields(raw);
|
|
48
|
+
return this.cached;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Register IPC listener so renderer/preload processes can request package info.
|
|
52
|
+
* Call this in the main process during initialization.
|
|
53
|
+
*/
|
|
54
|
+
init() {
|
|
55
|
+
ipcMain.handle(IPC_GET_PACKAGE_INFO, async () => {
|
|
56
|
+
return await this.getPackageInfo();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
var packageMainHelper = new PackageMainHelper();
|
|
61
|
+
|
|
62
|
+
export { packageMainHelper };
|
|
63
|
+
//# sourceMappingURL=index.mjs.map
|
|
64
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/packageHelper/main/package.helper.ts"],"names":[],"mappings":";;;;;AAKA,IAAM,oBAAA,GAAuB,6BAAA;AAE7B,IAAM,cAAA,GAAwC;AAAA,EAC5C,MAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,QAAA,GAA2C;AAAA,EAC/C,IAAA,EAAM,EAAA;AAAA,EACN,OAAA,EAAS,EAAA;AAAA,EACT,WAAA,EAAa,CAAA;AAAA,EACb,WAAA,EAAa,EAAA;AAAA,EACb,UAAA,EAAY,EAAA;AAAA,EACZ,MAAA,EAAQ,EAAA;AAAA,EACR,OAAA,EAAS,EAAA;AAAA,EACT,QAAA,EAAU;AACZ,CAAA;AAEA,IAAM,oBAAN,MAAwB;AAAA,EAAxB,WAAA,GAAA;AACE,IAAA,IAAA,CAAQ,MAAA,GAA6B,IAAA;AAAA,EAAA;AAAA,EAE7B,WAAW,GAAA,EAAuC;AACxD,IAAA,MAAM,SAA8B,EAAC;AACrC,IAAA,KAAA,MAAW,OAAO,cAAA,EAAgB;AAChC,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA,IAAK,SAAS,GAAG,CAAA;AAAA,IACxC;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAA,GAAuC;AAC3C,IAAA,IAAI,IAAA,CAAK,MAAA,EAAQ,OAAO,IAAA,CAAK,MAAA;AAE7B,IAAA,MAAM,OAAA,GAAU,IAAI,UAAA,EAAW;AAC/B,IAAA,MAAM,WAAA,GAAc,IAAA,CAAK,OAAA,EAAS,cAAc,CAAA;AAChD,IAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,MAAM,QAAA,CAAS,WAAA,EAAa,OAAO,CAAC,CAAA;AAC3D,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA;AACjC,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAA,GAAa;AACX,IAAA,OAAA,CAAQ,MAAA,CAAO,sBAAsB,YAAY;AAC/C,MAAA,OAAO,MAAM,KAAK,cAAA,EAAe;AAAA,IACnC,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,iBAAA,GAAoB,IAAI,iBAAA","file":"index.mjs","sourcesContent":["import { app, ipcMain } from 'electron';\nimport { join } from 'path';\nimport { readFile } from 'fs/promises';\nimport type { PackageInfo } from '../shared/packageHelper.type';\n\nconst IPC_GET_PACKAGE_INFO = '__buff_pkg_getPackageInfo__';\n\nconst ALLOWED_FIELDS: (keyof PackageInfo)[] = [\n 'name',\n 'version',\n 'versionCode',\n 'description',\n 'repository',\n 'author',\n 'license',\n 'homepage',\n];\n\nconst DEFAULTS: Record<keyof PackageInfo, any> = {\n name: '',\n version: '',\n versionCode: 0,\n description: '',\n repository: '',\n author: '',\n license: '',\n homepage: '',\n};\n\nclass PackageMainHelper {\n private cached: PackageInfo | null = null;\n\n private pickFields(raw: Record<string, any>): PackageInfo {\n const result: Record<string, any> = {};\n for (const key of ALLOWED_FIELDS) {\n result[key] = raw[key] ?? DEFAULTS[key];\n }\n return result as PackageInfo;\n }\n\n /**\n * Read package.json from app.getAppPath(), cache after first read.\n * Returns only the allowed fields.\n */\n async getPackageInfo(): Promise<PackageInfo> {\n if (this.cached) return this.cached;\n\n const appPath = app.getAppPath();\n const packagePath = join(appPath, 'package.json');\n const raw = JSON.parse(await readFile(packagePath, 'utf-8'));\n this.cached = this.pickFields(raw);\n return this.cached;\n }\n\n /**\n * Register IPC listener so renderer/preload processes can request package info.\n * Call this in the main process during initialization.\n */\n init(): void {\n ipcMain.handle(IPC_GET_PACKAGE_INFO, async () => {\n return await this.getPackageInfo();\n });\n }\n}\n\nexport const packageMainHelper = new PackageMainHelper();\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type PackageInfo = {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
versionCode: number;
|
|
5
|
+
description: string;
|
|
6
|
+
repository: string;
|
|
7
|
+
author: string;
|
|
8
|
+
license: string;
|
|
9
|
+
homepage: string;
|
|
10
|
+
};
|
|
11
|
+
type PackageHelperApi = {
|
|
12
|
+
getPackageInfo: () => Promise<PackageInfo>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/** The packageHelper API instance, usable in preload code */
|
|
16
|
+
declare const packageHelper: PackageHelperApi;
|
|
17
|
+
|
|
18
|
+
export { type PackageHelperApi, type PackageInfo, packageHelper };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type PackageInfo = {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
versionCode: number;
|
|
5
|
+
description: string;
|
|
6
|
+
repository: string;
|
|
7
|
+
author: string;
|
|
8
|
+
license: string;
|
|
9
|
+
homepage: string;
|
|
10
|
+
};
|
|
11
|
+
type PackageHelperApi = {
|
|
12
|
+
getPackageInfo: () => Promise<PackageInfo>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/** The packageHelper API instance, usable in preload code */
|
|
16
|
+
declare const packageHelper: PackageHelperApi;
|
|
17
|
+
|
|
18
|
+
export { type PackageHelperApi, type PackageInfo, packageHelper };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var electron = require('electron');
|
|
4
|
+
|
|
5
|
+
// src/packageHelper/preload/packagePreload.helper.ts
|
|
6
|
+
var IPC_GET_PACKAGE_INFO = "__buff_pkg_getPackageInfo__";
|
|
7
|
+
var getPackageInfo = () => {
|
|
8
|
+
return electron.ipcRenderer.invoke(IPC_GET_PACKAGE_INFO);
|
|
9
|
+
};
|
|
10
|
+
var createPackageHelperApi = () => {
|
|
11
|
+
return {
|
|
12
|
+
getPackageInfo: () => {
|
|
13
|
+
return getPackageInfo();
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
var packageHelper = createPackageHelperApi();
|
|
18
|
+
if (process.contextIsolated) {
|
|
19
|
+
try {
|
|
20
|
+
electron.contextBridge.exposeInMainWorld("packageHelper", packageHelper);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error("[packagePreload] exposeInMainWorld failed:", error);
|
|
23
|
+
}
|
|
24
|
+
} else {
|
|
25
|
+
globalThis.packageHelper = packageHelper;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exports.packageHelper = packageHelper;
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/packageHelper/preload/packagePreload.helper.ts"],"names":["ipcRenderer","contextBridge"],"mappings":";;;;;AAGA,IAAM,oBAAA,GAAuB,6BAAA;AAG7B,IAAM,iBAAiB,MAA4B;AACjD,EAAA,OAAOA,oBAAA,CAAY,OAAO,oBAAoB,CAAA;AAChD,CAAA;AAKA,IAAM,yBAAyB,MAAwB;AACrD,EAAA,OAAO;AAAA,IACL,gBAAgB,MAA4B;AAC1C,MAAA,OAAO,cAAA,EAAe;AAAA,IACxB;AAAA,GACF;AACF,CAAA;AAGO,IAAM,gBAAkC,sBAAA;AAG/C,IAAI,QAAQ,eAAA,EAAiB;AAC3B,EAAA,IAAI;AACF,IAAAC,sBAAA,CAAc,iBAAA,CAAkB,iBAAiB,aAAa,CAAA;AAAA,EAChE,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,8CAA8C,KAAK,CAAA;AAAA,EACnE;AACF,CAAA,MAAO;AACL,EAAC,WAAmB,aAAA,GAAgB,aAAA;AACtC","file":"index.js","sourcesContent":["import { contextBridge, ipcRenderer } from 'electron';\nimport type { PackageInfo, PackageHelperApi } from '../shared/packageHelper.type';\n\nconst IPC_GET_PACKAGE_INFO = '__buff_pkg_getPackageInfo__';\n\n/** Get package.json info (filtered fields only) */\nconst getPackageInfo = (): Promise<PackageInfo> => {\n return ipcRenderer.invoke(IPC_GET_PACKAGE_INFO);\n};\n\n/**\n * Returns a contextBridge-safe object for exposeInMainWorld.\n */\nconst createPackageHelperApi = (): PackageHelperApi => {\n return {\n getPackageInfo: (): Promise<PackageInfo> => {\n return getPackageInfo();\n },\n };\n};\n\n/** The packageHelper API instance, usable in preload code */\nexport const packageHelper: PackageHelperApi = createPackageHelperApi();\n\n// Auto-expose packageHelper to window on import\nif (process.contextIsolated) {\n try {\n contextBridge.exposeInMainWorld('packageHelper', packageHelper);\n } catch (error) {\n console.error('[packagePreload] exposeInMainWorld failed:', error);\n }\n} else {\n (globalThis as any).packageHelper = packageHelper;\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { contextBridge, ipcRenderer } from 'electron';
|
|
2
|
+
|
|
3
|
+
// src/packageHelper/preload/packagePreload.helper.ts
|
|
4
|
+
var IPC_GET_PACKAGE_INFO = "__buff_pkg_getPackageInfo__";
|
|
5
|
+
var getPackageInfo = () => {
|
|
6
|
+
return ipcRenderer.invoke(IPC_GET_PACKAGE_INFO);
|
|
7
|
+
};
|
|
8
|
+
var createPackageHelperApi = () => {
|
|
9
|
+
return {
|
|
10
|
+
getPackageInfo: () => {
|
|
11
|
+
return getPackageInfo();
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
var packageHelper = createPackageHelperApi();
|
|
16
|
+
if (process.contextIsolated) {
|
|
17
|
+
try {
|
|
18
|
+
contextBridge.exposeInMainWorld("packageHelper", packageHelper);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
console.error("[packagePreload] exposeInMainWorld failed:", error);
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
globalThis.packageHelper = packageHelper;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { packageHelper };
|
|
27
|
+
//# sourceMappingURL=index.mjs.map
|
|
28
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/packageHelper/preload/packagePreload.helper.ts"],"names":[],"mappings":";;;AAGA,IAAM,oBAAA,GAAuB,6BAAA;AAG7B,IAAM,iBAAiB,MAA4B;AACjD,EAAA,OAAO,WAAA,CAAY,OAAO,oBAAoB,CAAA;AAChD,CAAA;AAKA,IAAM,yBAAyB,MAAwB;AACrD,EAAA,OAAO;AAAA,IACL,gBAAgB,MAA4B;AAC1C,MAAA,OAAO,cAAA,EAAe;AAAA,IACxB;AAAA,GACF;AACF,CAAA;AAGO,IAAM,gBAAkC,sBAAA;AAG/C,IAAI,QAAQ,eAAA,EAAiB;AAC3B,EAAA,IAAI;AACF,IAAA,aAAA,CAAc,iBAAA,CAAkB,iBAAiB,aAAa,CAAA;AAAA,EAChE,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,8CAA8C,KAAK,CAAA;AAAA,EACnE;AACF,CAAA,MAAO;AACL,EAAC,WAAmB,aAAA,GAAgB,aAAA;AACtC","file":"index.mjs","sourcesContent":["import { contextBridge, ipcRenderer } from 'electron';\nimport type { PackageInfo, PackageHelperApi } from '../shared/packageHelper.type';\n\nconst IPC_GET_PACKAGE_INFO = '__buff_pkg_getPackageInfo__';\n\n/** Get package.json info (filtered fields only) */\nconst getPackageInfo = (): Promise<PackageInfo> => {\n return ipcRenderer.invoke(IPC_GET_PACKAGE_INFO);\n};\n\n/**\n * Returns a contextBridge-safe object for exposeInMainWorld.\n */\nconst createPackageHelperApi = (): PackageHelperApi => {\n return {\n getPackageInfo: (): Promise<PackageInfo> => {\n return getPackageInfo();\n },\n };\n};\n\n/** The packageHelper API instance, usable in preload code */\nexport const packageHelper: PackageHelperApi = createPackageHelperApi();\n\n// Auto-expose packageHelper to window on import\nif (process.contextIsolated) {\n try {\n contextBridge.exposeInMainWorld('packageHelper', packageHelper);\n } catch (error) {\n console.error('[packagePreload] exposeInMainWorld failed:', error);\n }\n} else {\n (globalThis as any).packageHelper = packageHelper;\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type PackageInfo = {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
versionCode: number;
|
|
5
|
+
description: string;
|
|
6
|
+
repository: string;
|
|
7
|
+
author: string;
|
|
8
|
+
license: string;
|
|
9
|
+
homepage: string;
|
|
10
|
+
};
|
|
11
|
+
type PackageHelperApi = {
|
|
12
|
+
getPackageInfo: () => Promise<PackageInfo>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Direct reference to window.packageHelper exposed by the preload script.
|
|
17
|
+
* Import this in renderer (browser) code to use packageHelper without manual window casting.
|
|
18
|
+
*/
|
|
19
|
+
declare const packageHelper: PackageHelperApi;
|
|
20
|
+
|
|
21
|
+
export { type PackageHelperApi, type PackageInfo, packageHelper };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type PackageInfo = {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
versionCode: number;
|
|
5
|
+
description: string;
|
|
6
|
+
repository: string;
|
|
7
|
+
author: string;
|
|
8
|
+
license: string;
|
|
9
|
+
homepage: string;
|
|
10
|
+
};
|
|
11
|
+
type PackageHelperApi = {
|
|
12
|
+
getPackageInfo: () => Promise<PackageInfo>;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Direct reference to window.packageHelper exposed by the preload script.
|
|
17
|
+
* Import this in renderer (browser) code to use packageHelper without manual window casting.
|
|
18
|
+
*/
|
|
19
|
+
declare const packageHelper: PackageHelperApi;
|
|
20
|
+
|
|
21
|
+
export { type PackageHelperApi, type PackageInfo, packageHelper };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/packageHelper/renderer/packageRenderer.helper.ts"],"names":[],"mappings":";;;AAMO,IAAM,gBAAiB,UAAA,CAAmB","file":"index.js","sourcesContent":["import type { PackageHelperApi } from '../shared/packageHelper.type';\n\n/**\n * Direct reference to window.packageHelper exposed by the preload script.\n * Import this in renderer (browser) code to use packageHelper without manual window casting.\n */\nexport const packageHelper = (globalThis as any).packageHelper as PackageHelperApi;\n\nexport type { PackageInfo, PackageHelperApi } from '../shared/packageHelper.type';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/packageHelper/renderer/packageRenderer.helper.ts"],"names":[],"mappings":";AAMO,IAAM,gBAAiB,UAAA,CAAmB","file":"index.mjs","sourcesContent":["import type { PackageHelperApi } from '../shared/packageHelper.type';\n\n/**\n * Direct reference to window.packageHelper exposed by the preload script.\n * Import this in renderer (browser) code to use packageHelper without manual window casting.\n */\nexport const packageHelper = (globalThis as any).packageHelper as PackageHelperApi;\n\nexport type { PackageInfo, PackageHelperApi } from '../shared/packageHelper.type';\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type PathName = 'home' | 'appData' | 'userData' | 'sessionData' | 'temp' | 'exe' | 'module' | 'desktop' | 'documents' | 'downloads' | 'music' | 'pictures' | 'videos' | 'recent' | 'logs' | 'crashDumps';
|
|
2
|
+
type PathHelperApi = {
|
|
3
|
+
getAppPath: () => Promise<string>;
|
|
4
|
+
getPath: (name: PathName) => Promise<string>;
|
|
5
|
+
getUserDataPath: () => Promise<string>;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
/** The pathHelper API instance, usable in preload code */
|
|
9
|
+
declare const pathHelper: PathHelperApi;
|
|
10
|
+
|
|
11
|
+
export { type PathHelperApi, type PathName, pathHelper };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type PathName = 'home' | 'appData' | 'userData' | 'sessionData' | 'temp' | 'exe' | 'module' | 'desktop' | 'documents' | 'downloads' | 'music' | 'pictures' | 'videos' | 'recent' | 'logs' | 'crashDumps';
|
|
2
|
+
type PathHelperApi = {
|
|
3
|
+
getAppPath: () => Promise<string>;
|
|
4
|
+
getPath: (name: PathName) => Promise<string>;
|
|
5
|
+
getUserDataPath: () => Promise<string>;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
/** The pathHelper API instance, usable in preload code */
|
|
9
|
+
declare const pathHelper: PathHelperApi;
|
|
10
|
+
|
|
11
|
+
export { type PathHelperApi, type PathName, pathHelper };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var electron = require('electron');
|
|
4
|
+
|
|
5
|
+
// src/pathHelper/preload/pathPreload.helper.ts
|
|
6
|
+
var IPC_GET_APP_PATH = "__buff_path_getAppPath__";
|
|
7
|
+
var IPC_GET_PATH = "__buff_path_getPath__";
|
|
8
|
+
var IPC_GET_USER_DATA_PATH = "__buff_path_getUserDataPath__";
|
|
9
|
+
var getAppPath = () => {
|
|
10
|
+
return electron.ipcRenderer.invoke(IPC_GET_APP_PATH);
|
|
11
|
+
};
|
|
12
|
+
var getPath = (name) => {
|
|
13
|
+
return electron.ipcRenderer.invoke(IPC_GET_PATH, name);
|
|
14
|
+
};
|
|
15
|
+
var getUserDataPath = () => {
|
|
16
|
+
return electron.ipcRenderer.invoke(IPC_GET_USER_DATA_PATH);
|
|
17
|
+
};
|
|
18
|
+
var createPathHelperApi = () => {
|
|
19
|
+
return {
|
|
20
|
+
getAppPath: () => {
|
|
21
|
+
return getAppPath();
|
|
22
|
+
},
|
|
23
|
+
getPath: (name) => {
|
|
24
|
+
return getPath(name);
|
|
25
|
+
},
|
|
26
|
+
getUserDataPath: () => {
|
|
27
|
+
return getUserDataPath();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
var pathHelper = createPathHelperApi();
|
|
32
|
+
if (process.contextIsolated) {
|
|
33
|
+
try {
|
|
34
|
+
electron.contextBridge.exposeInMainWorld("pathHelper", pathHelper);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
console.error("[pathPreload] exposeInMainWorld failed:", error);
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
globalThis.pathHelper = pathHelper;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
exports.pathHelper = pathHelper;
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/pathHelper/preload/pathPreload.helper.ts"],"names":["ipcRenderer","contextBridge"],"mappings":";;;;;AAGA,IAAM,gBAAA,GAAmB,0BAAA;AACzB,IAAM,YAAA,GAAe,uBAAA;AACrB,IAAM,sBAAA,GAAyB,+BAAA;AAG/B,IAAM,aAAa,MAAuB;AACxC,EAAA,OAAOA,oBAAA,CAAY,OAAO,gBAAgB,CAAA;AAC5C,CAAA;AAGA,IAAM,OAAA,GAAU,CAAC,IAAA,KAAoC;AACnD,EAAA,OAAOA,oBAAA,CAAY,MAAA,CAAO,YAAA,EAAc,IAAI,CAAA;AAC9C,CAAA;AAGA,IAAM,kBAAkB,MAAuB;AAC7C,EAAA,OAAOA,oBAAA,CAAY,OAAO,sBAAsB,CAAA;AAClD,CAAA;AAKA,IAAM,sBAAsB,MAAqB;AAC/C,EAAA,OAAO;AAAA,IACL,YAAY,MAAuB;AACjC,MAAA,OAAO,UAAA,EAAW;AAAA,IACpB,CAAA;AAAA,IACA,OAAA,EAAS,CAAC,IAAA,KAAoC;AAC5C,MAAA,OAAO,QAAQ,IAAI,CAAA;AAAA,IACrB,CAAA;AAAA,IACA,iBAAiB,MAAuB;AACtC,MAAA,OAAO,eAAA,EAAgB;AAAA,IACzB;AAAA,GACF;AACF,CAAA;AAGO,IAAM,aAA4B,mBAAA;AAGzC,IAAI,QAAQ,eAAA,EAAiB;AAC3B,EAAA,IAAI;AACF,IAAAC,sBAAA,CAAc,iBAAA,CAAkB,cAAc,UAAU,CAAA;AAAA,EAC1D,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,2CAA2C,KAAK,CAAA;AAAA,EAChE;AACF,CAAA,MAAO;AACL,EAAC,WAAmB,UAAA,GAAa,UAAA;AACnC","file":"index.js","sourcesContent":["import { contextBridge, ipcRenderer } from 'electron';\nimport type { PathName, PathHelperApi } from '../shared/pathHelper.type';\n\nconst IPC_GET_APP_PATH = '__buff_path_getAppPath__';\nconst IPC_GET_PATH = '__buff_path_getPath__';\nconst IPC_GET_USER_DATA_PATH = '__buff_path_getUserDataPath__';\n\n/** Get the app installation path */\nconst getAppPath = (): Promise<string> => {\n return ipcRenderer.invoke(IPC_GET_APP_PATH);\n};\n\n/** Get a special directory or file path by name */\nconst getPath = (name: PathName): Promise<string> => {\n return ipcRenderer.invoke(IPC_GET_PATH, name);\n};\n\n/** Get the user data path */\nconst getUserDataPath = (): Promise<string> => {\n return ipcRenderer.invoke(IPC_GET_USER_DATA_PATH);\n};\n\n/**\n * Returns a contextBridge-safe object for exposeInMainWorld.\n */\nconst createPathHelperApi = (): PathHelperApi => {\n return {\n getAppPath: (): Promise<string> => {\n return getAppPath();\n },\n getPath: (name: PathName): Promise<string> => {\n return getPath(name);\n },\n getUserDataPath: (): Promise<string> => {\n return getUserDataPath();\n },\n };\n};\n\n/** The pathHelper API instance, usable in preload code */\nexport const pathHelper: PathHelperApi = createPathHelperApi();\n\n// Auto-expose pathHelper to window on import\nif (process.contextIsolated) {\n try {\n contextBridge.exposeInMainWorld('pathHelper', pathHelper);\n } catch (error) {\n console.error('[pathPreload] exposeInMainWorld failed:', error);\n }\n} else {\n (globalThis as any).pathHelper = pathHelper;\n}\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { contextBridge, ipcRenderer } from 'electron';
|
|
2
|
+
|
|
3
|
+
// src/pathHelper/preload/pathPreload.helper.ts
|
|
4
|
+
var IPC_GET_APP_PATH = "__buff_path_getAppPath__";
|
|
5
|
+
var IPC_GET_PATH = "__buff_path_getPath__";
|
|
6
|
+
var IPC_GET_USER_DATA_PATH = "__buff_path_getUserDataPath__";
|
|
7
|
+
var getAppPath = () => {
|
|
8
|
+
return ipcRenderer.invoke(IPC_GET_APP_PATH);
|
|
9
|
+
};
|
|
10
|
+
var getPath = (name) => {
|
|
11
|
+
return ipcRenderer.invoke(IPC_GET_PATH, name);
|
|
12
|
+
};
|
|
13
|
+
var getUserDataPath = () => {
|
|
14
|
+
return ipcRenderer.invoke(IPC_GET_USER_DATA_PATH);
|
|
15
|
+
};
|
|
16
|
+
var createPathHelperApi = () => {
|
|
17
|
+
return {
|
|
18
|
+
getAppPath: () => {
|
|
19
|
+
return getAppPath();
|
|
20
|
+
},
|
|
21
|
+
getPath: (name) => {
|
|
22
|
+
return getPath(name);
|
|
23
|
+
},
|
|
24
|
+
getUserDataPath: () => {
|
|
25
|
+
return getUserDataPath();
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
var pathHelper = createPathHelperApi();
|
|
30
|
+
if (process.contextIsolated) {
|
|
31
|
+
try {
|
|
32
|
+
contextBridge.exposeInMainWorld("pathHelper", pathHelper);
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.error("[pathPreload] exposeInMainWorld failed:", error);
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
globalThis.pathHelper = pathHelper;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { pathHelper };
|
|
41
|
+
//# sourceMappingURL=index.mjs.map
|
|
42
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/pathHelper/preload/pathPreload.helper.ts"],"names":[],"mappings":";;;AAGA,IAAM,gBAAA,GAAmB,0BAAA;AACzB,IAAM,YAAA,GAAe,uBAAA;AACrB,IAAM,sBAAA,GAAyB,+BAAA;AAG/B,IAAM,aAAa,MAAuB;AACxC,EAAA,OAAO,WAAA,CAAY,OAAO,gBAAgB,CAAA;AAC5C,CAAA;AAGA,IAAM,OAAA,GAAU,CAAC,IAAA,KAAoC;AACnD,EAAA,OAAO,WAAA,CAAY,MAAA,CAAO,YAAA,EAAc,IAAI,CAAA;AAC9C,CAAA;AAGA,IAAM,kBAAkB,MAAuB;AAC7C,EAAA,OAAO,WAAA,CAAY,OAAO,sBAAsB,CAAA;AAClD,CAAA;AAKA,IAAM,sBAAsB,MAAqB;AAC/C,EAAA,OAAO;AAAA,IACL,YAAY,MAAuB;AACjC,MAAA,OAAO,UAAA,EAAW;AAAA,IACpB,CAAA;AAAA,IACA,OAAA,EAAS,CAAC,IAAA,KAAoC;AAC5C,MAAA,OAAO,QAAQ,IAAI,CAAA;AAAA,IACrB,CAAA;AAAA,IACA,iBAAiB,MAAuB;AACtC,MAAA,OAAO,eAAA,EAAgB;AAAA,IACzB;AAAA,GACF;AACF,CAAA;AAGO,IAAM,aAA4B,mBAAA;AAGzC,IAAI,QAAQ,eAAA,EAAiB;AAC3B,EAAA,IAAI;AACF,IAAA,aAAA,CAAc,iBAAA,CAAkB,cAAc,UAAU,CAAA;AAAA,EAC1D,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,2CAA2C,KAAK,CAAA;AAAA,EAChE;AACF,CAAA,MAAO;AACL,EAAC,WAAmB,UAAA,GAAa,UAAA;AACnC","file":"index.mjs","sourcesContent":["import { contextBridge, ipcRenderer } from 'electron';\nimport type { PathName, PathHelperApi } from '../shared/pathHelper.type';\n\nconst IPC_GET_APP_PATH = '__buff_path_getAppPath__';\nconst IPC_GET_PATH = '__buff_path_getPath__';\nconst IPC_GET_USER_DATA_PATH = '__buff_path_getUserDataPath__';\n\n/** Get the app installation path */\nconst getAppPath = (): Promise<string> => {\n return ipcRenderer.invoke(IPC_GET_APP_PATH);\n};\n\n/** Get a special directory or file path by name */\nconst getPath = (name: PathName): Promise<string> => {\n return ipcRenderer.invoke(IPC_GET_PATH, name);\n};\n\n/** Get the user data path */\nconst getUserDataPath = (): Promise<string> => {\n return ipcRenderer.invoke(IPC_GET_USER_DATA_PATH);\n};\n\n/**\n * Returns a contextBridge-safe object for exposeInMainWorld.\n */\nconst createPathHelperApi = (): PathHelperApi => {\n return {\n getAppPath: (): Promise<string> => {\n return getAppPath();\n },\n getPath: (name: PathName): Promise<string> => {\n return getPath(name);\n },\n getUserDataPath: (): Promise<string> => {\n return getUserDataPath();\n },\n };\n};\n\n/** The pathHelper API instance, usable in preload code */\nexport const pathHelper: PathHelperApi = createPathHelperApi();\n\n// Auto-expose pathHelper to window on import\nif (process.contextIsolated) {\n try {\n contextBridge.exposeInMainWorld('pathHelper', pathHelper);\n } catch (error) {\n console.error('[pathPreload] exposeInMainWorld failed:', error);\n }\n} else {\n (globalThis as any).pathHelper = pathHelper;\n}\n"]}
|
|
@@ -5,19 +5,10 @@ type PathHelperApi = {
|
|
|
5
5
|
getUserDataPath: () => Promise<string>;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
declare class PathRendererHelper {
|
|
9
|
-
/** Get the app installation path */
|
|
10
|
-
getAppPath(): Promise<string>;
|
|
11
|
-
/** Get a special directory or file path by name */
|
|
12
|
-
getPath(name: PathName): Promise<string>;
|
|
13
|
-
/** Get the user data path (e.g. Application Support on macOS, Roaming on Windows) */
|
|
14
|
-
getUserDataPath(): Promise<string>;
|
|
15
|
-
}
|
|
16
|
-
declare const pathRendererHelper: PathRendererHelper;
|
|
17
8
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
9
|
+
* Direct reference to window.pathHelper exposed by the preload script.
|
|
10
|
+
* Import this in renderer (browser) code to use pathHelper without manual window casting.
|
|
20
11
|
*/
|
|
21
|
-
declare const
|
|
12
|
+
declare const pathHelper: PathHelperApi;
|
|
22
13
|
|
|
23
|
-
export { type PathHelperApi, type PathName,
|
|
14
|
+
export { type PathHelperApi, type PathName, pathHelper };
|
|
@@ -5,19 +5,10 @@ type PathHelperApi = {
|
|
|
5
5
|
getUserDataPath: () => Promise<string>;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
declare class PathRendererHelper {
|
|
9
|
-
/** Get the app installation path */
|
|
10
|
-
getAppPath(): Promise<string>;
|
|
11
|
-
/** Get a special directory or file path by name */
|
|
12
|
-
getPath(name: PathName): Promise<string>;
|
|
13
|
-
/** Get the user data path (e.g. Application Support on macOS, Roaming on Windows) */
|
|
14
|
-
getUserDataPath(): Promise<string>;
|
|
15
|
-
}
|
|
16
|
-
declare const pathRendererHelper: PathRendererHelper;
|
|
17
8
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
9
|
+
* Direct reference to window.pathHelper exposed by the preload script.
|
|
10
|
+
* Import this in renderer (browser) code to use pathHelper without manual window casting.
|
|
20
11
|
*/
|
|
21
|
-
declare const
|
|
12
|
+
declare const pathHelper: PathHelperApi;
|
|
22
13
|
|
|
23
|
-
export { type PathHelperApi, type PathName,
|
|
14
|
+
export { type PathHelperApi, type PathName, pathHelper };
|
|
@@ -1,41 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var electron = require('electron');
|
|
4
|
-
|
|
5
3
|
// src/pathHelper/renderer/pathRenderer.helper.ts
|
|
6
|
-
var
|
|
7
|
-
var IPC_GET_PATH = "__buff_path_getPath__";
|
|
8
|
-
var IPC_GET_USER_DATA_PATH = "__buff_path_getUserDataPath__";
|
|
9
|
-
var PathRendererHelper = class {
|
|
10
|
-
/** Get the app installation path */
|
|
11
|
-
async getAppPath() {
|
|
12
|
-
return await electron.ipcRenderer.invoke(IPC_GET_APP_PATH);
|
|
13
|
-
}
|
|
14
|
-
/** Get a special directory or file path by name */
|
|
15
|
-
async getPath(name) {
|
|
16
|
-
return await electron.ipcRenderer.invoke(IPC_GET_PATH, name);
|
|
17
|
-
}
|
|
18
|
-
/** Get the user data path (e.g. Application Support on macOS, Roaming on Windows) */
|
|
19
|
-
async getUserDataPath() {
|
|
20
|
-
return await electron.ipcRenderer.invoke(IPC_GET_USER_DATA_PATH);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
var pathRendererHelper = new PathRendererHelper();
|
|
24
|
-
var exposePathHelper = () => {
|
|
25
|
-
return {
|
|
26
|
-
getAppPath: () => {
|
|
27
|
-
return pathRendererHelper.getAppPath();
|
|
28
|
-
},
|
|
29
|
-
getPath: (name) => {
|
|
30
|
-
return pathRendererHelper.getPath(name);
|
|
31
|
-
},
|
|
32
|
-
getUserDataPath: () => {
|
|
33
|
-
return pathRendererHelper.getUserDataPath();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
};
|
|
4
|
+
var pathHelper = globalThis.pathHelper;
|
|
37
5
|
|
|
38
|
-
exports.
|
|
39
|
-
exports.pathRendererHelper = pathRendererHelper;
|
|
6
|
+
exports.pathHelper = pathHelper;
|
|
40
7
|
//# sourceMappingURL=index.js.map
|
|
41
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/pathHelper/renderer/pathRenderer.helper.ts"],"names":[
|
|
1
|
+
{"version":3,"sources":["../../../src/pathHelper/renderer/pathRenderer.helper.ts"],"names":[],"mappings":";;;AAMO,IAAM,aAAc,UAAA,CAAmB","file":"index.js","sourcesContent":["import type { PathHelperApi } from '../shared/pathHelper.type';\n\n/**\n * Direct reference to window.pathHelper exposed by the preload script.\n * Import this in renderer (browser) code to use pathHelper without manual window casting.\n */\nexport const pathHelper = (globalThis as any).pathHelper as PathHelperApi;\n\nexport type { PathName, PathHelperApi } from '../shared/pathHelper.type';\n"]}
|