dsh-unlag 1.9.106 → 1.9.107
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/index.js +12 -2
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks'
|
|
2
2
|
import { createHash } from 'node:crypto'
|
|
3
|
-
import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, watch, writeFileSync } from 'node:fs'
|
|
3
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, watch, writeFileSync } from 'node:fs'
|
|
4
4
|
import { homedir } from 'node:os'
|
|
5
5
|
import { join, resolve } from 'node:path'
|
|
6
6
|
import { Script } from 'node:vm'
|
|
@@ -271,9 +271,19 @@ function log(line) {
|
|
|
271
271
|
* A file that only grows eventually costs the app its own memory budget, and a burst of lines
|
|
272
272
|
* can land between two periodic checks: the size is read before every write and the whole
|
|
273
273
|
* line has to fit, so the file never passes the cap even for one event.
|
|
274
|
+
*
|
|
275
|
+
* A full file is moved aside rather than emptied: the lines it holds are the evidence for
|
|
276
|
+
* whatever just happened, and the event that fills the log is very often the one worth reading.
|
|
277
|
+
* One previous generation is kept, so a hostile page can cost at most one past million bytes.
|
|
274
278
|
*/
|
|
275
279
|
try {
|
|
276
|
-
if (statSync(target).size + Buffer.byteLength(text) > LOG_MAX_BYTES)
|
|
280
|
+
if (statSync(target).size + Buffer.byteLength(text) > LOG_MAX_BYTES) {
|
|
281
|
+
try {
|
|
282
|
+
renameSync(target, `${target}.1`)
|
|
283
|
+
} catch {
|
|
284
|
+
writeFileSync(target, '')
|
|
285
|
+
}
|
|
286
|
+
}
|
|
277
287
|
} catch {
|
|
278
288
|
/* a missing or unreadable log is created by the append below */
|
|
279
289
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-unlag",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.107",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A press applies plugin edits right away and brings a laggy interface back; automatic reloading stays off unless you turn it on, so the press is the only trigger, and nothing restarts.",
|
|
6
6
|
"license": "MIT",
|