UNPKG

graphql-request

Version:

Minimal GraphQL client supporting Node and browsers for scripts or simple apps.

20 lines (18 loc) 1.11 kB
import { createCodeGenerator } from '../createCodeGenerator.js'; export const { generate: generateError, moduleName: moduleNameError } = createCodeGenerator(`Error`, (config) => { const code = []; code.push(`type Include<T, U> = Exclude<T, Exclude<T, U>>`, `type ObjectWithTypeName = { __typename: string }`); code.push(` const ErrorObjectsTypeNameSelectedEnum = { ${config.error.objects.map(_ => `${_.name}: { __typename: '${_.name}' }`).join(`,\n`)} } as ${config.error.objects.length > 0 ? `const` : `Record<string,ObjectWithTypeName>`} const ErrorObjectsTypeNameSelected = Object.values(ErrorObjectsTypeNameSelectedEnum) type ErrorObjectsTypeNameSelected = (typeof ErrorObjectsTypeNameSelected)[number] `); code.push(`export const isError = <$Value>(value:$Value): value is Include<$Value, ErrorObjectsTypeNameSelected> => { return typeof value === 'object' && value !== null && '__typename' in value && ErrorObjectsTypeNameSelected.some(_ => _.__typename === value.__typename) }`); return code.join(`\n\n`); }); //# sourceMappingURL=Error.js.map