CCF
Loading...
Searching...
No Matches
chained_module_loader.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
6
7namespace ccf::js::modules
8{
10 {
11 protected:
13
14 public:
16
17 virtual std::optional<js::core::JSWrappedValue> get_module(
18 std::string_view module_name, js::core::Context& ctx) override
19 {
20 for (auto& sub_loader : sub_loaders)
21 {
22 auto module_val = sub_loader->get_module(module_name, ctx);
23 if (module_val.has_value())
24 {
25 return module_val;
26 }
27 }
28
29 return std::nullopt;
30 }
31 };
32}
Definition context.h:46
Definition chained_module_loader.h:10
ModuleLoaders sub_loaders
Definition chained_module_loader.h:12
ChainedModuleLoader(ModuleLoaders &&ml)
Definition chained_module_loader.h:15
virtual std::optional< js::core::JSWrappedValue > get_module(std::string_view module_name, js::core::Context &ctx) override
Definition chained_module_loader.h:17
Definition module_loader_interface.h:21
Definition module_loader_interface.h:19
std::vector< ModuleLoaderPtr > ModuleLoaders
Definition module_loader_interface.h:30
STL namespace.