@gesslar/toolkit 5.9.0 → 5.9.1
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/package.json +1 -1
- package/src/node/lib/Cache.js +51 -27
- package/src/node/lib/DirectoryObject.js +2 -8
- package/types/node/lib/Cache.d.ts +11 -10
- package/types/node/lib/Cache.d.ts.map +1 -1
- package/types/node/lib/DirectoryObject.d.ts +2 -17
- package/types/node/lib/DirectoryObject.d.ts.map +1 -1
- package/vendor/toolkit.esm.js +1 -1
- package/vendor/toolkit.umd.js +1 -1
package/package.json
CHANGED
package/src/node/lib/Cache.js
CHANGED
|
@@ -11,7 +11,7 @@ import Sass from "./Sass.js"
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* @typedef {{modified: Date, raw: string|null, structured: unknown}} CacheData
|
|
14
|
+
* @typedef {{modified: Date, encoding: string, raw: string|null, structured: unknown}} CacheData
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -28,13 +28,23 @@ export default class Cache {
|
|
|
28
28
|
#cache = new Map()
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
-
* In-flight reads, keyed by file path
|
|
32
|
-
* concurrent callers coalesce onto one read
|
|
31
|
+
* In-flight reads, keyed by file path, generation, encoding and
|
|
32
|
+
* modification time, so that concurrent callers coalesce onto one read
|
|
33
|
+
* instead of racing each other.
|
|
33
34
|
*
|
|
34
35
|
* @type {Map<string, Promise<CacheData>>}
|
|
35
36
|
*/
|
|
36
37
|
#reading = new Map()
|
|
37
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Invalidation counter per file path, bumped on every reset. A read that
|
|
41
|
+
* began before a reset carries the older generation, and so knows not to
|
|
42
|
+
* publish itself over the top of that reset.
|
|
43
|
+
*
|
|
44
|
+
* @type {Map<string, number>}
|
|
45
|
+
*/
|
|
46
|
+
#generation = new Map()
|
|
47
|
+
|
|
38
48
|
/**
|
|
39
49
|
* Removes cached data for a specific file from the #cache map.
|
|
40
50
|
* Used when files are modified or when cache consistency needs to be
|
|
@@ -46,6 +56,7 @@ export default class Cache {
|
|
|
46
56
|
*/
|
|
47
57
|
#cleanup(file) {
|
|
48
58
|
this.#cache.delete(file.path)
|
|
59
|
+
this.#generation.set(file.path, (this.#generation.get(file.path) ?? 0) + 1)
|
|
49
60
|
}
|
|
50
61
|
|
|
51
62
|
/**
|
|
@@ -72,7 +83,8 @@ export default class Cache {
|
|
|
72
83
|
if(lastModified === null)
|
|
73
84
|
throw Sass.new(`No such file '${fileObject}'`)
|
|
74
85
|
|
|
75
|
-
const rec = await this.#record(
|
|
86
|
+
const rec = await this.#record(
|
|
87
|
+
fileObject, lastModified, options.encoding ?? "utf8")
|
|
76
88
|
|
|
77
89
|
if(kind === "raw")
|
|
78
90
|
return rec.raw
|
|
@@ -88,30 +100,36 @@ export default class Cache {
|
|
|
88
100
|
* Resolves the cache record for a file at a given modification time,
|
|
89
101
|
* reading from disk when no record exists or the existing one is stale.
|
|
90
102
|
*
|
|
91
|
-
* Concurrent callers asking for the same file at the same mtime
|
|
92
|
-
* single read, and a record only enters the map once its
|
|
93
|
-
* hand. Without both of those, a second caller arriving
|
|
94
|
-
* still awaiting the read would find a record already
|
|
95
|
-
* mtime but still holding the previous revision's
|
|
96
|
-
* it as fresh.
|
|
103
|
+
* Concurrent callers asking for the same file at the same mtime and
|
|
104
|
+
* encoding share a single read, and a record only enters the map once its
|
|
105
|
+
* contents are in hand. Without both of those, a second caller arriving
|
|
106
|
+
* while the first is still awaiting the read would find a record already
|
|
107
|
+
* stamped with the new mtime but still holding the previous revision's
|
|
108
|
+
* data, and happily return it as fresh.
|
|
97
109
|
*
|
|
98
110
|
* @private
|
|
99
111
|
* @param {FileObject} fileObject - The file object to resolve
|
|
100
112
|
* @param {Date} lastModified - The file's current modification time
|
|
101
|
-
* @param {
|
|
113
|
+
* @param {string} encoding - The encoding to read the file with
|
|
102
114
|
* @returns {Promise<CacheData>} The populated cache record
|
|
103
115
|
*/
|
|
104
|
-
async #record(fileObject, lastModified,
|
|
105
|
-
const
|
|
116
|
+
async #record(fileObject, lastModified, encoding) {
|
|
117
|
+
const path = fileObject.path
|
|
118
|
+
const cached = this.#cache.get(path)
|
|
106
119
|
|
|
107
|
-
if(cached &&
|
|
120
|
+
if(cached &&
|
|
121
|
+
cached.modified.getTime() === lastModified.getTime() &&
|
|
122
|
+
cached.encoding === encoding)
|
|
108
123
|
return cached
|
|
109
124
|
|
|
110
|
-
const
|
|
125
|
+
const generation = this.#generation.get(path) ?? 0
|
|
126
|
+
const key = [path, generation, encoding, lastModified.getTime()]
|
|
127
|
+
.join("\u0000")
|
|
128
|
+
|
|
111
129
|
let reading = this.#reading.get(key)
|
|
112
130
|
|
|
113
131
|
if(!reading) {
|
|
114
|
-
reading = this.#read(fileObject, lastModified,
|
|
132
|
+
reading = this.#read(fileObject, lastModified, encoding, generation)
|
|
115
133
|
.finally(() => this.#reading.delete(key))
|
|
116
134
|
|
|
117
135
|
this.#reading.set(key, reading)
|
|
@@ -126,22 +144,28 @@ export default class Cache {
|
|
|
126
144
|
* @private
|
|
127
145
|
* @param {FileObject} fileObject - The file object to read
|
|
128
146
|
* @param {Date} lastModified - The modification time the read represents
|
|
129
|
-
* @param {
|
|
130
|
-
* @param {
|
|
147
|
+
* @param {string} encoding - The encoding to read the file with
|
|
148
|
+
* @param {number} generation - The invalidation generation this read began in
|
|
131
149
|
* @returns {Promise<CacheData>} The freshly populated cache record
|
|
132
150
|
*/
|
|
133
|
-
async #read(fileObject, lastModified,
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
151
|
+
async #read(fileObject, lastModified, encoding, generation) {
|
|
152
|
+
const path = fileObject.path
|
|
153
|
+
const raw = await fileObject.read({encoding, skipCache: true})
|
|
154
|
+
const rec = Object.seal({
|
|
155
|
+
modified: lastModified,
|
|
156
|
+
encoding,
|
|
157
|
+
raw,
|
|
158
|
+
structured: null,
|
|
137
159
|
})
|
|
138
160
|
|
|
139
|
-
const
|
|
140
|
-
const cached = this.#cache.get(fileObject.path)
|
|
161
|
+
const cached = this.#cache.get(path)
|
|
141
162
|
|
|
142
|
-
//
|
|
143
|
-
|
|
144
|
-
|
|
163
|
+
// The caller gets this record either way, but it only goes in the map if
|
|
164
|
+
// no reset landed while the read was in flight, and it wouldn't clobber a
|
|
165
|
+
// newer revision that a faster read already published.
|
|
166
|
+
if((this.#generation.get(path) ?? 0) === generation &&
|
|
167
|
+
(!cached || cached.modified.getTime() <= lastModified.getTime()))
|
|
168
|
+
this.#cache.set(path, rec)
|
|
145
169
|
|
|
146
170
|
return rec
|
|
147
171
|
}
|
|
@@ -15,12 +15,6 @@ import FS from "./FileSystem.js"
|
|
|
15
15
|
import Sass from "./Sass.js"
|
|
16
16
|
import Valid from "./Valid.js"
|
|
17
17
|
|
|
18
|
-
/**
|
|
19
|
-
* @typedef {object} GeneratorType
|
|
20
|
-
* @property {function(): {value: DirectoryObject, done: boolean}} next
|
|
21
|
-
* @property {function(): GeneratorType} [Symbol.iterator]
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
18
|
/**
|
|
25
19
|
* @typedef {object} DirectoryMeta
|
|
26
20
|
*
|
|
@@ -584,7 +578,7 @@ export default class DirectoryObject extends FS {
|
|
|
584
578
|
*
|
|
585
579
|
* @generator
|
|
586
580
|
* @yields {DirectoryObject} Parent directory objects from current to root
|
|
587
|
-
* @returns {
|
|
581
|
+
* @returns {Generator<DirectoryObject>}
|
|
588
582
|
*/
|
|
589
583
|
*#walkUp() {
|
|
590
584
|
const {root, base, dir} = FS.pathParts(this.path)
|
|
@@ -606,7 +600,7 @@ export default class DirectoryObject extends FS {
|
|
|
606
600
|
* Generator that walks up the directory tree, yielding each parent directory.
|
|
607
601
|
* Starts from the current directory and yields each parent until reaching the root.
|
|
608
602
|
*
|
|
609
|
-
* @returns {DirectoryObject} Generator yielding parent DirectoryObject instances
|
|
603
|
+
* @returns {IterableIterator<DirectoryObject>} Generator yielding parent DirectoryObject instances
|
|
610
604
|
* @example
|
|
611
605
|
* const dir = new DirectoryObject('/path/to/deep/directory')
|
|
612
606
|
* for(const parent of dir.walkUp) {
|
|
@@ -2,6 +2,7 @@ import type FileObject from "./FileObject.js";
|
|
|
2
2
|
export type CacheDataType = "raw" | "structured";
|
|
3
3
|
export type CacheData = {
|
|
4
4
|
modified: Date;
|
|
5
|
+
encoding: string;
|
|
5
6
|
raw: string | null;
|
|
6
7
|
structured: unknown;
|
|
7
8
|
};
|
|
@@ -12,7 +13,7 @@ export type CacheData = {
|
|
|
12
13
|
* @typedef {"raw" | "structured"} CacheDataType
|
|
13
14
|
*/
|
|
14
15
|
/**
|
|
15
|
-
* @typedef {{modified: Date, raw: string|null, structured: unknown}} CacheData
|
|
16
|
+
* @typedef {{modified: Date, encoding: string, raw: string|null, structured: unknown}} CacheData
|
|
16
17
|
*/
|
|
17
18
|
/**
|
|
18
19
|
* File system cache with automatic invalidation based on modification time.
|
|
@@ -55,17 +56,17 @@ export default class Cache {
|
|
|
55
56
|
* Resolves the cache record for a file at a given modification time,
|
|
56
57
|
* reading from disk when no record exists or the existing one is stale.
|
|
57
58
|
*
|
|
58
|
-
* Concurrent callers asking for the same file at the same mtime
|
|
59
|
-
* single read, and a record only enters the map once its
|
|
60
|
-
* hand. Without both of those, a second caller arriving
|
|
61
|
-
* still awaiting the read would find a record already
|
|
62
|
-
* mtime but still holding the previous revision's
|
|
63
|
-
* it as fresh.
|
|
59
|
+
* Concurrent callers asking for the same file at the same mtime and
|
|
60
|
+
* encoding share a single read, and a record only enters the map once its
|
|
61
|
+
* contents are in hand. Without both of those, a second caller arriving
|
|
62
|
+
* while the first is still awaiting the read would find a record already
|
|
63
|
+
* stamped with the new mtime but still holding the previous revision's
|
|
64
|
+
* data, and happily return it as fresh.
|
|
64
65
|
*
|
|
65
66
|
* @private
|
|
66
67
|
* @param {FileObject} fileObject - The file object to resolve
|
|
67
68
|
* @param {Date} lastModified - The file's current modification time
|
|
68
|
-
* @param {
|
|
69
|
+
* @param {string} encoding - The encoding to read the file with
|
|
69
70
|
* @returns {Promise<CacheData>} The populated cache record
|
|
70
71
|
*/
|
|
71
72
|
private #record;
|
|
@@ -75,8 +76,8 @@ export default class Cache {
|
|
|
75
76
|
* @private
|
|
76
77
|
* @param {FileObject} fileObject - The file object to read
|
|
77
78
|
* @param {Date} lastModified - The modification time the read represents
|
|
78
|
-
* @param {
|
|
79
|
-
* @param {
|
|
79
|
+
* @param {string} encoding - The encoding to read the file with
|
|
80
|
+
* @param {number} generation - The invalidation generation this read began in
|
|
80
81
|
* @returns {Promise<CacheData>} The freshly populated cache record
|
|
81
82
|
*/
|
|
82
83
|
private #read;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../../src/node/lib/Cache.js"],"names":[],"mappings":"AAKG,OAAQ,KAAA,UAAU,MAAM,iBAAiB,CAAA;AAIzC,YAAgC,aAAa,GAAnC,KAAK,GAAG,YAAY,CAAe;AAI7C,
|
|
1
|
+
{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../../src/node/lib/Cache.js"],"names":[],"mappings":"AAKG,OAAQ,KAAA,UAAU,MAAM,iBAAiB,CAAA;AAIzC,YAAgC,aAAa,GAAnC,KAAK,GAAG,YAAY,CAAe;AAI7C,YAAqF,SAAS,GAApF;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAC,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAC,CAAW;AATjG;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;;IAsBxB;;;;;;;;OAQG;YACH,QAAQ;IAKR;;;;;;;;;;;;;;OAcG;YACG,cAAc;IAsBpB;;;;;;;;;;;;;;;;OAgBG;YACG,OAAO;IAyBb;;;;;;;;;OASG;YACG,KAAK;IAsBX;;;;;;;;;;;;OAYG;IACG,iBAAiB,CAAC,UAAU,EAJvB,UAIuB,EAAE,OAAO,KAAG,GAHjC,OAAO,CAAC,OAAO,CAAC,CAQ5B;IAED;;;;;;;OAOG;IACG,aAAa,CAAC,UAAU,EAJnB,UAImB,EAAE,OAAO,KAAG,GAH7B,OAAO,CAAC,MAAM,CAAC,CAQ3B;IAED;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAFJ,OAAO,iBAAiB,EAAE,OAEtB,QAId;CACF"}
|
|
@@ -7,16 +7,6 @@ import { URL } from "node:url";
|
|
|
7
7
|
import { inspect } from "node:util";
|
|
8
8
|
import FileObject from "./FileObject.js";
|
|
9
9
|
import FS from "./FileSystem.js";
|
|
10
|
-
export type GeneratorType = {
|
|
11
|
-
/**
|
|
12
|
-
* (): {value: DirectoryObject, done: boolean}} next
|
|
13
|
-
*/
|
|
14
|
-
: Function;
|
|
15
|
-
/**
|
|
16
|
-
* (): GeneratorType} [Symbol.iterator]
|
|
17
|
-
*/
|
|
18
|
-
: Function;
|
|
19
|
-
};
|
|
20
10
|
export type DirectoryMeta = {
|
|
21
11
|
/**
|
|
22
12
|
* - Always true for directories
|
|
@@ -63,11 +53,6 @@ export type DirectoryMeta = {
|
|
|
63
53
|
*/
|
|
64
54
|
url: URL | null;
|
|
65
55
|
};
|
|
66
|
-
/**
|
|
67
|
-
* @typedef {object} GeneratorType
|
|
68
|
-
* @property {function(): {value: DirectoryObject, done: boolean}} next
|
|
69
|
-
* @property {function(): GeneratorType} [Symbol.iterator]
|
|
70
|
-
*/
|
|
71
56
|
/**
|
|
72
57
|
* @typedef {object} DirectoryMeta
|
|
73
58
|
*
|
|
@@ -366,7 +351,7 @@ export default class DirectoryObject extends FS {
|
|
|
366
351
|
* Generator that walks up the directory tree, yielding each parent directory.
|
|
367
352
|
* Starts from the current directory and yields each parent until reaching the root.
|
|
368
353
|
*
|
|
369
|
-
* @returns {DirectoryObject} Generator yielding parent DirectoryObject instances
|
|
354
|
+
* @returns {IterableIterator<DirectoryObject>} Generator yielding parent DirectoryObject instances
|
|
370
355
|
* @example
|
|
371
356
|
* const dir = new DirectoryObject('/path/to/deep/directory')
|
|
372
357
|
* for(const parent of dir.walkUp) {
|
|
@@ -378,7 +363,7 @@ export default class DirectoryObject extends FS {
|
|
|
378
363
|
* // /
|
|
379
364
|
* }
|
|
380
365
|
*/
|
|
381
|
-
get walkUp(): DirectoryObject
|
|
366
|
+
get walkUp(): IterableIterator<DirectoryObject>;
|
|
382
367
|
/**
|
|
383
368
|
* Deletes an empty directory from the filesystem.
|
|
384
369
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectoryObject.d.ts","sourceRoot":"","sources":["../../../src/node/lib/DirectoryObject.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,OAAO,UAAU,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAK7B,YAAkB,aAAa,
|
|
1
|
+
{"version":3,"file":"DirectoryObject.d.ts","sourceRoot":"","sources":["../../../src/node/lib/DirectoryObject.js"],"names":[],"mappings":"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"}
|
package/vendor/toolkit.esm.js
CHANGED
package/vendor/toolkit.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @gesslar/toolkit v5.9.
|
|
1
|
+
// @gesslar/toolkit v5.9.1 - UMD bundle
|
|
2
2
|
(function (global, factory) {
|
|
3
3
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
4
4
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|