in packages/extensions/luis/client/src/Adapters/RecognizerResultAdapter.tsx [109:157]
private getEntityValue(entity: Entity): any {
if (!entity.resolution) {
return entity.entity;
}
if ((entity || '').type.startsWith('builtin.datetimeV2.')) {
if (!entity.resolution.values || !entity.resolution.values.length) {
return entity.resolution;
}
const vals = entity.resolution.values;
const type = vals[0].type;
const timexes = vals.map((t: any) => t.timex);
const distinct = timexes.filter((v: any, i: any, a: any) => a.indexOf(v) === i);
return { type, timex: distinct };
} else {
const res = entity.resolution;
switch (entity.type) {
case 'builtin.number':
case 'builtin.ordinal':
return Number(res.value);
case 'builtin.percentage': {
let svalue = res.value;
if (svalue.endsWith('%')) {
svalue = svalue.substring(0, svalue.length - 1);
}
return Number(svalue);
}
case 'builtin.age':
case 'builtin.dimension':
case 'builtin.currency':
case 'builtin.temperature': {
const val = res.value;
const obj: any = {};
if (val) {
obj.number = Number(val);
}
obj.units = res.unit;
return obj;
}
default:
return Object.keys(entity.resolution).length > 1
? entity.resolution
: entity.resolution.value
? entity.resolution.value
: entity.resolution.values;
}
}
}