UNPKG

wsemi

Version:

A support package for web developer.

66 lines (61 loc) 2.06 kB
import fs from 'fs' import fsGetFileXxHashCore from './fsGetFileXxHashCore.mjs' /** * 後端nodejs計算檔案xxHash64值 * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/fsGetFileXxHash.test.mjs Github} * @memberOf wsemi * @param {String} fp 輸入檔案路徑字串 * @param {Object} [opt={}] 輸入設定物件,預設{} * @param {Number} [opt.chunkSize=64*1024*1024] 輸入切片長度數字,單位位元,預設64*1024*1024(64mb) * @returns {Promise} 回傳Promise,resolve回傳檔案HASH值,reject代表回傳錯誤訊息 * @example * need test in nodejs. * * let test = async () => { * * let ms = [] * * let fdt = './_test_fsGetFileXxHash' * fsCreateFolder(fdt) //創建臨時任務資料夾 * * let fn = 't1.txt' * let fp = `${fdt}/abc/${fn}` * * fsWriteText(fp, 'xyz') * * let h1 = await fsGetFileXxHash(fp) * console.log('fsGetFileXxHash(64mb)', h1) * ms.push({ 'fsGetFileXxHash(64mb)': h1 }) * * let h2 = await fsGetFileXxHash(fp, { chunkSize: 16 * 1024 * 1024 }) * console.log('fsGetFileXxHash(16mb)', h2) * ms.push({ 'fsGetFileXxHash(16mb)': h2 }) * * let h3 = await fsGetFileXxHash(fp, { chunkSize: 4 * 1024 * 1024 }) * console.log('fsGetFileXxHash(4mb)', h3) * ms.push({ 'fsGetFileXxHash(4mb)': h3 }) * * fsDeleteFolder(fdt) //刪除臨時任務資料夾 * * console.log('ms', ms) * return ms * } * await test() * .catch((err) => { * console.log(err) * }) * // fsGetFileXxHash(64mb) feba48465b833ca1 * // fsGetFileXxHash(16mb) feba48465b833ca1 * // fsGetFileXxHash(4mb) feba48465b833ca1 * // ms [ * // { 'fsGetFileXxHash(64mb)': 'feba48465b833ca1' }, * // { 'fsGetFileXxHash(16mb)': 'feba48465b833ca1' }, * // { 'fsGetFileXxHash(4mb)': 'feba48465b833ca1' } * // ] * */ function fsGetFileXxHash(fp, opt = {}) { return fsGetFileXxHashCore(fp, { fs, ...opt }) } export default fsGetFileXxHash