UNPKG

bravey

Version:

A simple JavaScript NLP-like library to help you creating your own bot.

35 lines (33 loc) 1.8 kB
/** * Data manipulation related functions. * @namespace */ Bravey.Data = {}; /** * Extract entities or context values with the same name from a {@link Bravey.ContextManager.testBySessionId} call result. * @param {ContextManagerResultBySessionId} matchdata - The data returned by {@link Bravey.ContextManager.testBySessionId}. * @param {string} entityname - The data returned by {@link Bravey.ContextManager.testBySessionId}. * @param {string} [defaultvalue=undefined] - The matched entity value cosidered as "default". (i.e. if found, session data value is returned anyway) * @returns {string} The matching value. * @returns {undefined} If the entity name is not set in match or session. */ Bravey.Data.getEntityValue = function(matchdata, entityname, defaultvalue) { var found; if (matchdata) { if ((matchdata.result !== undefined) && (matchdata.result.entitiesIndex !== undefined) && (matchdata.result.entitiesIndex[entityname] !== undefined)) found = matchdata.result.entitiesIndex[entityname].value; if (found == defaultvalue) found = undefined; if ((found == undefined) && (matchdata.sessionData !== undefined)) found = matchdata.sessionData[entityname]; } return found; } /** * Returns true if a {@link Bravey.ContextManager.testBySessionId} result contains the specified entity. * @param {ContextManagerResultBySessionId} matchdata - The data returned by {@link Bravey.ContextManager.testBySessionId}. * @param {string} entityname - The entity to be checked. * @returns {true} When the entity is specified. */ Bravey.Data.isExplicit = function(matchdata, entityname) { return (matchdata && (matchdata.result !== undefined) && (matchdata.result.entitiesIndex !== undefined) && (matchdata.result.entitiesIndex[entityname] !== undefined)); }