UNPKG

@commercetools-test-data/commons

Version:

Data model for commercetools platform common types

25 lines (24 loc) 1.08 kB
import type { TBuilder } from '@commercetools-test-data/core'; import { TCtpReference } from '@commercetools-test-data/graphql-types'; export interface TReference<TypeId = string> { typeId: TypeId; id: string; obj?: any; } export type TExpandedReferenceObject<TypeId = string> = { id: TReference<TypeId>['id']; version?: number; }; export type TReferenceRest<TypeId = string, ExpandedObject extends TExpandedReferenceObject<TypeId> = TExpandedReferenceObject<TypeId>> = Omit<TReference<TypeId>, 'obj'> & { obj?: ExpandedObject; }; export type TReferenceGraphql<TypeId = string> = Omit<TCtpReference, 'typeId'> & { typeId: TypeId; }; export type TReferenceDraft<TypeId = string> = { typeId: TypeId; id: string; }; export type TReferenceDraftRest<TypeId = string> = TReferenceDraft<TypeId>; export type TReferenceDraftGraphql<TypeId = string> = TReferenceDraft<TypeId>; export type TCreateReferenceBuilder<TReferenceModel extends TReferenceRest | TReferenceGraphql | TReferenceDraftRest | TReferenceDraftGraphql> = () => TBuilder<TReferenceModel>;