cleanup
This commit is contained in:
@@ -2,6 +2,8 @@ import type { AxiosInstance } from 'axios';
|
||||
|
||||
export type Identifier = string | number;
|
||||
|
||||
type Nullable<T> = T | null;
|
||||
|
||||
export interface AssetObject {
|
||||
ordinal?: number;
|
||||
url?: string | null;
|
||||
@@ -40,12 +42,12 @@ export type EnsureAssetUrl = (
|
||||
options?: { start?: number | null; limit?: number | null; force?: boolean; [key: string]: unknown },
|
||||
) => Promise<unknown>;
|
||||
|
||||
export type GetAsset = (document: DocumentLike, assetType: string) => AssetLike | null | undefined;
|
||||
export type GetAsset = (document: DocumentLike, assetType: string) => Nullable<AssetLike>;
|
||||
|
||||
export const getAssetFromGroup = (
|
||||
assets: AssetLike[] | Record<string, AssetLike> | null | undefined,
|
||||
assetType: string,
|
||||
): AssetLike | null => {
|
||||
assets?: AssetLike[] | Record<string, AssetLike> | null,
|
||||
assetType: string = '',
|
||||
): Nullable<AssetLike> => {
|
||||
if (!assetType || !assets) {
|
||||
return null;
|
||||
}
|
||||
@@ -57,11 +59,11 @@ export const getAssetFromGroup = (
|
||||
return assets?.[assetType] || null;
|
||||
};
|
||||
|
||||
export const getAssetFromVersion = (currentVersion, assetType) => {
|
||||
export const getAssetFromVersion = (currentVersion: Nullable<DocumentVersionLike>, assetType: string) => {
|
||||
if (!currentVersion) {
|
||||
return null;
|
||||
}
|
||||
return getAssetFromGroup(currentVersion.assets, assetType);
|
||||
return getAssetFromGroup(currentVersion.assets ?? null, assetType);
|
||||
};
|
||||
|
||||
const normalizeAssetObjects = (objects?: AssetObject[] | null): AssetObject[] => {
|
||||
@@ -182,7 +184,7 @@ export class AssetView {
|
||||
export const createAssetView = (asset?: AssetLike | null): AssetView => new AssetView(asset);
|
||||
|
||||
export const resolveDocumentAssetUrl = (
|
||||
doc: DocumentLike | null | undefined,
|
||||
doc: Nullable<DocumentLike>,
|
||||
type: string,
|
||||
{
|
||||
ensureAssetUrl,
|
||||
@@ -195,7 +197,7 @@ export const resolveDocumentAssetUrl = (
|
||||
ensureOptions?: { start?: number; limit?: number; [key: string]: unknown };
|
||||
objectOrdinal?: number;
|
||||
} = {},
|
||||
): string | null => {
|
||||
): Nullable<string> => {
|
||||
if (!doc || !type) {
|
||||
return null;
|
||||
}
|
||||
@@ -251,13 +253,13 @@ class AssetManager {
|
||||
this.api = api;
|
||||
}
|
||||
|
||||
rememberAsset(entry: AssetLike | null | undefined) {
|
||||
rememberAsset(entry?: Nullable<AssetLike>) {
|
||||
if (entry?.id) {
|
||||
this.assetCache.set(entry.id, entry);
|
||||
}
|
||||
}
|
||||
|
||||
hydrateAsset(asset: AssetLike | null | undefined): AssetLike | null | undefined {
|
||||
hydrateAsset(asset?: Nullable<AssetLike>): Nullable<AssetLike> {
|
||||
if (!asset || !asset.id) {
|
||||
return asset;
|
||||
}
|
||||
@@ -287,7 +289,7 @@ class AssetManager {
|
||||
return merged;
|
||||
}
|
||||
|
||||
hydrateDocument(document: DocumentLike | null | undefined): DocumentLike | null | undefined {
|
||||
hydrateDocument(document?: Nullable<DocumentLike>): Nullable<DocumentLike> {
|
||||
if (!document) {
|
||||
return document;
|
||||
}
|
||||
@@ -330,14 +332,14 @@ class AssetManager {
|
||||
return { ...document, current_version: nextCurrentVersion };
|
||||
}
|
||||
|
||||
hydrateDocuments(documents: DocumentLike[] | null | undefined) {
|
||||
hydrateDocuments(documents?: DocumentLike[] | null) {
|
||||
if (!Array.isArray(documents)) {
|
||||
return documents;
|
||||
return documents ?? [];
|
||||
}
|
||||
return documents.map((doc) => this.hydrateDocument(doc));
|
||||
}
|
||||
|
||||
hydrateDetail(detail: { document?: DocumentLike; assets?: AssetLike[] } | null | undefined) {
|
||||
hydrateDetail(detail?: { document?: DocumentLike; assets?: AssetLike[] } | null) {
|
||||
if (!detail) {
|
||||
return detail;
|
||||
}
|
||||
@@ -366,10 +368,7 @@ class AssetManager {
|
||||
return changed ? next : detail;
|
||||
}
|
||||
|
||||
hydrateFolderContents(contents: {
|
||||
documents?: DocumentLike[];
|
||||
document?: DocumentLike;
|
||||
} | null | undefined) {
|
||||
hydrateFolderContents(contents?: { documents?: DocumentLike[]; document?: DocumentLike } | null) {
|
||||
if (!contents) {
|
||||
return contents;
|
||||
}
|
||||
@@ -384,12 +383,12 @@ class AssetManager {
|
||||
}
|
||||
|
||||
ensureAsset(
|
||||
documentId: Identifier | null | undefined,
|
||||
asset: AssetLike | null | undefined,
|
||||
documentId?: Identifier | null,
|
||||
asset?: Nullable<AssetLike>,
|
||||
{ force = false, start = null, limit = null }: { force?: boolean; start?: number | null; limit?: number | null } = {},
|
||||
): Promise<AssetLike | null> {
|
||||
): Promise<Nullable<AssetLike>> {
|
||||
if (!documentId || !asset?.id) {
|
||||
return Promise.resolve(asset || null);
|
||||
return Promise.resolve(asset ?? null);
|
||||
}
|
||||
|
||||
const requestedStart = Number.isInteger(start) && start > 0 ? start : 1;
|
||||
|
||||
Reference in New Issue
Block a user