@redocly/graphql-docs
Version:
Redocly GraphQL docs
2 lines (1 loc) • 772 B
JavaScript
import{Kind as o}from"graphql";function s(n){if(!n.astNode?.directives)return null;const r=n.astNode.directives.find(t=>t.name.value==="requiresScopes");if(!r)return null;const e=i(r);return!e||e.length===0?null:{scopes:e}}function p(n,r){const e=s(n),t=s(r);return!e&&!t?null:e&&!t?e:!e&&t?{scopes:[],parentScopes:t.scopes}:{scopes:e?.scopes??[],parentScopes:t?.scopes??[]}}function i(n){const r=n.arguments?.find(e=>e.name.value==="scopes");return!r||!r.value?null:u(r.value)}function u(n){if(n.kind!==o.LIST)return null;const r=[];for(const e of n.values)e.kind===o.LIST&&r.push(e.values.map(t=>t.value));return r.length>0?r:null}function l(n){return s(n)!==null}export{s as getRequiresScopesDirective,p as getRequiresScopesWithParent,l as hasRequiresScopesDirective};