@openfga/frontend-utils
Version:
Exposes helpful utilities for building authoring experiences of OpenFGA Models.
41 lines (40 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.languageDefinition = void 0;
const theme_typings_1 = require("../../theme/theme.typings");
exports.languageDefinition = {
[theme_typings_1.OpenFgaDslThemeTokenType.MODULE]: {
pattern: /(module\s+)[\w_-]+/i,
lookbehind: true,
},
[theme_typings_1.OpenFgaDslThemeTokenType.TYPE]: {
pattern: /(\btype\s+)[\w_-]+/i,
lookbehind: true,
},
[theme_typings_1.OpenFgaDslThemeTokenType.EXTEND]: {
pattern: /(\bextend type\s+)[\w_-]+/i,
lookbehind: true,
},
[theme_typings_1.OpenFgaDslThemeTokenType.RELATION]: {
pattern: /(\bdefine\s+)[\w_-]+/i,
lookbehind: true,
},
[theme_typings_1.OpenFgaDslThemeTokenType.DIRECTLY_ASSIGNABLE]: /\[.*]|self/,
[theme_typings_1.OpenFgaDslThemeTokenType.CONDITION]: {
pattern: /(\bcondition\s+)[\w_-]+/i,
lookbehind: true,
},
"condition-params": {
pattern: /\(.*\)\s*{/,
inside: {
"condition-param": /\b([\w_-]+)\s*:/i,
"condition-param-type": /\b(string|int|map|uint|list|timestamp|bool|duration|double|ipaddress)\b/,
},
},
[theme_typings_1.OpenFgaDslThemeTokenType.COMMENT]: {
pattern: /(^\s*|\s+)#.*/,
},
[theme_typings_1.OpenFgaDslThemeTokenType.KEYWORD]: {
pattern: /\b(type|relations|define|and|or|but not|from|as|model|schema|condition|module|extend)\b/,
},
};