conv-context

Conversation context manager

Usage no npm install needed!

<script type="module">
  import convContext from 'https://cdn.skypack.dev/conv-context';
</script>

README

Conversation Context

A simple class that helps to handle bot conversation context.

Getting started

const Context = require('conv-context');
const context = new Context(contextData, thread);

Resolve context from contextData

// resolver - optional resolver function
const resolvedContext = await context.resolve(resolver=defaultResolver, data);

Custom resolver (binded to the step's 'this')

const resolver = async function (output, store) {
  // your code here
  // ...
};

Get context data

// 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

// 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

// save context data to session and shared (optional) storage
await context.save(shared=true, ttl=null)

helper methods for each storage

// save session data
context.setSession();

// save shared session data
await context.setShared(ttl);