conv-context
Version:
Conversation context manager
66 lines (51 loc) • 1.53 kB
Markdown
# Conversation Context
A simple class that helps to handle bot conversation context.
## Getting started
```javascript
const Context = require('conv-context');
const context = new Context(contextData, thread);
```
## Resolve context from `contextData`
```javascript
// resolver - optional resolver function
const resolvedContext = await context.resolve(resolver=defaultResolver);
```
### Custom resolver (binded to the step's 'this')
```javascript
const resolver = async function (output, store) {
// your code here
// ...
};
```
## Get context data
```javascript
// get context for the 'name' entity. The path is also accepted: 'path.to.data'
context.get('name', data, defaultValue);
// get context from step with Id === stepId
context.getStepContext(stepId)
// find step context by some filter criteria
context.findStepContext(query={})
// find step Id by some filter criteria
context.findStepId(query={})
// get step contexts by some filter criteria
context.filterStepContext(query={})
```
## Set context data
```javascript
// set context for the 'name' entity. The path is also accepted: 'path.to.data'
context.set('name', data);
// set step context
context.setStepContext(data)
```
## Save context in the session and shared storage
```javascript
// save context data to session and shared (optional) storage
await context.save(shared=true, ttl=null)
```
#### helper methods for each storage
```javascript
// save session data
context.setSession();
// save shared session data
await context.setShared(ttl);
```