Documentation / @andrew_l/service-actor / serviceActor
Function: serviceActor()
serviceActor<
T>(factory?):object
Create service actor hooks
Type Parameters
T
T extends Record<PropertyKey, any> = { }
Parameters
factory?
() => T
Returns
inject
inject: () =>
ServiceActor<T> |undefined
Returns the service actor instance from the current context.
Returns
ServiceActor<T> | undefined
use
use: () =>
ServiceActor<T>
Returns the service actor instance from the context, or creates and binds a new instance if none exists.
Returns
ServiceActor<T>
with
with: <
Fn>(fn,params?) =>Fn
Wrap a function to execute it with service actor providers
Type Parameters
Fn
Fn extends AnyFunction
Parameters
fn
Fn
params?
Partial<ServiceActor<T>>
Returns
Fn
Example
ts
const { use: useServiceActor, with: withServiceActor } = serviceActor(() => ({
actorType: 'http-request',
ipAddress: '',
}));
app.use((ctx, next) => {
return withServiceActor(
{
traceId: ctx.headers['x-request-id'],
ipAddress: ctx.headers['x-forwarded-for'],
},
next,
);
});
app.get('/', () => {
const actor = useServiceActor();
// { traceId: 'req_35123', actorId: null, actorType: 'http-request', ipAddress: '::' }
console.log(actor);
});