refactor
This commit is contained in:
@@ -81,15 +81,16 @@ const mergeAssetObjects = (
|
||||
const merged = new Map<number, AssetObject>();
|
||||
|
||||
normalizeAssetObjects(existingObjects).forEach((entry) => {
|
||||
if (typeof entry.ordinal === 'number') {
|
||||
merged.set(entry.ordinal, { ...entry });
|
||||
if (Number.isFinite(entry.ordinal)) {
|
||||
merged.set(entry.ordinal as number, { ...entry });
|
||||
}
|
||||
});
|
||||
|
||||
normalizeAssetObjects(incomingObjects).forEach((entry) => {
|
||||
if (typeof entry.ordinal === 'number') {
|
||||
const current = merged.get(entry.ordinal) || {};
|
||||
merged.set(entry.ordinal, { ...current, ...entry });
|
||||
if (Number.isFinite(entry.ordinal)) {
|
||||
const ordinal = entry.ordinal as number;
|
||||
const current = merged.get(ordinal) || {};
|
||||
merged.set(ordinal, { ...current, ...entry });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -198,23 +199,23 @@ export const resolveDocumentAssetUrl = (
|
||||
if (!doc || !type) {
|
||||
return null;
|
||||
}
|
||||
const asset = typeof getAsset === 'function' ? getAsset(doc, type) : null;
|
||||
const asset = getAsset ? getAsset(doc, type) : null;
|
||||
if (!asset) {
|
||||
return null;
|
||||
}
|
||||
const view = createAssetView(asset);
|
||||
const object = view.getObject(objectOrdinal);
|
||||
const url = object?.url || (objectOrdinal === 1 ? view.getPrimaryUrl() : null);
|
||||
const expiresAt = typeof object?.expires_at === 'number'
|
||||
? object.expires_at
|
||||
: objectOrdinal === 1 && typeof asset.expiresAt === 'number'
|
||||
? asset.expiresAt
|
||||
const expiresAt = Number.isFinite(object?.expires_at)
|
||||
? Number(object?.expires_at)
|
||||
: objectOrdinal === 1 && Number.isFinite(asset.expiresAt)
|
||||
? Number(asset.expiresAt)
|
||||
: null;
|
||||
const now = Date.now();
|
||||
if (url && (!expiresAt || expiresAt > now)) {
|
||||
return url;
|
||||
}
|
||||
if (doc.id && asset.id && typeof ensureAssetUrl === 'function') {
|
||||
if (doc.id && asset.id && ensureAssetUrl) {
|
||||
const force = Boolean(url && expiresAt && expiresAt <= now);
|
||||
const options: { force: boolean; start?: number | null; limit?: number | null; [key: string]: unknown } = {
|
||||
force,
|
||||
@@ -397,7 +398,7 @@ class AssetManager {
|
||||
|
||||
const baseAsset = this.assetCache.get(asset.id) || asset;
|
||||
const view = createAssetView(baseAsset);
|
||||
const assetExpiresAt = typeof baseAsset.expiresAt === 'number' ? baseAsset.expiresAt : null;
|
||||
const assetExpiresAt = Number.isFinite(baseAsset.expiresAt) ? Number(baseAsset.expiresAt) : null;
|
||||
const now = Date.now();
|
||||
|
||||
const isOrdinalSatisfied = (ordinal) => {
|
||||
@@ -408,8 +409,8 @@ class AssetManager {
|
||||
if (!object.url) {
|
||||
return false;
|
||||
}
|
||||
if (typeof object.expires_at === 'number') {
|
||||
return object.expires_at > now;
|
||||
if (Number.isFinite(object.expires_at)) {
|
||||
return Number(object.expires_at) > now;
|
||||
}
|
||||
if (ordinal === 1 && baseAsset.url && (!assetExpiresAt || assetExpiresAt > now)) {
|
||||
return true;
|
||||
@@ -460,8 +461,8 @@ class AssetManager {
|
||||
const combined = { ...cachedEntry, ...asset, ...data, objects: mergedObjects };
|
||||
const view = createAssetView(combined);
|
||||
const primaryObject = view.getPrimaryObject();
|
||||
const expiresAt = typeof primaryObject?.expires_at === 'number'
|
||||
? primaryObject.expires_at
|
||||
const expiresAt = Number.isFinite(primaryObject?.expires_at)
|
||||
? Number(primaryObject?.expires_at)
|
||||
: Date.now() + this.assetPresignTtlMs;
|
||||
const cardinality = (() => {
|
||||
const reported = Number(data.cardinality ?? asset.cardinality ?? cachedEntry?.cardinality);
|
||||
|
||||
Reference in New Issue
Block a user