@mongodb-js/compass-utils 0.5.2 → 0.5.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/dist/.esm-wrapper.mjs +0 -3
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/ipc.d.ts +0 -11
- package/dist/ipc.d.ts.map +0 -1
- package/dist/ipc.js +0 -116
- package/dist/ipc.js.map +0 -1
package/dist/.esm-wrapper.mjs
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import mod from "./index.js";
|
|
2
2
|
|
|
3
3
|
export default mod;
|
|
4
|
-
export const broadcast = mod.broadcast;
|
|
5
4
|
export const cancellableWait = mod.cancellableWait;
|
|
6
5
|
export const createCancelError = mod.createCancelError;
|
|
7
6
|
export const getAppName = mod.getAppName;
|
|
8
7
|
export const getStoragePath = mod.getStoragePath;
|
|
9
|
-
export const ipcExpose = mod.ipcExpose;
|
|
10
|
-
export const ipcInvoke = mod.ipcInvoke;
|
|
11
8
|
export const isCancelError = mod.isCancelError;
|
|
12
9
|
export const promisifyAmpersandMethod = mod.promisifyAmpersandMethod;
|
|
13
10
|
export const raceWithAbort = mod.raceWithAbort;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { AmpersandMethodOptions, promisifyAmpersandMethod, } from './promisify-ampersand-method';
|
|
2
2
|
export { getAppName, getStoragePath } from './electron';
|
|
3
3
|
export { raceWithAbort, cancellableWait, createCancelError, isCancelError, throwIfAborted, } from './cancellable-promise';
|
|
4
|
-
export { broadcast, ipcExpose, ipcInvoke } from './ipc';
|
|
5
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.throwIfAborted = exports.isCancelError = exports.createCancelError = exports.cancellableWait = exports.raceWithAbort = exports.getStoragePath = exports.getAppName = exports.promisifyAmpersandMethod = void 0;
|
|
4
4
|
var promisify_ampersand_method_1 = require("./promisify-ampersand-method");
|
|
5
5
|
Object.defineProperty(exports, "promisifyAmpersandMethod", { enumerable: true, get: function () { return promisify_ampersand_method_1.promisifyAmpersandMethod; } });
|
|
6
6
|
var electron_1 = require("./electron");
|
|
@@ -12,8 +12,4 @@ Object.defineProperty(exports, "cancellableWait", { enumerable: true, get: funct
|
|
|
12
12
|
Object.defineProperty(exports, "createCancelError", { enumerable: true, get: function () { return cancellable_promise_1.createCancelError; } });
|
|
13
13
|
Object.defineProperty(exports, "isCancelError", { enumerable: true, get: function () { return cancellable_promise_1.isCancelError; } });
|
|
14
14
|
Object.defineProperty(exports, "throwIfAborted", { enumerable: true, get: function () { return cancellable_promise_1.throwIfAborted; } });
|
|
15
|
-
var ipc_1 = require("./ipc");
|
|
16
|
-
Object.defineProperty(exports, "broadcast", { enumerable: true, get: function () { return ipc_1.broadcast; } });
|
|
17
|
-
Object.defineProperty(exports, "ipcExpose", { enumerable: true, get: function () { return ipc_1.ipcExpose; } });
|
|
18
|
-
Object.defineProperty(exports, "ipcInvoke", { enumerable: true, get: function () { return ipc_1.ipcInvoke; } });
|
|
19
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2EAGsC;AADpC,sIAAA,wBAAwB,OAAA;AAE1B,uCAAwD;AAA/C,sGAAA,UAAU,OAAA;AAAE,0GAAA,cAAc,OAAA;AACnC,6DAM+B;AAL7B,oHAAA,aAAa,OAAA;AACb,sHAAA,eAAe,OAAA;AACf,wHAAA,iBAAiB,OAAA;AACjB,oHAAA,aAAa,OAAA;AACb,qHAAA,cAAc,OAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2EAGsC;AADpC,sIAAA,wBAAwB,OAAA;AAE1B,uCAAwD;AAA/C,sGAAA,UAAU,OAAA;AAAE,0GAAA,cAAc,OAAA;AACnC,6DAM+B;AAL7B,oHAAA,aAAa,OAAA;AACb,sHAAA,eAAe,OAAA;AACf,wHAAA,iBAAiB,OAAA;AACjB,oHAAA,aAAa,OAAA;AACb,qHAAA,cAAc,OAAA"}
|
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"email": "compass@mongodb.com"
|
|
15
15
|
},
|
|
16
16
|
"homepage": "https://github.com/mongodb-js/compass",
|
|
17
|
-
"version": "0.5.
|
|
17
|
+
"version": "0.5.4",
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|
|
20
20
|
"url": "https://github.com/mongodb-js/compass.git"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"types": "./dist/index.d.ts",
|
|
36
36
|
"scripts": {
|
|
37
37
|
"bootstrap": "npm run compile",
|
|
38
|
-
"prepublishOnly": "npm run compile",
|
|
38
|
+
"prepublishOnly": "npm run compile && compass-scripts check-exports-exist",
|
|
39
39
|
"compile": "tsc -p tsconfig.json && gen-esm-wrapper . ./dist/.esm-wrapper.mjs",
|
|
40
40
|
"typecheck": "tsc -p tsconfig-lint.json --noEmit",
|
|
41
41
|
"eslint": "eslint",
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
"reformat": "npm run prettier -- --write . && npm run eslint . --fix"
|
|
52
52
|
},
|
|
53
53
|
"optionalDependencies": {
|
|
54
|
-
"@electron/remote": "^2.0.
|
|
55
|
-
"electron": "^25.
|
|
54
|
+
"@electron/remote": "^2.0.12",
|
|
55
|
+
"electron": "^25.9.3"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@mongodb-js/eslint-config-compass": "^1.0.
|
|
59
|
-
"@mongodb-js/mocha-config-compass": "^1.3.
|
|
58
|
+
"@mongodb-js/eslint-config-compass": "^1.0.11",
|
|
59
|
+
"@mongodb-js/mocha-config-compass": "^1.3.2",
|
|
60
60
|
"@mongodb-js/prettier-config-compass": "^1.0.1",
|
|
61
61
|
"@mongodb-js/tsconfig-compass": "^1.0.3",
|
|
62
62
|
"@types/chai": "^4.2.21",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"sinon": "^9.2.3",
|
|
73
73
|
"typescript": "^5.0.4"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "25b247aaca2b0905914a1f7c9be8c95a03105af2"
|
|
76
76
|
}
|
package/dist/ipc.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ipcMain, ipcRenderer } from 'electron';
|
|
2
|
-
export declare const ControllerMap: Map<string, AbortController>;
|
|
3
|
-
export declare function setupSignalHandler(_ipcMain?: Pick<typeof ipcMain, 'handle'>, forceSetup?: boolean): void;
|
|
4
|
-
type PickByValue<T, K> = Pick<T, {
|
|
5
|
-
[k in keyof T]: T[k] extends K ? k : never;
|
|
6
|
-
}[keyof T]>;
|
|
7
|
-
export declare function ipcExpose<T>(serviceName: string, obj: T, methodNames: Extract<keyof PickByValue<T, (options: any) => Promise<any>>, string>[], _ipcMain?: Pick<typeof ipcMain, 'handle'>, _forceSetup?: boolean): void;
|
|
8
|
-
export declare function ipcInvoke<T, K extends Extract<keyof PickByValue<T, (options: any) => Promise<any>>, string>>(serviceName: string, methodNames: K[], _ipcRenderer?: Pick<typeof ipcRenderer, 'invoke'>): Pick<T, K>;
|
|
9
|
-
export declare function broadcast(channel: string, ...args: any[]): void;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=ipc.d.ts.map
|
package/dist/ipc.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../src/ipc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAsD/D,eAAO,MAAM,aAAa,8BAAqC,CAAC;AAMhE,wBAAgB,kBAAkB,CAChC,QAAQ,GAAE,IAAI,CAAC,OAAO,OAAO,EAAE,QAAQ,CAAW,EAClD,UAAU,UAAQ,QAenB;AAED,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAC3B,CAAC,EACD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CACxD,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,CAAC,EACN,WAAW,EAAE,OAAO,CAClB,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,EACpD,MAAM,CACP,EAAE,EACH,QAAQ,GAAE,IAAI,CAAC,OAAO,OAAO,EAAE,QAAQ,CAAW,EAClD,WAAW,UAAQ,QA0BpB;AAED,wBAAgB,SAAS,CACvB,CAAC,EACD,CAAC,SAAS,OAAO,CACf,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,EACpD,MAAM,CACP,EAED,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,CAAC,EAAE,EAChB,YAAY,GAAE,IAAI,CAAC,OAAO,WAAW,EAAE,QAAQ,CAAe,cA4C/D;AAKD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,QAKxD"}
|
package/dist/ipc.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.broadcast = exports.ipcInvoke = exports.ipcExpose = exports.setupSignalHandler = exports.ControllerMap = void 0;
|
|
4
|
-
const electron_1 = require("electron");
|
|
5
|
-
const v8_1 = require("v8");
|
|
6
|
-
function pickSerializeableProperties(o) {
|
|
7
|
-
return Object.fromEntries(Object.getOwnPropertyNames(o)
|
|
8
|
-
.map((p) => {
|
|
9
|
-
try {
|
|
10
|
-
(0, v8_1.serialize)(o[p]);
|
|
11
|
-
return [p, o[p]];
|
|
12
|
-
}
|
|
13
|
-
catch {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
})
|
|
17
|
-
.filter((p) => {
|
|
18
|
-
return !!p;
|
|
19
|
-
}));
|
|
20
|
-
}
|
|
21
|
-
function serializeErrorForIpc(err) {
|
|
22
|
-
return {
|
|
23
|
-
$$error: {
|
|
24
|
-
...pickSerializeableProperties(err),
|
|
25
|
-
name: err.name,
|
|
26
|
-
message: err.message,
|
|
27
|
-
stack: err.stack,
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function deserializeErrorFromIpc({ $$error: err }) {
|
|
32
|
-
const { message, ...rest } = err;
|
|
33
|
-
const e = new Error(message);
|
|
34
|
-
Object.assign(e, rest);
|
|
35
|
-
return e;
|
|
36
|
-
}
|
|
37
|
-
function isSerializedError(err) {
|
|
38
|
-
return err !== null && typeof err === 'object' && !!err.$$error;
|
|
39
|
-
}
|
|
40
|
-
exports.ControllerMap = new Map();
|
|
41
|
-
let cId = 0;
|
|
42
|
-
let setup = false;
|
|
43
|
-
function setupSignalHandler(_ipcMain = electron_1.ipcMain, forceSetup = false) {
|
|
44
|
-
if (!forceSetup && setup) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
setup = true;
|
|
48
|
-
_ipcMain.handle('ipcHandlerInvoke', (_evt, id) => {
|
|
49
|
-
exports.ControllerMap.set(id, new AbortController());
|
|
50
|
-
});
|
|
51
|
-
_ipcMain.handle('ipcHandlerAborted', (_evt, id) => {
|
|
52
|
-
exports.ControllerMap.get(id)?.abort();
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
exports.setupSignalHandler = setupSignalHandler;
|
|
56
|
-
function ipcExpose(serviceName, obj, methodNames, _ipcMain = electron_1.ipcMain, _forceSetup = false) {
|
|
57
|
-
setupSignalHandler(_ipcMain, _forceSetup);
|
|
58
|
-
for (const name of methodNames) {
|
|
59
|
-
const channel = `${serviceName}.${name}`;
|
|
60
|
-
_ipcMain.handle(channel, async (_evt, { signal, ...rest }) => {
|
|
61
|
-
try {
|
|
62
|
-
const controller = exports.ControllerMap.get(signal);
|
|
63
|
-
return await obj[name].call(obj, {
|
|
64
|
-
signal: controller?.signal,
|
|
65
|
-
...rest,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
return serializeErrorForIpc(err);
|
|
70
|
-
}
|
|
71
|
-
finally {
|
|
72
|
-
exports.ControllerMap.delete(signal);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
exports.ipcExpose = ipcExpose;
|
|
78
|
-
function ipcInvoke(serviceName, methodNames, _ipcRenderer = electron_1.ipcRenderer) {
|
|
79
|
-
return Object.fromEntries(methodNames.map((name) => {
|
|
80
|
-
const channel = `${serviceName}.${name}`;
|
|
81
|
-
const signalId = `${channel}:${++cId}`;
|
|
82
|
-
return [
|
|
83
|
-
name,
|
|
84
|
-
async ({ signal, ...rest } = {}) => {
|
|
85
|
-
await _ipcRenderer.invoke('ipcHandlerInvoke', signalId);
|
|
86
|
-
const onAbort = () => {
|
|
87
|
-
return _ipcRenderer.invoke('ipcHandlerAborted', signalId);
|
|
88
|
-
};
|
|
89
|
-
if (signal?.aborted) {
|
|
90
|
-
await onAbort();
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
signal?.addEventListener('abort', () => {
|
|
94
|
-
void onAbort();
|
|
95
|
-
}, { once: true });
|
|
96
|
-
}
|
|
97
|
-
const res = await _ipcRenderer.invoke(`${serviceName}.${name}`, {
|
|
98
|
-
signal: signalId,
|
|
99
|
-
...rest,
|
|
100
|
-
});
|
|
101
|
-
if (isSerializedError(res)) {
|
|
102
|
-
throw deserializeErrorFromIpc(res);
|
|
103
|
-
}
|
|
104
|
-
return res;
|
|
105
|
-
},
|
|
106
|
-
];
|
|
107
|
-
}));
|
|
108
|
-
}
|
|
109
|
-
exports.ipcInvoke = ipcInvoke;
|
|
110
|
-
function broadcast(channel, ...args) {
|
|
111
|
-
electron_1.BrowserWindow?.getAllWindows().forEach((browserWindow) => {
|
|
112
|
-
browserWindow.webContents.send(channel, ...args);
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
exports.broadcast = broadcast;
|
|
116
|
-
//# sourceMappingURL=ipc.js.map
|
package/dist/ipc.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../src/ipc.ts"],"names":[],"mappings":"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"}
|