1.5 kBJavaScriptView Raw
1import { getDirectiveExtensions } from './getDirectiveExtensions.js';
2export function getDirectivesInExtensions(node, pathToDirectivesInExtensions = ['directives']) {
3 const directiveExtensions = getDirectiveExtensions(node, undefined, pathToDirectivesInExtensions);
4 return Object.entries(directiveExtensions)
5 .map(([directiveName, directiveArgsArr]) => directiveArgsArr?.map(directiveArgs => ({
6 name: directiveName,
7 args: directiveArgs,
8 })))
9 .flat(Infinity)
10 .filter(Boolean);
11}
12export function getDirectiveInExtensions(node, directiveName, pathToDirectivesInExtensions = ['directives']) {
13 const directiveExtensions = getDirectiveExtensions(node, undefined, pathToDirectivesInExtensions);
14 return directiveExtensions[directiveName];
15}
16export function getDirectives(schema, node, pathToDirectivesInExtensions = ['directives']) {
17 const directiveExtensions = getDirectiveExtensions(node, schema, pathToDirectivesInExtensions);
18 return Object.entries(directiveExtensions)
19 .map(([directiveName, directiveArgsArr]) => directiveArgsArr?.map(directiveArgs => ({
20 name: directiveName,
21 args: directiveArgs,
22 })))
23 .flat(Infinity)
24 .filter(Boolean);
25}
26export function getDirective(schema, node, directiveName, pathToDirectivesInExtensions = ['directives']) {
27 const directiveExtensions = getDirectiveExtensions(node, schema, pathToDirectivesInExtensions);
28 return directiveExtensions[directiveName];
29}