@turntrout/subfont 1.0.4 → 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/lib/FontTracerPool.js +11 -0
- package/lib/HeadlessBrowser.js +2 -1
- package/lib/extractVisibleText.js +2 -0
- package/lib/subfont.js +5 -10
- package/lib/unicodeRange.js +1 -1
- package/package.json +1 -1
package/lib/FontTracerPool.js
CHANGED
|
@@ -159,6 +159,17 @@ class FontTracerPool {
|
|
|
159
159
|
}
|
|
160
160
|
this._pendingTasks = [];
|
|
161
161
|
|
|
162
|
+
// Reject any in-flight tasks still assigned to workers.
|
|
163
|
+
// Clear _taskByWorker before terminate() so _onWorkerExit won't double-reject.
|
|
164
|
+
for (const [, taskId] of this._taskByWorker) {
|
|
165
|
+
const cb = this._taskCallbacks.get(taskId);
|
|
166
|
+
if (cb) {
|
|
167
|
+
this._taskCallbacks.delete(taskId);
|
|
168
|
+
cb.reject(new Error('Worker pool destroyed'));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
this._taskByWorker.clear();
|
|
172
|
+
|
|
162
173
|
// Terminate workers with a 5-second timeout to prevent hanging
|
|
163
174
|
const TERMINATE_TIMEOUT_MS = 5000;
|
|
164
175
|
await Promise.all(
|
package/lib/HeadlessBrowser.js
CHANGED
|
@@ -10,6 +10,7 @@ const INVISIBLE_ELEMENTS = new Set([
|
|
|
10
10
|
'iframe',
|
|
11
11
|
'object',
|
|
12
12
|
'embed',
|
|
13
|
+
'datalist',
|
|
13
14
|
]);
|
|
14
15
|
const TEXT_ATTRIBUTES = new Set([
|
|
15
16
|
'alt',
|
|
@@ -72,3 +73,4 @@ function extractVisibleText(html) {
|
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
module.exports = extractVisibleText;
|
|
76
|
+
module.exports.INVISIBLE_ELEMENTS = INVISIBLE_ELEMENTS;
|
package/lib/subfont.js
CHANGED
|
@@ -216,14 +216,15 @@ module.exports = async function subfont(
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
|
|
220
|
-
for (const asset of assetGraph.findAssets({
|
|
219
|
+
const sizeableAssetQuery = {
|
|
221
220
|
isInline: false,
|
|
222
221
|
isLoaded: true,
|
|
223
222
|
type: {
|
|
224
223
|
$in: ['Html', 'Svg', 'Css', 'JavaScript'],
|
|
225
224
|
},
|
|
226
|
-
}
|
|
225
|
+
};
|
|
226
|
+
let sumSizesBefore = 0;
|
|
227
|
+
for (const asset of assetGraph.findAssets(sizeableAssetQuery)) {
|
|
227
228
|
sumSizesBefore += asset.rawSrc.length;
|
|
228
229
|
}
|
|
229
230
|
|
|
@@ -269,13 +270,7 @@ module.exports = async function subfont(
|
|
|
269
270
|
|
|
270
271
|
phaseStart = Date.now();
|
|
271
272
|
let sumSizesAfter = 0;
|
|
272
|
-
for (const asset of assetGraph.findAssets({
|
|
273
|
-
isInline: false,
|
|
274
|
-
isLoaded: true,
|
|
275
|
-
type: {
|
|
276
|
-
$in: ['Html', 'Svg', 'Css', 'JavaScript'],
|
|
277
|
-
},
|
|
278
|
-
})) {
|
|
273
|
+
for (const asset of assetGraph.findAssets(sizeableAssetQuery)) {
|
|
279
274
|
sumSizesAfter += asset.rawSrc.length;
|
|
280
275
|
}
|
|
281
276
|
|
package/lib/unicodeRange.js
CHANGED
package/package.json
CHANGED