{"version":3,"file":"tsconfig.mjs","sources":["../../../../src/cli/utils/tsconfig.ts"],"sourcesContent":["import os from 'os';\nimport type ts from 'typescript';\nimport type { Logger } from './logger';\n\n// Lazy: defer `typescript` (~115 ms) until a CLI command actually loads tsconfig\nlet lazyTs: typeof ts | undefined;\nconst tsLib = (): typeof ts => {\n  if (!lazyTs) {\n    // eslint-disable-next-line @typescript-eslint/no-var-requires\n    lazyTs = require('typescript');\n  }\n  return lazyTs as typeof ts;\n};\n\ninterface TsConfig {\n  config: ts.ParsedCommandLine;\n  path: string;\n}\n\n/**\n * @description Load a tsconfig.json file and return the parsed config.\n *\n * @internal\n */\nconst loadTsConfig = ({\n  cwd,\n  path,\n  logger,\n}: {\n  cwd: string;\n  path: string;\n  logger: Logger;\n}): TsConfig | undefined => {\n  const tsApi = tsLib();\n  const configPath = tsApi.findConfigFile(cwd, tsApi.sys.fileExists, path);\n\n  if (!configPath) {\n    return undefined;\n  }\n\n  const configFile = tsApi.readConfigFile(configPath, tsApi.sys.readFile);\n\n  const parsedConfig = tsApi.parseJsonConfigFileContent(configFile.config, tsApi.sys, cwd);\n\n  logger.debug(`Loaded user TS config:`, os.EOL, parsedConfig);\n\n  return {\n    config: parsedConfig,\n    path: configPath,\n  };\n};\n\nexport { loadTsConfig };\nexport type { TsConfig };\n"],"names":["lazyTs","tsLib","require","loadTsConfig","cwd","path","logger","tsApi","configPath","findConfigFile","sys","fileExists","undefined","configFile","readConfigFile","readFile","parsedConfig","parseJsonConfigFileContent","config","debug","os","EOL"],"mappings":";;AAIA;AACA,IAAIA,MAAAA;AACJ,MAAMC,KAAAA,GAAQ,IAAA;AACZ,IAAA,IAAI,CAACD,MAAAA,EAAQ;;AAEXA,QAAAA,MAAAA,GAASE,OAAAA,CAAQ,YAAA,CAAA;AACnB,IAAA;IACA,OAAOF,MAAAA;AACT,CAAA;AAOA;;;;IAKA,MAAMG,eAAe,CAAC,EACpBC,GAAG,EACHC,IAAI,EACJC,MAAM,EAKP,GAAA;AACC,IAAA,MAAMC,KAAAA,GAAQN,KAAAA,EAAAA;IACd,MAAMO,UAAAA,GAAaD,MAAME,cAAc,CAACL,KAAKG,KAAAA,CAAMG,GAAG,CAACC,UAAU,EAAEN,IAAAA,CAAAA;AAEnE,IAAA,IAAI,CAACG,UAAAA,EAAY;QACf,OAAOI,SAAAA;AACT,IAAA;IAEA,MAAMC,UAAAA,GAAaN,MAAMO,cAAc,CAACN,YAAYD,KAAAA,CAAMG,GAAG,CAACK,QAAQ,CAAA;IAEtE,MAAMC,YAAAA,GAAeT,MAAMU,0BAA0B,CAACJ,WAAWK,MAAM,EAAEX,KAAAA,CAAMG,GAAG,EAAEN,GAAAA,CAAAA;IAEpFE,MAAAA,CAAOa,KAAK,CAAC,CAAC,sBAAsB,CAAC,EAAEC,EAAAA,CAAGC,GAAG,EAAEL,YAAAA,CAAAA;IAE/C,OAAO;QACLE,MAAAA,EAAQF,YAAAA;QACRX,IAAAA,EAAMG;AACR,KAAA;AACF;;;;"}