MCPcopy Index your code
hub / github.com/loopbackio/loopback-next / main

Function main

examples/context/src/context-observation.ts:42–86  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

40}
41
42export async function main() {
43 const appCtx = new Context('app');
44 const requestCtx = new RequestContext(appCtx, 'request');
45
46 // Observer events from `appCtx`
47 appCtx.subscribe({
48 filter: filterByTag('greeter'),
49 observe: (eventType, binding) => {
50 console.log('[observer] %s %s', eventType, binding.key);
51 },
52 });
53
54 // Create a context view on `requestCtx`
55 const greetersView = requestCtx.createView(filterByKey(/^greeters\./));
56 greetersView.on('refresh', () => {
57 console.log(
58 '[view.refresh] %j',
59 greetersView.bindings.map(b => b.key),
60 );
61 });
62
63 // Add EnglishGreeter to `appCtx`
64 console.log('Adding EnglishGreeter');
65 appCtx.bind('greeters.EnglishGreeter').toClass(EnglishGreeter).tag('greeter');
66
67 // Add ChineseGreeter to `appCtx`
68 await setImmediateAsync();
69 console.log('Adding ChineseGreeter');
70 appCtx.bind('greeters.ChineseGreeter').toClass(ChineseGreeter).tag('greeter');
71
72 // Remove ChineseGreeter from `appCtx`
73 await setImmediateAsync();
74 console.log('Removing ChineseGreeter');
75 appCtx.unbind('greeters.ChineseGreeter');
76
77 // Add ChineseGreeter to `requestCtx`
78 await setImmediateAsync();
79 console.log('Adding ChineseGreeter to request context');
80 requestCtx
81 .bind('greeters.ChineseGreeter')
82 .toClass(ChineseGreeter)
83 .tag('greeter');
84
85 await requestCtx.waitUntilObserversNotified();
86}
87
88if (require.main === module) {
89 main().catch(err => {

Callers 1

Calls 12

subscribeMethod · 0.95
bindMethod · 0.95
unbindMethod · 0.95
filterByTagFunction · 0.90
filterByKeyFunction · 0.90
createViewMethod · 0.80
tagMethod · 0.80
toClassMethod · 0.80
logMethod · 0.65
onMethod · 0.45
bindMethod · 0.45

Tested by

no test coverage detected