UNPKG

@openfga/frontend-utils

Version:

Exposes helpful utilities for building authoring experiences of OpenFGA Models.

39 lines (38 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.providerHover = void 0; const concepts_1 = require("../../../documentation/concepts"); function getDocumentation(keyword, documentationMap) { const definition = documentationMap[keyword]; if (!definition) { return undefined; } const { link, summary } = definition; const documentation = [ { value: "**Documentation**" }, { value: summary, }, ]; if (link) { documentation.push({ value: `[Learn more](${link})` }); } return documentation; } const providerHover = (monaco, documentationMap = concepts_1.defaultDocumentationMap) => (model, position) => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const wordMeta = model.getWordAtPosition(position); if (!wordMeta) { return; } const { startColumn, endColumn, word } = wordMeta; const contents = getDocumentation(word, documentationMap); if (!contents) { return; } return { range: new monaco.Range(position.lineNumber, startColumn, position.lineNumber, endColumn), contents, }; }; exports.providerHover = providerHover;