{"version":3,"file":"transpileTSToCJS.cjs","names":["getPackageJsonPath","getLoader","buildSync","build"],"sources":["../../../src/loadExternalFile/transpileTSToCJS.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { dirname, extname, join } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport { type BuildOptions, type BuildResult, build, buildSync } from 'esbuild';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\nimport { getLoader } from './bundleFile';\n\nexport type TranspileOptions = BuildOptions & {\n  /**\n   * Optional custom esbuild instance to use for transpilation.\n   * Useful in environments (e.g. VS Code extensions) where the bundled\n   * esbuild binary may not match the host platform.\n   * When provided, its `buildSync`/`build` methods are used instead of\n   * the ones imported from the `esbuild` package.\n   */\n  esbuildInstance?: typeof import('esbuild');\n};\n\nconst getTsConfigPath = (filePath: string): string | undefined => {\n  const tsconfigPath = join(\n    getPackageJsonPath(dirname(filePath)).baseDir,\n    'tsconfig.json'\n  );\n\n  // Only return the tsconfig path if it exists\n  return existsSync(tsconfigPath) ? tsconfigPath : undefined;\n};\n\nconst getTransformationOptions = (filePath: string): BuildOptions => ({\n  loader: {\n    '.js': 'js',\n    '.jsx': 'jsx',\n    '.mjs': 'js',\n    '.ts': 'ts',\n    '.tsx': 'tsx',\n    '.cjs': 'js',\n    '.json': 'json',\n    '.md': 'text',\n    '.mdx': 'text',\n  },\n  format: 'cjs',\n  target: 'node20',\n  platform: 'node',\n  write: false,\n  packages: 'external',\n  bundle: true,\n  tsconfig: getTsConfigPath(filePath),\n  define: {\n    'import.meta.url': JSON.stringify(pathToFileURL(filePath).href),\n    'import.meta.env': 'process.env',\n  },\n});\n\nexport const transpileTSToCJSSync = (\n  code: string,\n  filePath: string,\n  options?: TranspileOptions\n): string | undefined => {\n  const extension = extname(filePath);\n  const loader = getLoader(extension);\n\n  const { esbuildInstance, ...buildOptions } = options ?? {};\n  const esbuildBuildSync = esbuildInstance?.buildSync ?? buildSync;\n\n  const moduleResult: BuildResult = esbuildBuildSync({\n    stdin: {\n      contents: code,\n      loader,\n      resolveDir: dirname(filePath), // Add resolveDir to resolve imports relative to the file's location\n      sourcefile: filePath, // Add sourcefile for better error messages\n    },\n    ...getTransformationOptions(filePath),\n    ...buildOptions,\n  });\n\n  const moduleResultString = moduleResult.outputFiles?.[0].text;\n\n  return moduleResultString;\n};\n\nexport const transpileTSToCJS = async (\n  code: string,\n  filePath: string,\n  options?: TranspileOptions\n): Promise<string | undefined> => {\n  const extension = extname(filePath);\n  const loader = getLoader(extension);\n\n  const { esbuildInstance, ...buildOptions } = options ?? {};\n  const esbuildBuild = esbuildInstance?.build ?? build;\n\n  const moduleResult: BuildResult = await esbuildBuild({\n    stdin: {\n      contents: code,\n      loader,\n      resolveDir: dirname(filePath), // Add resolveDir to resolve imports relative to the file's location\n      sourcefile: filePath, // Add sourcefile for better error messages\n    },\n    ...getTransformationOptions(filePath),\n    ...buildOptions,\n  });\n\n  const moduleResultString = moduleResult.outputFiles?.[0].text;\n\n  return moduleResultString;\n};\n"],"mappings":";;;;;;;;;;AAkBA,MAAM,mBAAmB,aAAyC;CAChE,MAAM,mCACJA,2EAA2B,SAAS,CAAC,CAAC,SACtC,gBACD;AAGD,gCAAkB,aAAa,GAAG,eAAe;;AAGnD,MAAM,4BAA4B,cAAoC;CACpE,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CACD,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,OAAO;CACP,UAAU;CACV,QAAQ;CACR,UAAU,gBAAgB,SAAS;CACnC,QAAQ;EACN,mBAAmB,KAAK,sCAAwB,SAAS,CAAC,KAAK;EAC/D,mBAAmB;EACpB;CACF;AAED,MAAa,wBACX,MACA,UACA,YACuB;CAEvB,MAAM,SAASC,qEADW,SACQ,CAAC;CAEnC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,WAAW,EAAE;AAgB1D,SAfyB,iBAAiB,aAAaC,mBAEJ;EACjD,OAAO;GACL,UAAU;GACV;GACA,mCAAoB,SAAS;GAC7B,YAAY;GACb;EACD,GAAG,yBAAyB,SAAS;EACrC,GAAG;EACJ,CAEsC,CAAC,cAAc,GAAG;;AAK3D,MAAa,mBAAmB,OAC9B,MACA,UACA,YACgC;CAEhC,MAAM,SAASD,qEADW,SACQ,CAAC;CAEnC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,WAAW,EAAE;AAgB1D,SAF2B,OAbN,iBAAiB,SAASE,eAEM;EACnD,OAAO;GACL,UAAU;GACV;GACA,mCAAoB,SAAS;GAC7B,YAAY;GACb;EACD,GAAG,yBAAyB,SAAS;EACrC,GAAG;EACJ,CAAC,EAEsC,cAAc,GAAG"}