UNPKG

@graphql-inspector/action

Version:

GraphQL Inspector functionality for GitHub Actions

43 lines (42 loc) 1.16 kB
// Right now everything is hardcoded for better UX but this may change in future. // It's just easier to leave it this way export const availableCommands = [ 'coverage', 'diff', 'docs', 'introspect', 'serve', 'similar', 'validate', ]; export const availableLoaders = ['code', 'git', 'github', 'graphql', 'json', 'url']; export async function useConfig() { return { loaders: ensureList(discoverLoaders(availableLoaders), 'loaders'), commands: ensureList(discoverCommands(availableCommands), 'commands'), }; } function moduleExists(name) { try { require.resolve(name); return true; } catch (error) { return false; } } function discoverLoaders(loaders) { return loaders.filter(name => moduleExists(`@graphql-inspector/${name}-loader`)); } function discoverCommands(commands) { return commands.filter(name => moduleExists(`@graphql-inspector/${name}-command`)); } function ensureList(list, path) { if (!list) { return []; } if (Array.isArray(list)) { return list; } throw new Error(`Value of ${path} expected to be a list`); }