graphql-language-service
Version:
The official, runtime independent Language Service for GraphQL
36 lines • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.p = exports.t = exports.butNot = exports.list = exports.opt = void 0;
function opt(ofRule) {
return { ofRule };
}
exports.opt = opt;
function list(ofRule, separator) {
return { ofRule, isList: true, separator };
}
exports.list = list;
function butNot(rule, exclusions) {
const ruleMatch = rule.match;
rule.match = token => {
let check = false;
if (ruleMatch) {
check = ruleMatch(token);
}
return (check &&
exclusions.every(exclusion => exclusion.match && !exclusion.match(token)));
};
return rule;
}
exports.butNot = butNot;
function t(kind, style) {
return { style, match: (token) => token.kind === kind };
}
exports.t = t;
function p(value, style) {
return {
style: style || 'punctuation',
match: (token) => token.kind === 'Punctuation' && token.value === value,
};
}
exports.p = p;
//# sourceMappingURL=RuleHelpers.js.map