{"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":[]}