Files
2024-07-29 16:01:38 -07:00

29 lines
744 B
Swift

//
// ExpoHLSDownloadModule.swift
// DoubleConversion
//
// Created by Hailey on 7/29/24.
//
import ExpoModulesCore
class ExpoHLSDownloadModule: Module {
public func definition() -> ModuleDefinition {
Name("ExpoHLSDownload")
AsyncFunction("downloadAsync") { (sourceUrl: URL, progressCb: JavaScriptFunction<Void>, promise: Promise) in
let hlsDownload = HLSDownload(sourceUrl: sourceUrl)
let downloadTask = Task {
let outUrl = await hlsDownload.download { (progress: Float) in
try? progressCb.call(progress)
}
promise.resolve(outUrl)
}
}
AsyncFunction("cancelDownloadAsync") { (sourceUrl: URL) in
DownloadManager.shared.cancel(url: sourceUrl)
}
}
}