UNPKG

ts-shasum

Version:

Compute and check SHA256 message digest.

11 lines (8 loc) 1.06 kB
/** * Version: 1.2.0 * * Copyright (c) 2024 kjxbyz. All rights reserved. */ import{globSync as u}from"glob";import{createHash as c}from"node:crypto";import{createReadStream as f,writeFileSync as h,readFileSync as g}from"node:fs";var y=p;async function O(i,r,t="sha256",e,n){let s=Object.fromEntries((await p(i,t,e,n)).map(([o,a])=>[a,o]));return r.reduce((o,[a,l])=>(o.push([l,a==s[l]]),o),[])}async function p(i,r="sha256",t,e){return await Promise.all((await F(i)).map(async n=>[await d(n,r,t,e),n]))}function P(i,r,t){let e=r.map(([n,s])=>`${n} ${s}`);h(i,e.join(` `),t)}function w(i,r,t){let e=g(i,r);return Buffer.isBuffer(e)&&(e=e.toString(t)),e?.split(` `)?.reduce((n,s)=>(n.push(s.split(" ")),n),[])||[]}function d(i,r,t,e){return new Promise(function(n,s){let o=c(r,t),a=f(i,e);a.on("readable",()=>{let l=a.read();l?o.update(l):n(o.digest("hex"))}),a.on("error",l=>{s(l)})})}function F(i){return new Promise(function(r,t){try{let e=u(i,{});r(e)}catch(e){t(e)}})}export{y as default,w as readFromFile,p as shasum,O as verify,P as writeToFile};