@commercetools-test-data/commons
Version:
Data model for commercetools platform common types
25 lines (24 loc) • 1.08 kB
TypeScript
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>;