From 5a84aba79b626085111a92dd7c5d6b35667b468b Mon Sep 17 00:00:00 2001 From: Tom Meyer Date: Mon, 15 Aug 2022 10:30:40 -0400 Subject: [PATCH 1/2] Add `StringValueDirectAnswer` interface. This PR creates the `StringValueDirectAnswer` interface, which describes a direct answer sourced from a string (or string list) field in the Knowledge Graph. J=SLAP-2315 TEST=manual I made a few code changes locally which are not included in this PR. These changes allowed me to generate a switch statement on `fieldType`. I added cases for `single_line_text` and `multi_line_text`. These cases were hit as expected when getting direct answers for string and string list fields. In these switch statements, I saw the IDE correctly inferring that the DA was a `StringValueDirectAnswer`. --- docs/search-core.builtinfieldtype.md | 2 ++ etc/search-core.api.md | 6 +++++- src/models/searchservice/response/BuiltInFieldType.ts | 4 ++-- .../searchservice/response/StringValueDirectAnswer.ts | 11 +++++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 src/models/searchservice/response/StringValueDirectAnswer.ts diff --git a/docs/search-core.builtinfieldtype.md b/docs/search-core.builtinfieldtype.md index 85a39da5..f0739703 100644 --- a/docs/search-core.builtinfieldtype.md +++ b/docs/search-core.builtinfieldtype.md @@ -17,4 +17,6 @@ export declare enum BuiltInFieldType | Member | Value | Description | | --- | --- | --- | | Address | "address" | | +| MultiLineText | "multi_line_text" | | +| SingleLineText | "single_line_text" | | diff --git a/etc/search-core.api.md b/etc/search-core.api.md index b6c1b135..80e79f92 100644 --- a/etc/search-core.api.md +++ b/etc/search-core.api.md @@ -96,7 +96,11 @@ export interface BaseSearchConfig { // @public export enum BuiltInFieldType { // (undocumented) - Address = "address" + Address = "address", + // (undocumented) + MultiLineText = "multi_line_text", + // (undocumented) + SingleLineText = "single_line_text" } // @public diff --git a/src/models/searchservice/response/BuiltInFieldType.ts b/src/models/searchservice/response/BuiltInFieldType.ts index 0741f8e2..5ad4ed63 100644 --- a/src/models/searchservice/response/BuiltInFieldType.ts +++ b/src/models/searchservice/response/BuiltInFieldType.ts @@ -16,6 +16,6 @@ export enum BuiltInFieldType { // Hours = 'hours', // Decimal = 'decimal', // RichText = 'rich_text', - // SingleLineText = 'single_line_text', - // MultiLineText = 'multi_line_text' + SingleLineText = 'single_line_text', + MultiLineText = 'multi_line_text' } \ No newline at end of file diff --git a/src/models/searchservice/response/StringValueDirectAnswer.ts b/src/models/searchservice/response/StringValueDirectAnswer.ts new file mode 100644 index 00000000..741b13ef --- /dev/null +++ b/src/models/searchservice/response/StringValueDirectAnswer.ts @@ -0,0 +1,11 @@ +import { BuiltInFieldType } from './BuiltInFieldType'; +import { FieldValueDirectAnswer } from './FieldValueDirectAnswer'; + +/** + * A direct answer whose source is a string or string list field in the knowledge graph. + * + * @public + */ +export interface StringValueDirectAnswer extends FieldValueDirectAnswer { + fieldType: BuiltInFieldType.SingleLineText | BuiltInFieldType.MultiLineText +} \ No newline at end of file From 0a27898cc7b85bdc971a211720f9058761f845e0 Mon Sep 17 00:00:00 2001 From: Tom Meyer Date: Mon, 15 Aug 2022 12:50:50 -0400 Subject: [PATCH 2/2] Add `EnumOrLiteral`. --- .../response/directanswer/StringValueDirectAnswer.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts b/src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts index 7e654246..c8656ffd 100644 --- a/src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts +++ b/src/models/searchservice/response/directanswer/StringValueDirectAnswer.ts @@ -1,3 +1,4 @@ +import { EnumOrLiteral } from '../../../utils/EnumOrLiteral'; import { BaseFieldValueDirectAnswer } from './BaseFieldValueDirectAnswer'; import { BuiltInFieldType } from './BuiltInFieldType'; @@ -7,5 +8,5 @@ import { BuiltInFieldType } from './BuiltInFieldType'; * @public */ export interface StringValueDirectAnswer extends BaseFieldValueDirectAnswer { - fieldType: BuiltInFieldType.SingleLineText | BuiltInFieldType.MultiLineText + fieldType: EnumOrLiteral } \ No newline at end of file