@apollo/client
Version:
A fully-featured caching GraphQL client.
46 lines • 1.73 kB
TypeScript
import type { HKT } from "@apollo/client/utilities";
import type { IsAny } from "@apollo/client/utilities/internal";
import type { ContainsFragmentsRefs, RemoveFragmentName, UnwrapFragmentRefs } from "./internal/types.js";
export declare namespace GraphQLCodegenDataMasking {
interface TypeOverrides {
FragmentType: HKTImplementation.FragmentType;
MaybeMasked: HKTImplementation.MaybeMasked;
Unmasked: HKTImplementation.Unmasked;
}
namespace HKTImplementation {
interface FragmentType extends HKT {
arg1: unknown;
return: GraphQLCodegenDataMasking.FragmentType<this["arg1"]>;
}
interface MaybeMasked extends HKT {
arg1: unknown;
return: GraphQLCodegenDataMasking.MaybeMasked<this["arg1"]>;
}
interface Unmasked extends HKT {
arg1: unknown;
return: GraphQLCodegenDataMasking.Unmasked<this["arg1"]>;
}
}
type FragmentType<TData> = [
TData
] extends [{
" $fragmentName"?: infer TKey;
}] ? TKey extends string ? {
" $fragmentRefs"?: {
[key in TKey]: TData;
};
} : never : never;
/**
* Unwraps the type to its masked type.
*
* @remarks
* GraphQL Codegen generates types as masked types. The implementation is an
* identity type.
*/
type MaybeMasked<TData> = TData;
/**
* Unmasks a type to provide its full result.
*/
type Unmasked<TData> = true extends IsAny<TData> ? TData : TData extends object ? true extends ContainsFragmentsRefs<TData> ? UnwrapFragmentRefs<RemoveFragmentName<TData>> : TData : TData;
}
//# sourceMappingURL=GraphQLCodegenDataMasking.d.ts.map