MCPcopy
hub / github.com/loopbackio/loopback-next / greetFromAll

Function greetFromAll

examples/context/src/value-promise.ts:88–116  ·  view source on GitHub ↗

* Invoke all greeters to print out greetings in all supported langauges * @param greetersView - A context view representing all greeters

(greetersView: ContextView<Greeter>)

Source from the content-addressed store, hash-verified

86 * @param greetersView - A context view representing all greeters
87 */
88async function greetFromAll(greetersView: ContextView<Greeter>) {
89 // Get all greeter instances
90 const greeters = await greetersView.values();
91
92 // Collect greetings as an array from all greeters
93 const greetings = resolveList(greeters, greeter => {
94 return greeter.greet('John');
95 });
96
97 // Check if the result is a Promise (async) or value (sync)
98 if (isPromiseLike(greetings)) {
99 console.log('async:', await greetings);
100 } else {
101 console.log('sync:', greetings);
102 }
103
104 // Collect greetings as a map keyed by language from al greeters
105 const greeterMap: {
106 [language: string]: Greeter;
107 } = {};
108 greeters.filter(greeter => (greeterMap[greeter.language] = greeter));
109
110 const greetingsByLanguage = resolveMap(greeterMap, greeter =>
111 greeter.greet('Jane'),
112 );
113
114 // Print out all map entries
115 await transformValueOrPromise(greetingsByLanguage, console.log);
116}
117
118if (require.main === module) {
119 main().catch(err => {

Callers 1

mainFunction · 0.85

Calls 7

resolveListFunction · 0.90
isPromiseLikeFunction · 0.90
resolveMapFunction · 0.90
transformValueOrPromiseFunction · 0.90
greetMethod · 0.65
logMethod · 0.65
valuesMethod · 0.45

Tested by

no test coverage detected