@pnp/sp
Version:
pnp - provides a fluent api for working with SharePoint REST
43 lines • 1.76 kB
JavaScript
import { __decorate } from "tslib";
import { _SPInstance } from "../spqueryable.js";
import { hOP } from "@pnp/core";
import { defaultPath } from "../decorators.js";
let _Suggest = class _Suggest extends _SPInstance {
async run(query) {
this.mapQueryToQueryString(query);
const response = await this();
const mapper = hOP(response, "suggest") ? (s_1) => response.suggest[s_1].results : (s_2) => response[s_2];
return {
PeopleNames: mapper("PeopleNames"),
PersonalResults: mapper("PersonalResults"),
Queries: mapper("Queries"),
};
}
mapQueryToQueryString(query) {
const setProp = (q) => (checkProp) => (sp) => {
if (hOP(q, checkProp)) {
this.query.set(sp, q[checkProp].toString());
}
};
this.query.set("querytext", `'${query.querytext}'`);
const querySetter = setProp(query);
querySetter("count")("inumberofquerysuggestions");
querySetter("personalCount")("inumberofresultsuggestions");
querySetter("preQuery")("fprequerysuggestions");
querySetter("hitHighlighting")("fhithighlighting");
querySetter("capitalize")("fcapitalizefirstletters");
querySetter("culture")("culture");
querySetter("stemming")("enablestemming");
querySetter("includePeople")("showpeoplenamesuggestions");
querySetter("queryRules")("enablequeryrules");
querySetter("prefixMatch")("fprefixmatchallterms");
}
};
_Suggest = __decorate([
defaultPath("_api/search/suggest")
], _Suggest);
export { _Suggest };
export const Suggest = (baseUrl) => (query) => {
return (new _Suggest(baseUrl)).run(query);
};
//# sourceMappingURL=suggest.js.map