UNPKG

@freik/node-utils

Version:

My personal set of utilities for NodeJS

3 lines (2 loc) 1.42 kB
var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var F=(s,t)=>{for(var p in t)g(s,p,{get:t[p],enumerable:!0})},E=(s,t,p,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of G(t))!h.call(s,r)&&r!==p&&g(s,r,{get:()=>t[r],enumerable:!(u=x(t,r))||u.enumerable});return s};var k=s=>E(g({},"__esModule",{value:!0}),s);var b={};F(b,{files:()=>N});module.exports=k(b);var o=require("@freik/typechk"),d=require("node:child_process"),m=require("node:util");const R=(0,m.promisify)(d.exec),w=(0,o.chkFieldType)("groups",(0,o.chkObjectOf)((0,o.chkOneOf)(o.isFunction,o.isRegex)));async function N(s){const t=s||{},p=t.filter==="all"?"git ls-files":t.filter==="staged"?"git diff --diff-filter=ACMR --cached --name-only":"git diff HEAD --diff-filter=d --name-only",u=t.cwd?{encoding:"utf8",cwd:t.cwd}:{encoding:"utf8"},{stdout:r}=await R(p,u),l=r.toString().split(` `).slice(0,-1);if(w(t)){const f=t.groups,a=Object.keys(f),y=new Map([...a.map(e=>[e,f[e]])]),c={groups:new Map(a.map(e=>[e,[]])),remaining:[]};return l.forEach(e=>{let n="";if(y.forEach((i,O)=>{n===""&&((0,o.isRegex)(i)&&i.test(e)||(0,o.isFunction)(i)&&i(e))&&(n=O)}),n==="")c.remaining.push(e);else{const i=c.groups.get(n);i&&i.push(e)}}),[...c.groups.keys()].filter(e=>{const n=c.groups.get(e);return!n||n.length===0}).forEach(e=>c.groups.delete(e)),c}else return l}