import ensureBins from './ensureBins.mjs'
//fnExe, kriging執行檔名稱
let fnExe = 'kriging.exe'
/**
* 取得kriging.exe,回傳kriging.exe的絕對路徑
*
* 經ensureBins依bin/manifest.json之SHA-256與大小校驗後取得(快取、鏡像、GitHub釘選提交),首次使用才下載,安裝時不下載,
* 離線與內網之用法(W_BIN_CACHE、W_BIN_MIRROR、W_BIN_OFFLINE)見README〈外部執行檔〉
*
* 供w-kriging自身與其他依賴w-kriging的套件調用,無須各自實作偵測與下載邏輯
*
* 因kriging.exe只能用於Windows作業系統,故調用前須自行檢核作業系統
*
* @deprecated 請改用ensureBins(w-kriging/src/ensureBins.mjs,或WKriging.ensureBins),本函數僅為既有深層匯入者保留
* @returns {Promise} 回傳Promise,resolve回傳執行檔路徑物件,內含fpExe為kriging.exe的絕對路徑字串,reject回傳帶code之Error(E_OFFLINE_MISSING、E_HASH_MISMATCH等)
* @example
* import autoDownloadFiles from 'w-kriging/src/autoDownloadFiles.mjs'
*
* async function test() {
*
* //autoDownloadFiles, 無快取時自動取得, 取得或校驗失敗則reject
* let { fpExe } = await autoDownloadFiles()
*
* console.log('fpExe', fpExe)
* // fpExe D:\xxx\node_modules\w-kriging\bin-cache\<sha256>\kriging.exe
* }
* test()
* .catch((err) => {
* console.log('catch', err)
* })
*
*/
async function autoDownloadFiles() {
//ensureBins, 併發呼叫由其共用同一次取得
let bins = await ensureBins({ names: fnExe })
//fpExe
let fpExe = bins[fnExe]
return {
fpExe,
}
}
export default autoDownloadFiles