import { omit } from '$lib/Utils'; import type { Client } from '@urql/svelte'; import * as gql from './graphql'; type Typename = '__typename'; type Identifiers = Typename | 'id'; export type OmitTypename = Omit; export type OmitIdentifiers = Omit; export type RequiredName = T & { name: string }; export type MutationWith = ( client: Client, args: { ids: number[] | number; input: T } ) => Promise; export function omitIdentifiers( obj: T ): OmitIdentifiers { return omit(obj, '__typename', 'id'); } export function isSuccess(object: any): object is gql.Success { if (object.__typename === undefined) { return false; } return object.__typename.endsWith('Success') && (object as gql.Success).message !== undefined; } export function isError(object: any): object is gql.Error { if (object.__typename === undefined) { return false; } return object.__typename.endsWith('Error') && (object as gql.Error).message !== undefined; }