@stacksjs/launchpad
Version:
Like Homebrew, but faster.
4 lines (3 loc) • 1.47 kB
JavaScript
// @bun
import{Ya as J}from"./chunk-f8dcmgkp.js";import"./chunk-b9hx8gsj.js";import"./chunk-8pxdwzvm.js";import I from"fs";import K from"path";class C{raw;major;minor;patch;constructor(q){this.raw=q;let u=q.replace(/^v/,"").split(".");this.major=Number.parseInt(u[0]||"0",10),this.minor=Number.parseInt(u[1]||"0",10),this.patch=Number.parseInt(u[2]||"0",10)}toString(){return this.raw}}function N(q){if(!q||typeof q!=="string")return null;if(!q.match(/^v?\d+(\.\d+)?(\.\d+)?/))return null;return new C(q)}async function*W(){for(let q of[new J("/usr/local/pkgs"),J.home().join(".local/pkgs")]){if(!q.isDirectory())continue;let u=[q],z;while((z=u.pop())!==void 0)for await(let[A,{name:w,isDirectory:F,isSymlink:G}]of z.ls()){if(!F||G)continue;if(/^v\d+\./.test(w))yield A.string;else u.push(A)}}}async function X(){console.log("Checking for outdated packages..."),console.log("This feature is simplified in the current implementation.")}async function Y(q){let u=K.join(q,"pkgs");if(!I.existsSync(u))return[];let z=[],A=I.readdirSync(u,{withFileTypes:!0});for(let w of A){if(!w.isDirectory())continue;let F=K.join(u,w.name),G=I.readdirSync(F,{withFileTypes:!0});for(let B of G){if(!B.isDirectory()||!B.name.startsWith("v"))continue;let L=B.name.slice(1);try{let M=new C(L);z.push({project:w.name,version:M})}catch{console.warn(`Skipping invalid version: ${w.name}/${B.name}`)}}}return z}export{X as outdated,W as ls,Y as list};
export{C as v,N as w,W as x,X as y,Y as z};