@signiant/media-shuttle-sdk-base
Version:
The base parent sdk behind other media shuttle sdks (e.g. media-shuttle-sdk)
64 lines • 2.98 kB
TypeScript
import Transfer from './Transfer';
import TransferEventType from '../enums/TransferEventType';
import TransferEventCallback from './events/TransferEventCallback';
/**
* The Download interface, extension of {@link Transfer}
*/
export default interface Download extends Transfer {
/**
* Subscribe to a transfer event. Note that all subscriptions will automatically be removed once a
* download has completed.
*
* @example
* ```
* addSubscriptions(download: Download) {
* const listener = (data: TransferEventCallbackData): Promise<void> => {
* const { transfer, transferEvent }: TransferEventCallbackData = data;
* const { type, eventData }: TransferEvent = transferEvent;
* switch (type) {
* case TransferEventType.TRANSFER_STARTED:
* //Cast to the associated type of event data
* const progressData: TransferProgressEventData = <TransferProgressEventData>eventData;
* // process as appropriate
* break;
* case TransferEventType.TRANSFER_COMPLETED:
* const completedData: TransferCompletedEventData = <TransferCompletedEventData>eventData;
* // process as appropriate
* break;
* }
* }
* download.subscribe(TransferEventType.TRANSFER_PROGRESS, startListener);
* download.subscribe(TransferEventType.TRANSFER_COMPLETED, startListener);
* }
* ```
*
* @param eventType The type of event we are subscribing to.
* @param listener The listener we wish to assign to an event.
*/
subscribe(eventType: TransferEventType, listener: TransferEventCallback<Download>): void;
/**
* Unsubscribe from a transfer event
*
* @param eventType The type of event we are unsubscribing from.
* @param listener The listener we wish to unsubscribe.
* @returns true if the listener was present and unsubscribed, false if there was no match for the
* eventType / listener combination.
*/
unsubscribe(eventType: TransferEventType, listener?: TransferEventCallback<Download>): boolean;
/**
* Opens destination folder chosen during the download initialization.
*
* This simplifies the process of finding the downloaded file or files on transfer
* completion but is otherwise not required.
*
* This launches a finder window for Mac or an explorer window for windows
* @returns A Promise which will resolve when the destination folder opens in a file browser.
*/
openDestinationFolder(): Promise<void>;
/**
* Prompts for the destination folder for the downloaded files. This launches a native folder chooser.
* @returns A Promise which will resolve when the destination folder is chosen in native file chooser window
*/
selectDestinationFolder(): Promise<void>;
}
//# sourceMappingURL=Download.d.ts.map