azion
Version:
Azion Packages for Edge Computing.
2 lines (1 loc) • 4.61 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("fs"),g=require("path"),_=require("child_process"),w=require("signale");var S=typeof document<"u"?document.currentScript:null;function P(e,n,r){const i=g.resolve(e),t=g.resolve(n);if(i===t)return;p.existsSync(t)||p.mkdirSync(t,{recursive:!0});const s=p.readdirSync(i);for(const o of s){const f=g.join(i,o),m=g.join(t,o);r&&r.length>0&&r.includes(o)||m.startsWith(f)||(p.lstatSync(f).isDirectory()?P(f,m):p.copyFileSync(f,m))}}async function x(e,{scope:n="Azion",verbose:r=!1,interactive:i=!1}={}){const t=new w.Signale({interactive:!0,scope:n});return new Promise((s,o)=>{const f=e.split(" "),m=f.shift();let v="",h="";const b=_.spawn(m,f,{shell:!0,stdio:i?"inherit":"pipe"});i||(b.stdout?.on("data",a=>{const d=a.toString();v+=d,r&&t.info(d)}),b.stderr?.on("data",a=>{const d=a.toString();h+=d,r&&(d.toLowerCase().includes("error")?t.error(d):t.info(d))}),b.on("error",a=>{o(a)})),b.on("close",a=>{a===0?s({stdout:v,stderr:h}):o(new Error(`Command '${e}' failed with code ${a}`))}),b.on("exit",a=>{a===0?s({stdout:v,stderr:h}):o(new Error(`Command '${e}' failed with code ${a}`))})})}const E=process.env.CLEAN_OUTPUT_MODE==="true",T={displayScope:!1,displayBadge:!1,displayDate:!1,displayFilename:!1,displayLabel:!1,displayTimestamp:!1,underlineLabel:!1,underlineMessage:!1,underlinePrefix:!1,underlineSuffix:!1,uppercaseLabel:!1},u=(e={})=>{const n=new w.Signale({...e});return E&&n.config(T),Object.assign(n,{breakInteractiveChain:()=>console.log()})},c={deployed:{badge:"🚀",color:"green",label:"forged",logLevel:"info"},option:{badge:"📦",color:"green",label:"",logLevel:"info"}},l=(e="Azion")=>new w.Signale({interactive:!1,scope:e,types:c});E&&l().config(T);const k=(e="Azion")=>({...l(e),interactive:{...u({interactive:!0,scope:[e],types:c})},server:{...l(e).scope(e,"Server"),interactive:u({interactive:!0,scope:[e,"Server"],types:c})},runtime:{...l(e).scope(e,"Runtime"),interactive:u({interactive:!0,scope:[e,"Runtime"],types:c})},prebuild:{...l(e).scope(e,"Pre-Build"),interactive:u({interactive:!0,scope:[e,"Pre-Build"],types:c})},build:{...l(e).scope(e,"Build"),interactive:u({interactive:!0,scope:[e,"Build"],types:c})},postbuild:{...l(e).scope(e,"Post-Build"),interactive:u({interactive:!0,scope:[e,"Post-build"],types:c})},storage:{...l(e).scope(e,"Storage"),interactive:u({interactive:!0,scope:[e,"Storage"],types:c})},bindings:{...l(e).scope(e,"Bindings"),interactive:u({interactive:!0,scope:[e,"Bindings"],types:c})},manifest:{...l(e).scope(e,"IaC"),interactive:u({interactive:!0,scope:[e,"IaC"],types:c})}}),A={...k(),globalScope:e=>({...k(e)})},C=process.platform==="win32";function R(e=typeof document>"u"?require("url").pathToFileURL(__filename).href:S&&S.tagName.toUpperCase()==="SCRIPT"&&S.src||new URL("node.cjs",document.baseURI).href,n="bundler"){const r=new RegExp(`(.*${n})(.*)`),i=e.match(r);let t=i?i[1]:"";if(e.includes("edge-functions")&&n==="bundler"){const s=new RegExp("(.*edge-functions)(.*)"),o=e.match(s);t=o?o[1]:t}return C&&(t=new URL(t).pathname,t.startsWith("/")&&(t=t.slice(1))),C||(t=t.replace("file://","")),t}const U={yarn:{fileName:"yarn.lock",pmType:"yarn"},npm:{fileName:"package-lock.json",pmType:"npm"},pnpm:{fileName:"pnpm-lock.yaml",pmType:"pnpm"}},$="npx",B=async e=>{try{return await p.promises.access(e),!0}catch{return!1}},y=new Map,L=async e=>{const n=`has_global_${e}`;return y.has(n)?y.get(n):new Promise(r=>{_.exec(`${e} --version`,(i,t)=>{const s=!i&&/^\d+\.\d+\.\d+$/.test(t.trim());y.set(n,s),r(s)})})},D=async(e=".")=>{const n=`lockfile_${e}`;if(y.has(n))return y.get(n);const i=(await Promise.all(Object.values(U).map(async({fileName:s,pmType:o})=>({exists:await B(g.resolve(e,s)),pmType:o})))).find(({exists:s})=>s),t=i?i.pmType:null;return y.set(n,t),t},O=async({cwd:e}={})=>{const n=await D(e);if(n)return n;const[r,i]=await Promise.all([L("yarn"),L("pnpm")]);return r?"yarn":i?"pnpm":$};function j(e){if(!e||e===""||e===" ")throw new Error("Invalid package name!");const n=g.join(process.cwd(),"package.json"),r=p.readFileSync(n,"utf8"),i=JSON.parse(r);if(!i.dependencies||!i.dependencies[e])throw new Error(`'${e}' not detected in project dependencies!`);return i.dependencies[e]}const F=Object.freeze(Object.defineProperty({__proto__:null,copyDirectory:P,exec:x,feedback:A,getAbsoluteDirPath:R,getPackageManager:O,getPackageVersion:j},Symbol.toStringTag,{value:"Module"}));exports.copyDirectory=P;exports.exec=x;exports.feedback=A;exports.getAbsoluteDirPath=R;exports.getPackageManager=O;exports.getPackageVersion=j;exports.nodeUtils=F;