@squiz/optimization-utils 7.1.0 → 7.1.2
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/queue/LRUQueue.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare class LRUQueue<T> implements Disposable {
|
|
|
15
15
|
private readonly deserialize;
|
|
16
16
|
private readonly insertQueue;
|
|
17
17
|
private readonly selectOldestN;
|
|
18
|
-
private readonly
|
|
18
|
+
private readonly markFetchedByKey;
|
|
19
19
|
private readonly selectPeekOldest;
|
|
20
20
|
private readonly selectPeekNewest;
|
|
21
21
|
private readonly selectCount;
|
package/dist/queue/LRUQueue.js
CHANGED
|
@@ -48,7 +48,7 @@ class LRUQueue {
|
|
|
48
48
|
deserialize;
|
|
49
49
|
insertQueue;
|
|
50
50
|
selectOldestN;
|
|
51
|
-
|
|
51
|
+
markFetchedByKey;
|
|
52
52
|
selectPeekOldest;
|
|
53
53
|
selectPeekNewest;
|
|
54
54
|
selectCount;
|
|
@@ -63,27 +63,26 @@ class LRUQueue {
|
|
|
63
63
|
PRAGMA synchronous = OFF;
|
|
64
64
|
|
|
65
65
|
CREATE TABLE queue (
|
|
66
|
-
|
|
67
|
-
item_key TEXT NOT NULL UNIQUE,
|
|
66
|
+
item_key TEXT PRIMARY KEY,
|
|
68
67
|
payload TEXT NOT NULL,
|
|
69
68
|
fetched INTEGER NOT NULL DEFAULT 0
|
|
70
69
|
CHECK (fetched IN (0, 1))
|
|
71
70
|
);
|
|
72
71
|
|
|
73
|
-
CREATE INDEX idx_queue_pending ON queue (fetched
|
|
72
|
+
CREATE INDEX idx_queue_pending ON queue (fetched);
|
|
74
73
|
`);
|
|
75
74
|
this.keySelector = keySelector;
|
|
76
75
|
this.serialize = serialize ?? ((value) => JSON.stringify(value));
|
|
77
76
|
this.deserialize =
|
|
78
77
|
deserialize ?? ((payload) => JSON.parse(payload));
|
|
79
78
|
this.insertQueue = this.db.prepare('INSERT OR IGNORE INTO queue (item_key, payload) VALUES (?, ?)');
|
|
80
|
-
this.selectOldestN = this.db.prepare(`SELECT
|
|
81
|
-
WHERE fetched = 0 ORDER BY
|
|
82
|
-
this.
|
|
79
|
+
this.selectOldestN = this.db.prepare(`SELECT item_key, payload FROM queue
|
|
80
|
+
WHERE fetched = 0 ORDER BY rowid ASC LIMIT ?`);
|
|
81
|
+
this.markFetchedByKey = this.db.prepare('UPDATE queue SET fetched = 1 WHERE item_key = ? AND fetched = 0');
|
|
83
82
|
this.selectPeekOldest = this.db.prepare(`SELECT payload FROM queue
|
|
84
|
-
WHERE fetched = 0 ORDER BY
|
|
83
|
+
WHERE fetched = 0 ORDER BY rowid ASC LIMIT 1`);
|
|
85
84
|
this.selectPeekNewest = this.db.prepare(`SELECT payload FROM queue
|
|
86
|
-
WHERE fetched = 0 ORDER BY
|
|
85
|
+
WHERE fetched = 0 ORDER BY rowid DESC LIMIT 1`);
|
|
87
86
|
this.selectCount = this.db.prepare('SELECT COUNT(*) AS c FROM queue WHERE fetched = 0');
|
|
88
87
|
}
|
|
89
88
|
enqueue(...values) {
|
|
@@ -122,7 +121,7 @@ class LRUQueue {
|
|
|
122
121
|
return [];
|
|
123
122
|
}
|
|
124
123
|
for (const row of rows) {
|
|
125
|
-
this.
|
|
124
|
+
this.markFetchedByKey.run(row.item_key);
|
|
126
125
|
}
|
|
127
126
|
this.db.exec('COMMIT');
|
|
128
127
|
return rows.map((row) => this.deserialize(row.payload));
|
|
@@ -147,7 +146,7 @@ class LRUQueue {
|
|
|
147
146
|
deserialize: this.deserialize,
|
|
148
147
|
});
|
|
149
148
|
const rows = this.db
|
|
150
|
-
.prepare('SELECT item_key, payload, fetched FROM queue ORDER BY
|
|
149
|
+
.prepare('SELECT item_key, payload, fetched FROM queue ORDER BY rowid ASC')
|
|
151
150
|
.all();
|
|
152
151
|
if (rows.length === 0) {
|
|
153
152
|
return cloned;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LRUQueue.js","sourceRoot":"","sources":["../../src/queue/LRUQueue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAyC;AACzC,gDAAkC;AAClC,yCAAoC;AACpC,6CAA0D;AAU1D;;GAEG;AACH,MAAa,QAAQ;IACF,EAAE,CAAe;IACjB,WAAW,CAAuB;IAClC,SAAS,CAAuB;IAChC,WAAW,CAAyB;IAEpC,WAAW,CAAgB;IAC3B,aAAa,CAAgB;IAC7B,
|
|
1
|
+
{"version":3,"file":"LRUQueue.js","sourceRoot":"","sources":["../../src/queue/LRUQueue.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squiz/optimization-utils",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"devDependencies": {},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"inversify": "^7.11.0",
|
|
38
|
-
"@squiz/optimization-logger": "^1.11.
|
|
38
|
+
"@squiz/optimization-logger": "^1.11.4"
|
|
39
39
|
},
|
|
40
40
|
"author": "",
|
|
41
41
|
"license": "ISC"
|