UNPKG

wsemi

Version:

A support package for web developer.

65 lines (60 loc) 2.19 kB
import fs from 'fs' import crypto from 'crypto' import fsGetFileBasicHashCore from './fsGetFileBasicHashCore.mjs' /** * 後端nodejs計算檔案HASH值 * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/fsGetFileBasicHash.test.mjs Github} * @memberOf wsemi * @param {String} fp 輸入檔案路徑字串 * @param {Object} [opt={}] 輸入設定物件,預設{} * @param {String} [opt.type='sha512'] 輸入計算HASH方法,預設'sha512' * @returns {Promise} 回傳Promise,resolve回傳檔案HASH值,reject代表回傳錯誤訊息 * @example * need test in nodejs. * * let test = async () => { * * let ms = [] * * let fdt = './_test_fsGetFileBasicHash' * fsCreateFolder(fdt) //創建臨時任務資料夾 * * let fn = 't1.txt' * let fp = `${fdt}/abc/${fn}` * * fsWriteText(fp, 'xyz') * * let h1 = await fsGetFileBasicHash(fp) * console.log('fsGetFileBasicHash(sha512)', h1) * ms.push({ 'fsGetFileBasicHash(sha512)': h1 }) * * let h2 = await fsGetFileBasicHash(fp, { type: 'sha256' }) * console.log('fsGetFileBasicHash(sha256)', h2) * ms.push({ 'fsGetFileBasicHash(sha256)': h2 }) * * fsDeleteFolder(fdt) //刪除臨時任務資料夾 * * console.log('ms', ms) * return ms * } * await test() * .catch((err) => { * console.log(err) * }) * // fsGetFileBasicHash(sha512) 4a3ed8147e37876adc8f76328e5abcc1b470e6acfc18efea0135f983604953a58e183c1a6086e91ba3e821d926f5fdeb37761c7ca0328a963f5e92870675b728 * // fsGetFileBasicHash(sha256) 3608bca1e44ea6c4d268eb6db02260269892c0b42b86bbf1e77a6fa16c3c9282 * // ms [ * // { * // 'fsGetFileBasicHash(sha512)': '4a3ed8147e37876adc8f76328e5abcc1b470e6acfc18efea0135f983604953a58e183c1a6086e91ba3e821d926f5fdeb37761c7ca0328a963f5e92870675b728' * // }, * // { * // 'fsGetFileBasicHash(sha256)': '3608bca1e44ea6c4d268eb6db02260269892c0b42b86bbf1e77a6fa16c3c9282' * // } * // ] * */ function fsGetFileBasicHash(fp, opt = {}) { return fsGetFileBasicHashCore(fp, { fs, crypto, ...opt }) } export default fsGetFileBasicHash