{"version":3,"file":"generate-processor-DBtTkgo5.mjs","sources":["../src/services/generate-processor.ts"],"sourcesContent":["import {\n  detectFeatures,\n  generateAllProcessors,\n  generateProcessor,\n  syncFeatureDependencies,\n} from \"@powerhousedao/codegen\";\nimport {\n  buildTsMorphProject,\n  getProcessorMetadata,\n} from \"@powerhousedao/codegen/utils\";\nimport {\n  extractProcessorDocuments,\n  generateProcessorFromDocument,\n  getDocument,\n  saveSpec,\n} from \"@powerhousedao/vetra/codegen\";\nimport type { ProcessorModuleDocument } from \"@powerhousedao/vetra/document-models/processor-module\";\nimport { dirname } from \"node:path\";\nimport type { GenerateProcessorArgs } from \"../types.js\";\nimport { installAddedDependencies } from \"../utils/install-added-dependencies.js\";\n\nexport async function startGenerateProcessor(\n  args: GenerateProcessorArgs,\n  projectDir: string,\n) {\n  const {\n    name: processorName,\n    type: processorType,\n    apps: processorApps,\n    documentTypes,\n    document,\n    dir,\n    all,\n    extract,\n    debug,\n  } = args;\n  if (debug) {\n    console.log({ args });\n  }\n  const project = buildTsMorphProject(projectDir);\n  if (extract) {\n    const docs = extractProcessorDocuments(project);\n    for (const doc of docs) {\n      const path = await saveSpec(doc, projectDir);\n      console.log(`Wrote ${path}`);\n    }\n    return;\n  }\n  if (all) {\n    await generateAllProcessors(project);\n  } else if (document) {\n    const doc = (await getDocument(document)) as ProcessorModuleDocument;\n    await generateProcessorFromDocument(doc, project);\n  } else if (processorName) {\n    await generateProcessor(\n      {\n        processorName,\n        processorApps,\n        processorType,\n        documentTypes,\n      },\n      project,\n    );\n  } else if (dir) {\n    const processorDirName = dirname(dir);\n    const processorArgs = getProcessorMetadata(project, processorDirName);\n    await generateProcessor(processorArgs, project);\n  } else {\n    console.log(\n      \"Please specify one of `name`, `document`, `dir`, `all`, or `extract`.\",\n    );\n    return;\n  }\n  await project.save();\n  const added = await syncFeatureDependencies(\n    detectFeatures(projectDir),\n    projectDir,\n  );\n  await installAddedDependencies(added, projectDir, args.skipInstall);\n}\n"],"names":[],"mappings":";;;;;;;;AAqBA,eAAsB,uBACpB,MACA,YACA;CACA,MAAM,EACJ,MAAM,eACN,MAAM,eACN,MAAM,eACN,eACA,UACA,KACA,KACA,SACA,UACE;CACJ,IAAI,OACF,QAAQ,IAAI,EAAE,KAAK,CAAC;CAEtB,MAAM,UAAU,oBAAoB,UAAU;CAC9C,IAAI,SAAS;EACX,MAAM,OAAO,0BAA0B,OAAO;EAC9C,KAAK,MAAM,OAAO,MAAM;GACtB,MAAM,OAAO,MAAM,SAAS,KAAK,UAAU;GAC3C,QAAQ,IAAI,SAAS,MAAM;EAC7B;EACA;CACF;CACA,IAAI,KACF,MAAM,sBAAsB,OAAO;MAC9B,IAAI,UAAU;EACnB,MAAM,MAAO,MAAM,YAAY,QAAQ;EACvC,MAAM,8BAA8B,KAAK,OAAO;CAClD,OAAO,IAAI,eACT,MAAM,kBACJ;EACE;EACA;EACA;EACA;CACF,GACA,OACF;MACK,IAAI,KAAK;EACd,MAAM,mBAAmB,QAAQ,GAAG;EACpC,MAAM,gBAAgB,qBAAqB,SAAS,gBAAgB;EACpE,MAAM,kBAAkB,eAAe,OAAO;CAChD,OAAO;EACL,QAAQ,IACN,uEACF;EACA;CACF;CACA,MAAM,QAAQ,KAAK;CACnB,MAAM,QAAQ,MAAM,wBAClB,eAAe,UAAU,GACzB,UACF;CACA,MAAM,yBAAyB,OAAO,YAAY,KAAK,WAAW;AACpE","debug_id":"4c9267c1-f9f5-5d39-a420-380970da035c"}