UNPKG

@pnp/sp

Version:

pnp - provides a fluent api for working with SharePoint REST

43 lines 1.76 kB
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