{
  "version": 3,
  "sources": ["../../../src/cdc/reactor.ts"],
  "sourcesContent": ["import type {\n  ChangeDataCaptureReactorConfig,\n  Model,\n} from '@code-like-a-carpenter/foundation-intermediate-representation';\n\nimport type {Config} from '../config.ts';\nimport {combineFragments} from '../fragments/combine-fragments.ts';\nimport type {ServerlessApplicationModel} from '../types.ts';\n\nimport {makeHandler} from './handler.ts';\n\n/** Generates CDC config for a model */\nexport function defineReactor(\n  config: Config,\n  model: Model,\n  cdc: ChangeDataCaptureReactorConfig\n): {\n  fragment: ServerlessApplicationModel;\n  stack: ServerlessApplicationModel;\n} {\n  const {\n    actionsModuleId,\n    handlerImportName,\n    handlerModuleId,\n    runtimeModuleId,\n    sourceModelName,\n  } = cdc;\n\n  const {dependenciesModuleId} = model.table;\n\n  const code = `// This file is generated. Do not edit by hand.\nimport {makeReactor} from '${runtimeModuleId}';\nimport {${handlerImportName}} from '${handlerModuleId}';\nimport type {${sourceModelName}, unmarshall${sourceModelName}} from '${actionsModuleId}';\nimport * as dependencies from '${dependenciesModuleId}';\n\nexport const handler = makeReactor<${sourceModelName}>(${handlerImportName}, {unmarshallSourceModel: unmarshall${sourceModelName}}, dependencies);\n`;\n\n  const {fragment, stack} = makeHandler(config, model, cdc, code);\n\n  return {fragment: combineFragments(fragment), stack};\n}\n"],
  "mappings": ";AAMA,SAAQ,wBAAuB;AAG/B,SAAQ,mBAAkB;AAGnB,SAAS,cACd,QACA,OACA,KAIA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,EAAC,qBAAoB,IAAI,MAAM;AAErC,QAAM,OAAO;AAAA,6BACc,eAAe;AAAA,UAClC,iBAAiB,WAAW,eAAe;AAAA,eACtC,eAAe,eAAe,eAAe,WAAW,eAAe;AAAA,iCACrD,oBAAoB;AAAA;AAAA,qCAEhB,eAAe,KAAK,iBAAiB,uCAAuC,eAAe;AAAA;AAG9H,QAAM,EAAC,UAAU,MAAK,IAAI,YAAY,QAAQ,OAAO,KAAK,IAAI;AAE9D,SAAO,EAAC,UAAU,iBAAiB,QAAQ,GAAG,MAAK;AACrD;",
  "names": []
}
