@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.
@@ -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, _c;
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
- (_c = this.log) === null || _c === void 0 ? void 0 : _c.call(this, 'debug', `Presence for user ${userId} has expired and was removed.`);
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":"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"}
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.2",
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.1",
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} has expired and was removed.`,
42
+ `Presence for user ${userId} is very old was removed.`,
42
43
  );
43
44
  }
44
45
  }