@verdant-web/cloudflare 0.4.2 → 0.4.3
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/esm/doPresence.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { initialInternalPresence, } from '@verdant-web/common';
|
|
2
|
+
const REMOVAL_TIMEOUT = 60 * 60 * 1000; // 1 hour
|
|
2
3
|
export class DurableObjectPresenceStorage {
|
|
3
4
|
constructor(ctx, { storageKey = 'presence-storage', log, } = {}) {
|
|
4
5
|
this.ctx = ctx;
|
|
5
6
|
this.getMap = async () => {
|
|
6
|
-
var _a, _b
|
|
7
|
+
var _a, _b;
|
|
7
8
|
const map = (_a = (await this.ctx.storage.get(this.key))) !== null && _a !== void 0 ? _a : {};
|
|
8
|
-
(_b = this.log) === null || _b === void 0 ? void 0 : _b.call(this, 'debug', 'Presence map loaded:', map);
|
|
9
9
|
// clear entries that have expired
|
|
10
10
|
const now = Date.now();
|
|
11
11
|
for (const [userId, item] of Object.entries(map)) {
|
|
12
|
-
if (item.expiresAt <= now) {
|
|
12
|
+
if (item.expiresAt <= now - REMOVAL_TIMEOUT) {
|
|
13
13
|
delete map[userId];
|
|
14
|
-
(
|
|
14
|
+
(_b = this.log) === null || _b === void 0 ? void 0 : _b.call(this, 'debug', `Presence for user ${userId} is very old was removed.`);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
return map;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doPresence.js","sourceRoot":"","sources":["../../src/doPresence.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,GAGvB,MAAM,qBAAqB,CAAC;AAO7B,MAAM,OAAO,4BAA4B;IAIxC,YACS,GAAuB,EAC/B,EACC,UAAU,GAAG,kBAAkB,EAC/B,GAAG,MAIA,EAAE;QAPE,QAAG,GAAH,GAAG,CAAoB;QAaxB,WAAM,GAAG,KAAK,IAAkD,EAAE;;YACzE,MAAM,GAAG,GACR,MAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;YAC9C,
|
|
1
|
+
{"version":3,"file":"doPresence.js","sourceRoot":"","sources":["../../src/doPresence.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdant-web/cloudflare",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"access": "public",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@hono/node-server": "^1.13.8"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@verdant-web/server": "4.2.
|
|
25
|
+
"@verdant-web/server": "4.2.2",
|
|
26
26
|
"@verdant-web/common": "3.2.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
package/src/doPresence.ts
CHANGED
|
@@ -9,6 +9,8 @@ import {
|
|
|
9
9
|
PresenceStorageItem,
|
|
10
10
|
} from '@verdant-web/server/internals';
|
|
11
11
|
|
|
12
|
+
const REMOVAL_TIMEOUT = 60 * 60 * 1000; // 1 hour
|
|
13
|
+
|
|
12
14
|
export class DurableObjectPresenceStorage implements PresenceStorage {
|
|
13
15
|
private key;
|
|
14
16
|
private log;
|
|
@@ -30,15 +32,14 @@ export class DurableObjectPresenceStorage implements PresenceStorage {
|
|
|
30
32
|
private getMap = async (): Promise<Record<string, PresenceStorageItem>> => {
|
|
31
33
|
const map: Record<string, PresenceStorageItem> | null =
|
|
32
34
|
(await this.ctx.storage.get(this.key)) ?? {};
|
|
33
|
-
this.log?.('debug', 'Presence map loaded:', map);
|
|
34
35
|
// clear entries that have expired
|
|
35
36
|
const now = Date.now();
|
|
36
37
|
for (const [userId, item] of Object.entries(map)) {
|
|
37
|
-
if (item.expiresAt <= now) {
|
|
38
|
+
if (item.expiresAt <= now - REMOVAL_TIMEOUT) {
|
|
38
39
|
delete map[userId];
|
|
39
40
|
this.log?.(
|
|
40
41
|
'debug',
|
|
41
|
-
`Presence for user ${userId}
|
|
42
|
+
`Presence for user ${userId} is very old was removed.`,
|
|
42
43
|
);
|
|
43
44
|
}
|
|
44
45
|
}
|