{"version":3,"file":"index.mjs","names":[],"sources":["../src/generate.ts"],"sourcesContent":["import {\n  type GlobalOptions,\n  isString,\n  logError,\n  type OptionsExport,\n  setVerbose,\n} from '@orval/core';\n\nimport { generateSpec } from './generate-spec';\nimport { findConfigFile, loadConfigFile } from './utils/config';\nimport { normalizeOptions } from './utils/options';\nimport { startWatcher } from './utils/watcher';\n\nexport async function generate(\n  optionsExport?: string | OptionsExport,\n  workspace = process.cwd(),\n  options?: GlobalOptions,\n) {\n  setVerbose(!!options?.verbose);\n\n  if (!optionsExport || isString(optionsExport)) {\n    const configFilePath = findConfigFile(optionsExport);\n    const configFile = await loadConfigFile(configFilePath);\n\n    const configs = Object.entries(configFile);\n\n    let hasErrors = false;\n    for (const [projectName, config] of configs) {\n      const normalizedOptions = await normalizeOptions(\n        config,\n        workspace,\n        options,\n      );\n\n      if (options?.watch === undefined) {\n        try {\n          await generateSpec(workspace, normalizedOptions, projectName);\n        } catch (error) {\n          hasErrors = true;\n          logError(error, projectName);\n        }\n      } else {\n        const fileToWatch = isString(normalizedOptions.input.target)\n          ? normalizedOptions.input.target\n          : undefined;\n\n        await startWatcher(\n          options.watch,\n          async () => {\n            try {\n              await generateSpec(workspace, normalizedOptions, projectName);\n            } catch (error) {\n              logError(error, projectName);\n            }\n          },\n          fileToWatch,\n        );\n      }\n    }\n\n    if (hasErrors)\n      logError('One or more project failed, see above for details');\n\n    return;\n  }\n\n  const normalizedOptions = await normalizeOptions(\n    optionsExport,\n    workspace,\n    options,\n  );\n\n  if (options?.watch) {\n    await startWatcher(\n      options.watch,\n      async () => {\n        try {\n          await generateSpec(workspace, normalizedOptions);\n        } catch (error) {\n          logError(error);\n        }\n      },\n      normalizedOptions.input.target as string,\n    );\n  } else {\n    try {\n      await generateSpec(workspace, normalizedOptions);\n    } catch (error) {\n      logError(error);\n    }\n  }\n}\n"],"mappings":";;;;;;AAaA,eAAsB,SACpB,eACA,YAAY,QAAQ,KAAK,EACzB,SACA;AACA,YAAW,CAAC,CAAC,SAAS,QAAQ;AAE9B,KAAI,CAAC,iBAAiB,SAAS,cAAc,EAAE;EAE7C,MAAM,aAAa,MAAM,eADF,eAAe,cAAc,CACG;EAEvD,MAAM,UAAU,OAAO,QAAQ,WAAW;EAE1C,IAAI,YAAY;AAChB,OAAK,MAAM,CAAC,aAAa,WAAW,SAAS;GAC3C,MAAM,oBAAoB,MAAM,iBAC9B,QACA,WACA,QACD;AAED,OAAI,SAAS,UAAU,OACrB,KAAI;AACF,UAAM,aAAa,WAAW,mBAAmB,YAAY;YACtD,OAAO;AACd,gBAAY;AACZ,aAAS,OAAO,YAAY;;QAEzB;IACL,MAAM,cAAc,SAAS,kBAAkB,MAAM,OAAO,GACxD,kBAAkB,MAAM,SACxB;AAEJ,UAAM,aACJ,QAAQ,OACR,YAAY;AACV,SAAI;AACF,YAAM,aAAa,WAAW,mBAAmB,YAAY;cACtD,OAAO;AACd,eAAS,OAAO,YAAY;;OAGhC,YACD;;;AAIL,MAAI,UACF,UAAS,oDAAoD;AAE/D;;CAGF,MAAM,oBAAoB,MAAM,iBAC9B,eACA,WACA,QACD;AAED,KAAI,SAAS,MACX,OAAM,aACJ,QAAQ,OACR,YAAY;AACV,MAAI;AACF,SAAM,aAAa,WAAW,kBAAkB;WACzC,OAAO;AACd,YAAS,MAAM;;IAGnB,kBAAkB,MAAM,OACzB;KAED,KAAI;AACF,QAAM,aAAa,WAAW,kBAAkB;UACzC,OAAO;AACd,WAAS,MAAM"}