dotfiles

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

list-processes.js (1599B)


      1 "use strict";var p=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var O=(s,e)=>{for(var r in e)p(s,r,{get:e[r],enumerable:!0})},$=(s,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of I(e))!N.call(s,t)&&t!==r&&p(s,t,{get:()=>e[t],enumerable:!(o=w(e,t))||o.enumerable});return s};var v=s=>$(p({},"__esModule",{value:!0}),s);var R={};O(R,{default:()=>f});module.exports=v(R);var m=require("child_process");async function u(){return new Promise((s,e)=>{(0,m.exec)("ps -eo pid,ppid,pcpu,rss,comm",(r,o)=>{if(r!=null){e(r);return}let t=o.split(`
      2 `).map(n=>{let c=["","","","","",""],a=/(\d+)\s+(\d+)\s+(\d+[.|,]\d+)\s+(\d+)\s+(.*)/,[,l,P,h,y,i]=n.match(a)??c,g=i.match(/[^/]*[^/]*$/i)?.[0]??"",S=i.includes(".prefPane"),d=i.includes(".app/");return{id:parseInt(l),pid:parseInt(P),cpu:parseFloat(h),mem:parseInt(y),type:S?"prefPane":d?"app":"binary",path:i,processName:g,appName:d?i.match(/(?<=\/)[^/]+(?=\.app\/)/)?.[0]:void 0}}).filter(n=>n.processName!=="");s(t)})})}var x=(s,e="mem",r="desc")=>[...s].sort((o,t)=>{let n=o[e],c=t[e];if(n===c)return 0;if(n===void 0)return 1;if(c===void 0)return-1;let a=n<c?-1:1;return r==="desc"?-a:a}),B=(s,e)=>e?.length?s.filter(r=>{let o=`${r.path} ${r.processName} ${r.appName||""}`.toLowerCase();return e.some(t=>o.includes(t.toLowerCase()))}):s,F=(s,e)=>{if(s.length===0&&e?.length)throw new Error(`No processes found matching "${e.join(", ")}"`)};async function f(s){let e=await u(),r=B(e,s?.searchTerm);return F(r,s?.searchTerm),x(r,s?.sortBy,s?.sortOrder)}