{"version":3,"file":"basic.mjs","sources":["../../src/compilers/basic.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { merge } from 'lodash';\n\nimport { reportDiagnostics } from '../utils/report-diagnostics';\nimport { resolveConfigOptions } from '../utils/resolve-config-options';\n\nexport interface ConfigOptions {\n  fileNames?: string[];\n  options?: ts.CompilerOptions;\n  ignoreDiagnostics?: boolean;\n}\n\n/**\n * Default TS -> JS Compilation for Strapi\n */\nexport function run(tsConfigPath: string, configOptions: ConfigOptions = {}) {\n  const { ignoreDiagnostics = false } = configOptions;\n  // Parse the tsconfig.json file & resolve the configuration options\n  const { fileNames, options, projectReferences } = resolveConfigOptions(tsConfigPath);\n\n  const compilerOptions = merge(options, configOptions.options);\n\n  if (ignoreDiagnostics) {\n    Object.assign(compilerOptions, { noEmit: false, noEmitOnError: false });\n  }\n\n  const program = ts.createProgram({\n    rootNames: configOptions.fileNames ? configOptions.fileNames : fileNames,\n    projectReferences,\n    options: compilerOptions,\n  });\n\n  const emitResults = program.emit();\n\n  const diagnostics = ts.sortAndDeduplicateDiagnostics(\n    ts.getPreEmitDiagnostics(program).concat(emitResults.diagnostics)\n  );\n\n  if (!ignoreDiagnostics && diagnostics.length > 0) {\n    reportDiagnostics(diagnostics);\n  }\n\n  // If the compilation failed and diagnostics are not ignored, exit early\n  if (!ignoreDiagnostics && emitResults.emitSkipped) {\n    throw new Error('TypeScript compilation failed');\n  }\n}\n"],"names":["run","tsConfigPath","configOptions","ignoreDiagnostics","fileNames","options","projectReferences","resolveConfigOptions","compilerOptions","merge","Object","assign","noEmit","noEmitOnError","program","ts","createProgram","rootNames","emitResults","emit","diagnostics","sortAndDeduplicateDiagnostics","getPreEmitDiagnostics","concat","length","reportDiagnostics","emitSkipped","Error"],"mappings":";;;;;AAYA;;AAEC,IACM,SAASA,GAAAA,CAAIC,YAAoB,EAAEC,aAAAA,GAA+B,EAAE,EAAA;AACzE,IAAA,MAAM,EAAEC,iBAAAA,GAAoB,KAAK,EAAE,GAAGD,aAAAA;;IAEtC,MAAM,EAAEE,SAAS,EAAEC,OAAO,EAAEC,iBAAiB,EAAE,GAAGC,oBAAAA,CAAqBN,YAAAA,CAAAA;AAEvE,IAAA,MAAMO,eAAAA,GAAkBC,KAAAA,CAAMJ,OAAAA,EAASH,aAAAA,CAAcG,OAAO,CAAA;AAE5D,IAAA,IAAIF,iBAAAA,EAAmB;QACrBO,MAAAA,CAAOC,MAAM,CAACH,eAAAA,EAAiB;YAAEI,MAAAA,EAAQ,KAAA;YAAOC,aAAAA,EAAe;AAAM,SAAA,CAAA;AACvE,IAAA;IAEA,MAAMC,OAAAA,GAAUC,EAAAA,CAAGC,aAAa,CAAC;AAC/BC,QAAAA,SAAAA,EAAWf,aAAAA,CAAcE,SAAS,GAAGF,aAAAA,CAAcE,SAAS,GAAGA,SAAAA;AAC/DE,QAAAA,iBAAAA;QACAD,OAAAA,EAASG;AACX,KAAA,CAAA;IAEA,MAAMU,WAAAA,GAAcJ,QAAQK,IAAI,EAAA;IAEhC,MAAMC,WAAAA,GAAcL,EAAAA,CAAGM,6BAA6B,CAClDN,EAAAA,CAAGO,qBAAqB,CAACR,OAAAA,CAAAA,CAASS,MAAM,CAACL,WAAAA,CAAYE,WAAW,CAAA,CAAA;AAGlE,IAAA,IAAI,CAACjB,iBAAAA,IAAqBiB,WAAAA,CAAYI,MAAM,GAAG,CAAA,EAAG;QAChDC,iBAAAA,CAAkBL,WAAAA,CAAAA;AACpB,IAAA;;AAGA,IAAA,IAAI,CAACjB,iBAAAA,IAAqBe,WAAAA,CAAYQ,WAAW,EAAE;AACjD,QAAA,MAAM,IAAIC,KAAAA,CAAM,+BAAA,CAAA;AAClB,IAAA;AACF;;;;"}