Skip to content

Commit 1200458

Browse files
authored
add symbol dispose polyfill (#263)
Change-Id: If26a02daa322502bc9df644db5add43ae9617fab Signed-off-by: Thomas Kosiewski <tk@coder.com>
1 parent 8de6d12 commit 1200458

File tree

5 files changed

+21
-1
lines changed

5 files changed

+21
-1
lines changed

bun.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"cmdk": "^1.0.0",
1414
"crc-32": "^1.2.2",
1515
"diff": "^8.0.2",
16+
"disposablestack": "^1.1.7",
1617
"jsonc-parser": "^3.3.1",
1718
"lru-cache": "^11.2.2",
1819
"markdown-it": "^14.1.0",
@@ -1051,6 +1052,8 @@
10511052

10521053
"dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="],
10531054

1055+
"disposablestack": ["disposablestack@1.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.0.7", "suppressed-error": "^1.0.3" } }, "sha512-UmyM57A8fTz5Hn4pYO/q2YdQ7fApPmxT3T5eA3Igr4UnUZ/HY6zEWSUVR7QT6kiM4udOyljC8Ag2jn7DnaSUqA=="],
1056+
10541057
"dmg-builder": ["dmg-builder@24.13.3", "", { "dependencies": { "app-builder-lib": "24.13.3", "builder-util": "24.13.1", "builder-util-runtime": "9.2.4", "fs-extra": "^10.1.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, "optionalDependencies": { "dmg-license": "^1.0.11" } }, "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ=="],
10551058

10561059
"dmg-license": ["dmg-license@1.0.11", "", { "dependencies": { "@types/plist": "^3.0.1", "@types/verror": "^1.10.3", "ajv": "^6.10.0", "crc": "^3.8.0", "iconv-corefoundation": "^1.1.7", "plist": "^3.0.4", "smart-buffer": "^4.0.2", "verror": "^1.10.0" }, "os": "darwin", "bin": { "dmg-license": "bin/dmg-license.js" } }, "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q=="],
@@ -2075,6 +2078,8 @@
20752078

20762079
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
20772080

2081+
"suppressed-error": ["suppressed-error@1.0.3", "", { "dependencies": { "define-data-property": "^1.1.1", "define-properties": "^1.2.1", "es-abstract": "^1.22.3", "es-errors": "^1.1.0", "function-bind": "^1.1.2", "globalthis": "^1.0.3", "has-property-descriptors": "^1.0.1", "set-function-name": "^2.0.1" } }, "sha512-6+ZiCVUmDLFRyYRswTrDTYWaM/IT01W/cqQBLnnyg8T0njVrWj3tP+EXFevXk6qK61yDXnmZsOFVzFfYoUy/KA=="],
2082+
20782083
"svg-parser": ["svg-parser@2.0.4", "", {}, "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="],
20792084

20802085
"synckit": ["synckit@0.11.11", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="],

jest.config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module.exports = {
88
"!src/preload.ts",
99
"!src/main.ts", // Exclude main Electron file from coverage
1010
],
11-
// setupFilesAfterEnv: ["<rootDir>/test/setup.ts"], // Uncomment when setup.ts exists
11+
setupFilesAfterEnv: ["<rootDir>/tests/setup.ts"],
1212
moduleNameMapper: {
1313
"^@/(.*)$": "<rootDir>/src/$1",
1414
},
@@ -17,6 +17,8 @@ module.exports = {
1717
"ts-jest",
1818
{
1919
tsconfig: {
20+
target: "ES2020",
21+
lib: ["ES2020", "DOM"],
2022
esModuleInterop: true,
2123
allowSyntheticDefaultImports: true,
2224
},

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"cmdk": "^1.0.0",
4040
"crc-32": "^1.2.2",
4141
"diff": "^8.0.2",
42+
"disposablestack": "^1.1.7",
4243
"jsonc-parser": "^3.3.1",
4344
"lru-cache": "^11.2.2",
4445
"markdown-it": "^14.1.0",

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Enable source map support for better error stack traces in production
22
import "source-map-support/register";
3+
import "disposablestack/auto";
34

45
import type { MenuItemConstructorOptions } from "electron";
56
import { app, BrowserWindow, ipcMain as electronIpcMain, Menu, shell, dialog } from "electron";

tests/setup.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* Jest setup file to ensure Symbol.dispose is available in test environment.
3+
* Required for explicit resource management (using declarations) to work.
4+
*/
5+
6+
import assert from "assert";
7+
8+
require("disposablestack/auto");
9+
10+
assert.equal(typeof Symbol.dispose, "symbol");
11+
assert.equal(typeof Symbol.asyncDispose, "symbol");

0 commit comments

Comments
 (0)