Context
Context lets you create an object to pass around your app. An easy way to give more predictable access to things like credentials, headers, services, … to the rest of your app by passing around a single object.
The context middleware for example, injects such a context on req.context
that automatically includes req
and res
in the context.
Kind: global class
new Context(context)
Context constructor
Returns: Context
- the constructed context
Param | Type | Description |
---|---|---|
context | Object |
Initial contents of the context. A dictionairy of key-value pairs where the keys are strings of the names by which the value will be accessible on the context object. |
Example
const Context = require('@ambassify/expressify/context');
const ctx = new Context({ foo: 1 });
ctx.define('bar', _ctx => _ctx.foo);
ctx.define('baz', _ctx => _ctx.bar);
// They all return 1
ctx.foo;
ctx.bar;
ctx.baz;
context.define(key, getter)
Define intelligent getters on your context, they will have access to the current context when evaluated and their values will be cached on the context afterwards.
Kind: instance method of Context
Param | Type | Description |
---|---|---|
key | String |
The name by which the value will be accessible on context |
getter | function |
A getter function that gets the context as argument and should return the value to be returned when key is accessed. |
context.reload([key]) ⇒ \*
Reload the value for a specific key or all keys on context. Will clear the internal cache and re-evaluate the getter(s) to retrieve a fresh value. Handy if a key’s value is computed against another value on context that has been updated.
Kind: instance method of Context
Returns: \*
- The value for key or the entire context when no key was provided.
Param | Type | Description |
---|---|---|
[key] | String |
The key to reload. Leave empty to reload all keys. |
context.clone() ⇒ Context
Create a copy of your context with a fresh cache and its getters intact
Kind: instance method of Context
Returns: Context
- the copy of this context