(asset, deps, preparedStore)
| 646 | } |
| 647 | |
| 648 | function storeReusedAsset(asset, deps, preparedStore) { |
| 649 | const store = preparedStore || prepareReuseAssetStore(asset, deps); |
| 650 | if (asset.type === 'Gene' && typeof store.upsertGene === 'function') { |
| 651 | assertNoLocalReuseIdConflict(asset, store, 'Gene'); |
| 652 | store.upsertGene(asset); |
| 653 | } else if (asset.type === 'Capsule' && typeof store.upsertCapsule === 'function') { |
| 654 | assertNoLocalReuseIdConflict(asset, store, 'Capsule'); |
| 655 | store.upsertCapsule(asset); |
| 656 | } else if (asset.type === 'EvolutionEvent' && typeof store.appendEventJsonl === 'function') { |
| 657 | store.appendEventJsonl(asset); |
| 658 | } else { |
| 659 | throw new ContractError('unsupported', 'unsupported asset type'); |
| 660 | } |
| 661 | return asset.asset_id || computeAssetId(asset); |
| 662 | } |
| 663 | |
| 664 | function assertNoLocalReuseIdConflict(asset, store, type) { |
| 665 | if (!asset || !asset.id) return; |
no test coverage detected