1 | import { __decorate } from "tslib";
|
2 | import { _SPInstance } from "../spqueryable.js";
|
3 | import { hOP } from "@pnp/core";
|
4 | import { defaultPath } from "../decorators.js";
|
5 | let _Suggest = class _Suggest extends _SPInstance {
|
6 | async run(query) {
|
7 | this.mapQueryToQueryString(query);
|
8 | const response = await this();
|
9 | const mapper = hOP(response, "suggest") ? (s_1) => response.suggest[s_1].results : (s_2) => response[s_2];
|
10 | return {
|
11 | PeopleNames: mapper("PeopleNames"),
|
12 | PersonalResults: mapper("PersonalResults"),
|
13 | Queries: mapper("Queries"),
|
14 | };
|
15 | }
|
16 | mapQueryToQueryString(query) {
|
17 | const setProp = (q) => (checkProp) => (sp) => {
|
18 | if (hOP(q, checkProp)) {
|
19 | this.query.set(sp, q[checkProp].toString());
|
20 | }
|
21 | };
|
22 | this.query.set("querytext", `'${query.querytext}'`);
|
23 | const querySetter = setProp(query);
|
24 | querySetter("count")("inumberofquerysuggestions");
|
25 | querySetter("personalCount")("inumberofresultsuggestions");
|
26 | querySetter("preQuery")("fprequerysuggestions");
|
27 | querySetter("hitHighlighting")("fhithighlighting");
|
28 | querySetter("capitalize")("fcapitalizefirstletters");
|
29 | querySetter("culture")("culture");
|
30 | querySetter("stemming")("enablestemming");
|
31 | querySetter("includePeople")("showpeoplenamesuggestions");
|
32 | querySetter("queryRules")("enablequeryrules");
|
33 | querySetter("prefixMatch")("fprefixmatchallterms");
|
34 | }
|
35 | };
|
36 | _Suggest = __decorate([
|
37 | defaultPath("_api/search/suggest")
|
38 | ], _Suggest);
|
39 | export { _Suggest };
|
40 | export const Suggest = (baseUrl) => (query) => {
|
41 | return (new _Suggest(baseUrl)).run(query);
|
42 | };
|
43 |
|
\ | No newline at end of file |