Skip to content
Draft
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b373e29
Don't trigger source refresh for TTL-expired entries when doing search
cb1kenobi Mar 18, 2026
048fe5c
Merge branch 'main' into search-ttl-expiry-source-refresh
cb1kenobi Mar 18, 2026
3a2b286
Update systeminformation to resolve high-severity vulnerabilities
cb1kenobi Mar 18, 2026
dc4eed0
Make TLS (re)loading to be explicitly async
kriszyp Mar 18, 2026
2cb965d
Improve integration test harperLifecycle: rename setupHarper, add doc…
Ethan-Arrowood Mar 18, 2026
e06fdbc
Update fastify to resolve high/low-severity vulnerabilities
cb1kenobi Mar 18, 2026
c09c0f9
Enqueue message events if there are any in the queue, to better emula…
kriszyp Mar 18, 2026
efb7b80
Update undici to resolve high-severity vulnerabilities
cb1kenobi Mar 18, 2026
44e8965
Fix conflicts
cb1kenobi Mar 19, 2026
71f797d
Update lodash to resolve moderate-severity vulnerabilities
cb1kenobi Mar 18, 2026
949d52a
Update @aws-sdk/client-s3 to resolve critical-severity vulnerabilities
cb1kenobi Mar 18, 2026
232ccea
Update mocha to resolve high-severity vulnerabilities
cb1kenobi Mar 18, 2026
f681873
Update version
kriszyp Mar 18, 2026
443ddb1
fix: Always latest for now
dawsontoth Mar 18, 2026
3d3e018
chore: Run formatter
dawsontoth Mar 18, 2026
3d5acbe
fix: handle JSON file imports in sandboxed module loader
laviniat1996 Mar 18, 2026
5fc775f
Separate data availability and freshness
cb1kenobi Mar 19, 2026
da9e120
Merge branch 'main' into search-ttl-expiry-source-refresh
cb1kenobi Mar 19, 2026
42c8417
Merge branch 'main' into search-ttl-expiry-source-refresh
cb1kenobi Mar 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions resources/Table.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2436,17 +2436,17 @@ export function makeTable(options) {
if (entry?.then) return entry.then(transform.bind(this));
record = entry?.value;
}
if (
(checkLoaded && entry?.metadataFlags & (INVALIDATED | EVICTED)) || // invalidated or evicted should go to load from source
(entry?.expiresAt != undefined && entry?.expiresAt < Date.now())
) {
// should expiration really apply?
if (context.onlyIfCached) {
return {
[primaryKey]: entry.key,
message: 'This entry has expired',
};
}
const isExpired = entry?.expiresAt != undefined && entry?.expiresAt < Date.now();
const needsRefresh = checkLoaded && Boolean(entry?.metadataFlags & (INVALIDATED | EVICTED));
if ((isExpired || needsRefresh) && context.onlyIfCached) {
return {
[primaryKey]: entry.key,
message: 'This entry has expired/invalidated',
};
}
if (needsRefresh) {
// invalidated or evicted should go to load from source; TTL-expired entries are
// returned as stale data during search — freshness is enforced by get(), not search()
const loadingFromSource = ensureLoadedFromSource(source, entry.key ?? entry, entry, context);
if (loadingFromSource?.then) {
return loadingFromSource.then(transform);
Expand Down
Loading