bun-safe
Version:
Run scripts using Bun.js and perhaps install Bun first if necessary.
1 lines • 2.69 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","names":["child_process","has","execSync","stdio","e","install","script","encoding","console","error","toString","process","exit","bunSafe","args","options","Array","isArray","join","length","Error","defaults"],"sources":["../../src/index.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport * as child_process from 'child_process';\n\nconst has = () => {\n try {\n child_process.execSync('bun --version', { stdio: 'ignore' });\n return true;\n } catch (e) {\n return false;\n }\n};\n\nconst install = () => {\n try {\n const script = child_process.execSync('curl https://bun.sh/install', {\n encoding: 'utf8',\n });\n\n child_process.execSync(script, {\n stdio: 'inherit',\n });\n } catch (e: any) {\n console.error(`\\n> failed to install bun.js:\\n${e.toString()}`);\n process.exit(1);\n }\n};\n\nexport type BunSafeOptions = {\n encoding?: 'utf8' | 'buffer';\n stdio?: 'overlapped' | 'pipe' | 'ignore' | 'inherit';\n};\n\nexport function bunSafe<Options extends BunSafeOptions>(\n args: string[] | string,\n options?: Options,\n) {\n const script = Array.isArray(args) ? args.join(' ') : args;\n\n if (!script?.length) {\n throw new Error('Received empty arguments');\n }\n\n if (!has()) install();\n\n const defaults: any = {\n encoding: 'utf8',\n stdio: options?.encoding ? 'ignore' : 'inherit',\n };\n\n // @ts-ignore\n options = { ...defaults, ...options };\n\n return child_process.execSync(`bun ${script}`, options);\n}\n"],"mappings":"AAAA;;AAEA,OAAO,KAAKA,aAAa,MAAM,eAAe;AAE9C,MAAMC,GAAG,GAAGA,CAAA,KAAM;EAChB,IAAI;IACFD,aAAa,CAACE,QAAQ,CAAC,eAAe,EAAE;MAAEC,KAAK,EAAE;IAAS,CAAC,CAAC;IAC5D,OAAO,IAAI;EACb,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,OAAO,KAAK;EACd;AACF,CAAC;AAED,MAAMC,OAAO,GAAGA,CAAA,KAAM;EACpB,IAAI;IACF,MAAMC,MAAM,GAAGN,aAAa,CAACE,QAAQ,CAAC,6BAA6B,EAAE;MACnEK,QAAQ,EAAE;IACZ,CAAC,CAAC;IAEFP,aAAa,CAACE,QAAQ,CAACI,MAAM,EAAE;MAC7BH,KAAK,EAAE;IACT,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOC,CAAM,EAAE;IACfI,OAAO,CAACC,KAAK,CAAC,kCAAkCL,CAAC,CAACM,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC/DC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EACjB;AACF,CAAC;AAOD,OAAO,SAASC,OAAOA,CACrBC,IAAuB,EACvBC,OAAiB,EACjB;EACA,MAAMT,MAAM,GAAGU,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,GAAGA,IAAI,CAACI,IAAI,CAAC,GAAG,CAAC,GAAGJ,IAAI;EAE1D,IAAI,CAACR,MAAM,EAAEa,MAAM,EAAE;IACnB,MAAM,IAAIC,KAAK,CAAC,0BAA0B,CAAC;EAC7C;EAEA,IAAI,CAACnB,GAAG,CAAC,CAAC,EAAEI,OAAO,CAAC,CAAC;EAErB,MAAMgB,QAAa,GAAG;IACpBd,QAAQ,EAAE,MAAM;IAChBJ,KAAK,EAAEY,OAAO,EAAER,QAAQ,GAAG,QAAQ,GAAG;EACxC,CAAC;;EAED;EACAQ,OAAO,GAAG;IAAE,GAAGM,QAAQ;IAAE,GAAGN;EAAQ,CAAC;EAErC,OAAOf,aAAa,CAACE,QAAQ,CAAC,OAAOI,MAAM,EAAE,EAAES,OAAO,CAAC;AACzD","ignoreList":[]}