| 4888 | ASSERT_EQ(STRING_LITERAL("BridgeModule"), relativeBridgeModuleResult.value().resourcePath); |
| 4889 | } |
| 4890 | |
| 4891 | class AssetLoadObserverImpl : public snap::valdi_core::AssetLoadObserver { |
| 4892 | public: |
| 4893 | AssetLoadObserverImpl() {} |
| 4894 | |
| 4895 | void onLoad(const Shared<snap::valdi_core::Asset>& asset, |
| 4896 | const Valdi::Value& loadedAsset, |
| 4897 | const std::optional<Valdi::StringBox>& error) override { |
| 4898 | auto loadedAssetRef = loadedAsset.getTypedRef<Valdi::LoadedAsset>(); |
| 4899 | if (loadedAssetRef != nullptr) { |
| 4900 | _result = loadedAssetRef; |
| 4901 | } else { |
| 4902 | _result = Error(error.value()); |
| 4903 | } |
| 4904 | } |
| 4905 | |
| 4906 | static Result<Ref<Valdi::LoadedAsset>> loadSync(RuntimeWrapper& runtimeWrapper, const Ref<Asset>& asset) { |
| 4907 | auto observer = makeShared<AssetLoadObserverImpl>(); |
| 4908 | asset->addLoadObserver(observer, snap::valdi_core::AssetOutputType::Dummy, 0, 0, Value()); |
| 4909 | |
| 4910 | runtimeWrapper.mainQueue->runUntilTrue([&]() { return !observer->_result.empty(); }); |
| 4911 | |
| 4912 | return observer->_result; |
| 4913 | } |
| 4914 | |
| 4915 | private: |
| 4916 | Result<Ref<Valdi::LoadedAsset>> _result; |
| 4917 | }; |
| 4918 | |
| 4919 | Ref<Asset> getSrcAssetFromNode(ViewNode& viewNode) { |
nothing calls this directly
no outgoing calls
no test coverage detected