diff --git a/src/utils/AssetResolverHelper.ts b/src/utils/AssetResolverHelper.ts new file mode 100644 index 00000000..df552fbf --- /dev/null +++ b/src/utils/AssetResolverHelper.ts @@ -0,0 +1,25 @@ +import { DDO } from '../ddo/DDO' +import { Ocean } from '../ocean/Ocean' + +export interface AssetResolver { + did: string + ddo: DDO +} + +function isDdo(arg: any): arg is DDO { + return arg.id !== undefined +} + +export async function assetResolve(asset: DDO | string): Promise { + let ocean: Ocean + + if (isDdo(asset)) { + const did = asset.id + const ddo = asset + return { did, ddo } + } else { + const ddo = await ocean.assets.resolve(asset) + const did = ddo.id + return { did, ddo } + } +}