contentful-management
Version:
Client for Contentful's Content Management API
32 lines (31 loc) • 1.55 kB
TypeScript
import type { MakeRequest, MRActions, MRReturn } from '../../common-types';
export type DefaultParams = {
spaceId?: string;
environmentId?: string;
organizationId?: string;
};
/**
* @private
*/
export type OptionalDefaults<T> = Omit<T, keyof DefaultParams> & ('organizationId' extends keyof T ? {
organizationId?: string;
} : Record<string, unknown>) & ('spaceId' extends keyof T ? {
spaceId?: string;
} : Record<string, unknown>) & ('environmentId' extends keyof T ? {
environmentId?: string;
} : Record<string, unknown>);
/**
* @private
*/
export type WrapParams = {
makeRequest: MakeRequest;
defaults?: DefaultParams;
};
/**
* @private
*/
export type WrapFn<ET extends keyof MRActions, Action extends keyof MRActions[ET], Params = 'params' extends keyof MRActions[ET][Action] ? MRActions[ET][Action]['params'] : undefined, Payload = 'payload' extends keyof MRActions[ET][Action] ? MRActions[ET][Action]['payload'] : undefined, Headers = 'headers' extends keyof MRActions[ET][Action] ? MRActions[ET][Action]['headers'] : undefined, Return = MRReturn<ET, Action>> = Params extends undefined ? () => Return : Payload extends undefined ? (params: Params) => Return : Headers extends undefined ? (params: Params, payload: Payload) => Return : (params: Params, payload: Payload, headers: Headers) => Return;
/**
* @private
*/
export declare const wrap: <ET extends keyof MRActions, Action extends keyof MRActions[ET]>({ makeRequest, defaults }: WrapParams, entityType: ET, action: Action) => WrapFn<ET, Action>;