tangled
alpha
login
or
join now
nekomimi.pet
/
wisp.place-monorepo
87
fork
atom
Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol.
wisp.place
87
fork
atom
overview
issues
9
pulls
pipelines
gracefully error on unparsable .meta file
nekomimi.pet
4 weeks ago
a37f915e
9e827fd3
+14
-2
1 changed file
expand all
collapse all
unified
split
packages
@wispplace
tiered-storage
src
tiers
S3StorageTier.ts
+14
-2
packages/@wispplace/tiered-storage/src/tiers/S3StorageTier.ts
reviewed
···
236
236
]);
237
237
238
238
const json = new TextDecoder().decode(metaBuffer);
239
239
-
const metadata = JSON.parse(json) as StorageMetadata;
239
239
+
let metadata: StorageMetadata;
240
240
+
try {
241
241
+
metadata = JSON.parse(json) as StorageMetadata;
242
242
+
} catch {
243
243
+
// Corrupted or partial .meta file — return null so the caller
244
244
+
// falls through to on-demand fetch rather than serving bad data.
245
245
+
return null;
246
246
+
}
240
247
metadata.createdAt = new Date(metadata.createdAt);
241
248
metadata.lastAccessed = new Date(metadata.lastAccessed);
242
249
if (metadata.ttl) {
···
587
594
588
595
const buffer = await this.streamToUint8Array(response.Body as Readable);
589
596
const json = new TextDecoder().decode(buffer);
590
590
-
const metadata = JSON.parse(json) as StorageMetadata;
597
597
+
let metadata: StorageMetadata;
598
598
+
try {
599
599
+
metadata = JSON.parse(json) as StorageMetadata;
600
600
+
} catch {
601
601
+
return null;
602
602
+
}
591
603
592
604
metadata.createdAt = new Date(metadata.createdAt);
593
605
metadata.lastAccessed = new Date(metadata.lastAccessed);