@elbwalker/utils
Version:
Shared utils for walkerOS packages
1 lines • 1.46 kB
JavaScript
import{createHash as t}from"crypto";async function e(e,r){return(await async function(e){const r=t("sha256");return r.update(e),r.digest("hex")}(e)).slice(0,r)}var r={merge:!0,shallow:!0,extend:!0};function o(t={}){return function(t,e={},o={}){o={...r,...o};const n=Object.entries(e).reduce(((e,[r,n])=>{const s=t[r];return o.merge&&Array.isArray(s)&&Array.isArray(n)?e[r]=n.reduce(((t,e)=>t.includes(e)?t:[...t,e]),[...s]):(o.extend||r in t)&&(e[r]=n),e}),{});return o.shallow?{...t,...n}:(Object.assign(t,n),t)}({"Content-Type":"application/json; charset=utf-8"},t)}import*as n from"http";import*as s from"https";function a(t,e,r={}){const a=o(r.headers),i=function(t){return void 0===t||"string"==typeof t?t:JSON.stringify(t)}(e),u=r.method||"POST",c=r.timeout||5e3;return new Promise((e=>{const r=new URL(t),o="https:"===r.protocol?s:n,d={method:u,headers:a},f=o.request(r,d,(t=>{const r=[];t.on("data",(t=>{r.push(t)})),t.on("end",(()=>{const o=!!(t.statusCode&&t.statusCode>=200&&t.statusCode<300),n=Buffer.concat(r).toString(),s=(a=JSON.parse,i=()=>n,function(...t){try{return a(...t)}catch(t){if(!i)return;return i(t)}finally{u?.()}})(n);var a,i,u;e({ok:o,data:s,error:o?void 0:`${t.statusCode} ${t.statusMessage}`})}))}));f.on("error",(t=>{e({ok:!1,error:t.message})})),f.on("timeout",(()=>{f.destroy(),e({ok:!1,error:"Request timeout"})})),f.setTimeout(c),i&&f.write(i),f.end()}))}export{e as getHashNode,a as sendNode};//# sourceMappingURL=node.mjs.map