Interface: AssetLibrary
High-level asset library abstraction used by @twick/video-editor and @twick/studio. Implementations may back this with:
- Local IndexedDB (BrowserMediaManager)
- Twick Cloud asset services
- Host application backends (Next.js / Node / serverless)
The interface is intentionally minimal and provider-agnostic so that Studio and the editor do not need to know about individual vendors like Pexels or Unsplash.
Table of contents
Methods
Methods
listAssets
▸ listAssets(params): Promise<AssetPaginated<MediaItem>>
List or search assets from the unified library.
- For source='user', this should return user-owned assets.
- For source='public', this should fan out to one or more public providers.
Parameters
| Name | Type |
|---|---|
params | AssetListParams |
Returns
Promise<AssetPaginated<MediaItem>>
Defined in
packages/video-editor/src/helpers/asset-library.ts:57
getAsset
▸ getAsset(id): Promise<null | MediaItem>
Fetch a single asset by id, regardless of source.
Parameters
| Name | Type |
|---|---|
id | string |
Returns
Promise<null | MediaItem>
Defined in
packages/video-editor/src/helpers/asset-library.ts:60
uploadAsset
▸ uploadAsset(file, options?): Promise<MediaItem>
Upload a new user asset. Implementations are free to use browser uploads, presigned URLs, or any other storage strategy; the resulting MediaItem must be fully usable by the editor (url + type).
Parameters
| Name | Type | Description |
|---|---|---|
file | File | - |
options? | Object | - |
options.type? | MediaType | - |
options.metadata? | Record<string, unknown> | Optional metadata the caller wants to persist (e.g. user-provided tags or attribution notes). |
Returns
Promise<MediaItem>
Defined in
packages/video-editor/src/helpers/asset-library.ts:68
deleteAsset
▸ deleteAsset(id): Promise<void>
Delete a user asset. Public/provider assets are read-only.
Parameters
| Name | Type |
|---|---|
id | string |
Returns
Promise<void>
Defined in
packages/video-editor/src/helpers/asset-library.ts:81
listPublicProviders
▸ listPublicProviders(): Promise<AssetProviderConfig[]>
Discover which public providers are available in the current environment (and their capabilities).
Returns
Promise<AssetProviderConfig[]>