diff --git a/lib/common-utils.ts b/lib/common-utils.ts index 0da3ea5f8b..cec3d74d71 100644 --- a/lib/common-utils.ts +++ b/lib/common-utils.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/ban-ts-comment */ - import { toPlainObject } from 'contentful-sdk-core' import copy from 'fast-copy' import type { @@ -17,10 +15,11 @@ export const wrapCollection = (fn: (makeRequest: MakeRequest, entity: T, ...rest: Rest) => R) => (makeRequest: MakeRequest, data: CollectionProp, ...rest: Rest): Collection => { const collectionData = toPlainObject(copy(data)) - // @ts-expect-error - collectionData.items = collectionData.items.map((entity) => fn(makeRequest, entity, ...rest)) - // @ts-expect-error - return collectionData + + return { + ...collectionData, + items: collectionData.items.map((entity) => fn(makeRequest, entity, ...rest)), + } } export const wrapCursorPaginatedCollection = @@ -31,10 +30,10 @@ export const wrapCursorPaginatedCollection = ...rest: Rest ): CursorPaginatedCollection => { const collectionData = toPlainObject(copy(data)) - // @ts-expect-error - collectionData.items = collectionData.items.map((entity) => fn(makeRequest, entity, ...rest)) - // @ts-expect-error - return collectionData + return { + ...collectionData, + items: collectionData.items.map((entity) => fn(makeRequest, entity, ...rest)), + } } export function isSuccessful(statusCode: number) { return statusCode < 300 diff --git a/lib/create-app-definition-api.ts b/lib/create-app-definition-api.ts index 081e9dec2a..892041ef8a 100644 --- a/lib/create-app-definition-api.ts +++ b/lib/create-app-definition-api.ts @@ -1,5 +1,6 @@ import type { MakeRequest, QueryOptions, SpaceQueryOptions } from './common-types' -import entities from './entities' +import { wrapAppBundle, wrapAppBundleCollection } from './entities/app-bundle' +import { wrapResourceProvider } from './entities/resource-provider' import type { CreateAppBundleProps } from './entities/app-bundle' import type { AppDefinitionProps } from './entities/app-definition' import { wrapAppDefinition } from './entities/app-definition' @@ -14,9 +15,6 @@ export type ContentfulAppDefinitionAPI = ReturnType ({ appDefinitionId: data.sys.id, organizationId: data.sys.organization.sys.id, diff --git a/lib/create-contentful-api.ts b/lib/create-contentful-api.ts index a019e778d5..bd71bc6304 100644 --- a/lib/create-contentful-api.ts +++ b/lib/create-contentful-api.ts @@ -12,7 +12,27 @@ import type { GetOAuthApplicationParams, GetUserParams, } from './common-types' -import entities from './entities' +import { wrapSpace, wrapSpaceCollection } from './entities/space' +import { wrapUser } from './entities/user' +import { + wrapPersonalAccessToken, + wrapPersonalAccessTokenCollection, +} from './entities/personal-access-token' +import { wrapAccessToken, wrapAccessTokenCollection } from './entities/access-token' +import { wrapOrganization, wrapOrganizationCollection } from './entities/organization' +import { wrapUsageCollection } from './entities/usage' +import { wrapAppDefinition } from './entities/app-definition' +import { + wrapEnvironmentTemplate, + wrapEnvironmentTemplateCollection, +} from './entities/environment-template' +import type { + CreateOAuthApplicationProps, + OAuthApplication, + OAuthApplicationProps, +} from './entities/oauth-application' +import { wrapOAuthApplication, wrapOAuthApplicationCollection } from './entities/oauth-application' + import type { Organization, OrganizationProps } from './entities/organization' import type { CreatePersonalAccessTokenProps } from './entities/personal-access-token' import type { Space, SpaceProps } from './entities/space' @@ -25,11 +45,6 @@ import type { EnvironmentTemplateProps, } from './entities/environment-template' import type { RawAxiosRequestConfig } from 'axios' -import type { - CreateOAuthApplicationProps, - OAuthApplication, - OAuthApplicationProps, -} from './export-types' export type ClientAPI = ReturnType type CreateSpaceProps = Omit & { defaultLocale?: string } @@ -38,18 +53,6 @@ type CreateSpaceProps = Omit & { defaultLocale?: string } * @private */ export default function createClientApi(makeRequest: MakeRequest) { - const { wrapSpace, wrapSpaceCollection } = entities.space - const { wrapUser } = entities.user - const { wrapPersonalAccessToken, wrapPersonalAccessTokenCollection } = - entities.personalAccessToken - const { wrapAccessToken, wrapAccessTokenCollection } = entities.accessToken - const { wrapOrganization, wrapOrganizationCollection } = entities.organization - const { wrapUsageCollection } = entities.usage - const { wrapAppDefinition } = entities.appDefinition - const { wrapEnvironmentTemplate, wrapEnvironmentTemplateCollection } = - entities.environmentTemplate - const { wrapOAuthApplication, wrapOAuthApplicationCollection } = entities.oauthApplication - return { /** * Gets all environment templates for a given organization with the lasted version diff --git a/lib/create-entry-api.ts b/lib/create-entry-api.ts index bbc3f8cbe1..f11dbf9f35 100644 --- a/lib/create-entry-api.ts +++ b/lib/create-entry-api.ts @@ -4,7 +4,11 @@ import type { CreateCommentParams, CreateCommentProps } from './entities/comment import type { Entry, EntryProps, EntryReferenceOptionsProps } from './entities/entry' import type { CreateTaskProps } from './entities/task' import * as checks from './plain/checks' -import entities from './entities' + +import { wrapEntry, wrapEntryCollection } from './entities/entry' +import { wrapSnapshot, wrapSnapshotCollection } from './entities/snapshot' +import { wrapTask, wrapTaskCollection } from './entities/task' +import { wrapComment, wrapCommentCollection } from './entities/comment' /** * @private @@ -15,11 +19,6 @@ export type ContentfulEntryApi = ReturnType * @private */ export default function createEntryApi(makeRequest: MakeRequest) { - const { wrapEntry, wrapEntryCollection } = entities.entry - const { wrapSnapshot, wrapSnapshotCollection } = entities.snapshot - const { wrapTask, wrapTaskCollection } = entities.task - const { wrapComment, wrapCommentCollection } = entities.comment - const getParams = (self: Entry) => { const entry = self.toPlainObject() as EntryProps diff --git a/lib/create-environment-api.ts b/lib/create-environment-api.ts index d9a65d6ab5..4739b8b988 100644 --- a/lib/create-environment-api.ts +++ b/lib/create-environment-api.ts @@ -7,7 +7,6 @@ import type { QueryOptions, } from './common-types' import type { BasicQueryOptions, MakeRequest } from './common-types' -import entities from './entities' import type { CreateAppInstallationProps } from './entities/app-installation' import type { CreateAppSignedRequestProps } from './entities/app-signed-request' import type { @@ -56,6 +55,23 @@ import { wrapUserUIConfig } from './entities/user-ui-config' import { wrapEnvironmentTemplateInstallationCollection } from './entities/environment-template-installation' import { wrapFunctionCollection } from './entities/function' import { wrapFunctionLog, wrapFunctionLogCollection } from './entities/function-log' +import { wrapEnvironment } from './entities/environment' +import { wrapContentType, wrapContentTypeCollection } from './entities/content-type' +import { wrapEntry, wrapEntryCollection } from './entities/entry' +import { wrapAsset, wrapAssetCollection } from './entities/asset' +import { wrapAssetKey } from './entities/asset-key' +import { wrapLocale, wrapLocaleCollection } from './entities/locale' +import { wrapSnapshotCollection } from './entities/snapshot' +import { wrapEditorInterface, wrapEditorInterfaceCollection } from './entities/editor-interface' +import { wrapUpload } from './entities/upload' +import { wrapExtension, wrapExtensionCollection } from './entities/extension' +import { wrapAppInstallation, wrapAppInstallationCollection } from './entities/app-installation' +import { wrapAppSignedRequest } from './entities/app-signed-request' +import { wrapAppActionCall } from './entities/app-action-call' +import { wrapBulkAction } from './entities/bulk-action' +import { wrapAppAccessToken } from './entities/app-access-token' +import { wrapResourceTypesForEnvironmentCollection } from './entities/resource-type' +import { wrapResourceCollection } from './entities/resource' import type { CreateAppAccessTokenProps } from './entities/app-access-token' import type { ResourceQueryOptions } from './entities/resource' import type { AiActionInvocationType } from './entities/ai-action-invocation' @@ -73,24 +89,6 @@ export type ContentfulEnvironmentAPI = ReturnType * @private */ export default function createEnvironmentApi(makeRequest: MakeRequest) { - const { wrapEnvironment } = entities.environment - const { wrapContentType, wrapContentTypeCollection } = entities.contentType - const { wrapEntry, wrapEntryCollection } = entities.entry - const { wrapAsset, wrapAssetCollection } = entities.asset - const { wrapAssetKey } = entities.assetKey - const { wrapLocale, wrapLocaleCollection } = entities.locale - const { wrapSnapshotCollection } = entities.snapshot - const { wrapEditorInterface, wrapEditorInterfaceCollection } = entities.editorInterface - const { wrapUpload } = entities.upload - const { wrapExtension, wrapExtensionCollection } = entities.extension - const { wrapAppInstallation, wrapAppInstallationCollection } = entities.appInstallation - const { wrapAppSignedRequest } = entities.appSignedRequest - const { wrapAppActionCall } = entities.appActionCall - const { wrapBulkAction } = entities.bulkAction - const { wrapAppAccessToken } = entities.appAccessToken - const { wrapResourceTypesForEnvironmentCollection } = entities.resourceType - const { wrapResourceCollection } = entities.resource - return { /** * Deletes the environment diff --git a/lib/create-environment-template-api.ts b/lib/create-environment-template-api.ts index 9bf39a64e3..cfa97f4d0f 100644 --- a/lib/create-environment-template-api.ts +++ b/lib/create-environment-template-api.ts @@ -1,6 +1,5 @@ import { createRequestConfig } from 'contentful-sdk-core' import type { BasicCursorPaginationOptions, MakeRequest } from './common-types' -import entities from './entities' import type { EnvironmentTemplateProps } from './entities/environment-template' import type { CreateEnvironmentTemplateInstallationProps, @@ -9,12 +8,13 @@ import type { export type ContentfulEnvironmentTemplateApi = ReturnType -export function createEnvironmentTemplateApi(makeRequest: MakeRequest, organizationId: string) { - const { wrapEnvironmentTemplate, wrapEnvironmentTemplateCollection } = - entities.environmentTemplate - - const { wrapEnvironmentTemplateInstallationCollection } = entities.environmentTemplateInstallation +import { + wrapEnvironmentTemplate, + wrapEnvironmentTemplateCollection, +} from './entities/environment-template' +import { wrapEnvironmentTemplateInstallationCollection } from './entities/environment-template-installation' +export function createEnvironmentTemplateApi(makeRequest: MakeRequest, organizationId: string) { return { /** * Updates a environment template diff --git a/lib/create-organization-api.ts b/lib/create-organization-api.ts index 9cd600709a..2b51b924ac 100644 --- a/lib/create-organization-api.ts +++ b/lib/create-organization-api.ts @@ -1,5 +1,4 @@ import { createRequestConfig } from 'contentful-sdk-core' -import entities from './entities' import type { CreateTeamMembershipProps } from './entities/team-membership' import type { CreateTeamProps } from './entities/team' import type { CreateOrganizationInvitationProps } from './entities/organization-invitation' @@ -18,6 +17,30 @@ import type { CreateAppKeyProps } from './entities/app-key' import type { CreateAppDetailsProps } from './entities/app-details' import type { OrganizationProps } from './entities/organization' +import { wrapAppDefinition, wrapAppDefinitionCollection } from './entities/app-definition' +import { wrapUser, wrapUserCollection } from './entities/user' +import { + wrapOrganizationMembership, + wrapOrganizationMembershipCollection, +} from './entities/organization-membership' +import { wrapTeamMembership, wrapTeamMembershipCollection } from './entities/team-membership' +import { + wrapTeamSpaceMembership, + wrapTeamSpaceMembershipCollection, +} from './entities/team-space-membership' +import { wrapTeam, wrapTeamCollection } from './entities/team' +import { wrapSpaceMembership, wrapSpaceMembershipCollection } from './entities/space-membership' +import { wrapOrganizationInvitation } from './entities/organization-invitation' +import { wrapAppUpload } from './entities/app-upload' +import { wrapAppSigningSecret } from './entities/app-signing-secret' +import { wrapAppEventSubscription } from './entities/app-event-subscription' +import { wrapAppKey, wrapAppKeyCollection } from './entities/app-key' +import { wrapAppDetails } from './entities/app-details' +import { wrapAppAction, wrapAppActionCollection } from './entities/app-action' +import { wrapFunction, wrapFunctionCollection } from './entities/function' +import { wrapRoleCollection } from './entities/role' +import { wrapSpaceCollection } from './entities/space' + /** * @private */ @@ -30,26 +53,6 @@ export type ContentfulOrganizationAPI = ReturnType * @private */ export default function createOrganizationApi(makeRequest: MakeRequest) { - const { wrapAppDefinition, wrapAppDefinitionCollection } = entities.appDefinition - const { wrapUser, wrapUserCollection } = entities.user - const { wrapOrganizationMembership, wrapOrganizationMembershipCollection } = - entities.organizationMembership - const { wrapTeamMembership, wrapTeamMembershipCollection } = entities.teamMembership - const { wrapTeamSpaceMembership, wrapTeamSpaceMembershipCollection } = - entities.teamSpaceMembership - const { wrapTeam, wrapTeamCollection } = entities.team - const { wrapSpaceMembership, wrapSpaceMembershipCollection } = entities.spaceMembership - const { wrapOrganizationInvitation } = entities.organizationInvitation - const { wrapAppUpload } = entities.appUpload - const { wrapAppSigningSecret } = entities.appSigningSecret - const { wrapAppEventSubscription } = entities.appEventSubscription - const { wrapAppKey, wrapAppKeyCollection } = entities.appKey - const { wrapAppDetails } = entities.appDetails - const { wrapAppAction, wrapAppActionCollection } = entities.appAction - const { wrapFunction, wrapFunctionCollection } = entities.func - const { wrapRoleCollection } = entities.role - const { wrapSpaceCollection } = entities.space - return { /** * Gets a collection of spaces in the organization diff --git a/lib/create-space-api.ts b/lib/create-space-api.ts index 77e894b7b4..5040d0a53b 100644 --- a/lib/create-space-api.ts +++ b/lib/create-space-api.ts @@ -5,7 +5,6 @@ import { createRequestConfig } from 'contentful-sdk-core' import type { MakeRequest, PaginationQueryOptions, QueryOptions } from './common-types' -import entities from './entities' import type { CreateApiKeyProps } from './entities/api-key' import type { CreateEnvironmentProps } from './entities/environment' import type { CreateEnvironmentAliasProps } from './entities/environment-alias' @@ -21,6 +20,24 @@ import type { } from './entities/webhook' import type { AiActionProps, AiActionQueryOptions, CreateAiActionProps } from './entities/ai-action' +import { wrapSpace } from './entities/space' +import { wrapEnvironment, wrapEnvironmentCollection } from './entities/environment' +import { wrapWebhook, wrapWebhookCollection } from './entities/webhook' +import { wrapRole, wrapRoleCollection } from './entities/role' +import { wrapUser, wrapUserCollection } from './entities/user' +import { wrapSpaceMember, wrapSpaceMemberCollection } from './entities/space-member' +import { wrapSpaceMembership, wrapSpaceMembershipCollection } from './entities/space-membership' +import { + wrapTeamSpaceMembership, + wrapTeamSpaceMembershipCollection, +} from './entities/team-space-membership' +import { wrapTeamCollection } from './entities/team' +import { wrapApiKey, wrapApiKeyCollection } from './entities/api-key' +import { wrapEnvironmentAlias, wrapEnvironmentAliasCollection } from './entities/environment-alias' +import { wrapPreviewApiKey, wrapPreviewApiKeyCollection } from './entities/preview-api-key' +import { wrapScheduledAction, wrapScheduledActionCollection } from './entities/scheduled-action' +import { wrapAiAction, wrapAiActionCollection } from './entities/ai-action' + /** * @private */ @@ -33,23 +50,6 @@ export type ContentfulSpaceAPI = ReturnType * @private */ export default function createSpaceApi(makeRequest: MakeRequest) { - const { wrapSpace } = entities.space - const { wrapEnvironment, wrapEnvironmentCollection } = entities.environment - const { wrapWebhook, wrapWebhookCollection } = entities.webhook - const { wrapRole, wrapRoleCollection } = entities.role - const { wrapUser, wrapUserCollection } = entities.user - const { wrapSpaceMember, wrapSpaceMemberCollection } = entities.spaceMember - const { wrapSpaceMembership, wrapSpaceMembershipCollection } = entities.spaceMembership - const { wrapTeamSpaceMembership, wrapTeamSpaceMembershipCollection } = - entities.teamSpaceMembership - const { wrapTeamCollection } = entities.team - const { wrapApiKey, wrapApiKeyCollection } = entities.apiKey - const { wrapEnvironmentAlias, wrapEnvironmentAliasCollection } = entities.environmentAlias - const { wrapPreviewApiKey, wrapPreviewApiKeyCollection } = entities.previewApiKey - const { wrapScheduledAction, wrapScheduledActionCollection } = entities.scheduledAction - const { wrapAiAction, wrapAiActionCollection } = entities.aiAction - const { wrapAiActionInvocation, wrapAiActionInvocationCollection } = entities.aiActionInvocation - return { /** * Deletes the space diff --git a/lib/create-ui-config-api.ts b/lib/create-ui-config-api.ts index 7cde502af8..b66008e007 100644 --- a/lib/create-ui-config-api.ts +++ b/lib/create-ui-config-api.ts @@ -1,7 +1,8 @@ import type { MakeRequest } from './common-types' -import entities from './entities' import type { UIConfig } from './entities/ui-config' +import { wrapUIConfig } from './entities/ui-config' + /** * @private */ @@ -11,8 +12,6 @@ export type ContentfulUIConfigApi = ReturnType * @private */ export default function createUIConfigApi(makeRequest: MakeRequest) { - const { wrapUIConfig } = entities.uiConfig - const getParams = (self: UIConfig) => { const uiConfig = self.toPlainObject() diff --git a/lib/create-user-ui-config-api.ts b/lib/create-user-ui-config-api.ts index e18e7d5bfc..ea7a07001d 100644 --- a/lib/create-user-ui-config-api.ts +++ b/lib/create-user-ui-config-api.ts @@ -1,7 +1,8 @@ import type { MakeRequest } from './common-types' -import entities from './entities' import type { UserUIConfig } from './entities/user-ui-config' +import { wrapUserUIConfig } from './entities/user-ui-config' + /** * @private */ @@ -11,8 +12,6 @@ export type ContentfulUIConfigApi = ReturnType * @private */ export default function createUserUIConfigApi(makeRequest: MakeRequest) { - const { wrapUserUIConfig } = entities.userUIConfig - const getParams = (self: UserUIConfig) => { const userUIConfig = self.toPlainObject() diff --git a/lib/entities/index.ts b/lib/entities/index.ts deleted file mode 100644 index d63243839a..0000000000 --- a/lib/entities/index.ts +++ /dev/null @@ -1,127 +0,0 @@ -import * as aiAction from './ai-action' -import * as aiActionInvocation from './ai-action-invocation' -import * as apiKey from './api-key' -import * as appAction from './app-action' -import * as appActionCall from './app-action-call' -import * as appBundle from './app-bundle' -import * as appDefinition from './app-definition' -import * as appDetails from './app-details' -import * as appInstallation from './app-installation' -import * as appSignedRequest from './app-signed-request' -import * as appSigningSecret from './app-signing-secret' -import * as appEventSubscription from './app-event-subscription' -import * as appKey from './app-key' -import * as appAccessToken from './app-access-token' -import * as appUpload from './app-upload' -import * as asset from './asset' -import * as assetKey from './asset-key' -import * as bulkAction from './bulk-action' -import * as comment from './comment' -import * as contentType from './content-type' -import * as editorInterface from './editor-interface' -import * as entry from './entry' -import * as environment from './environment' -import * as environmentAlias from './environment-alias' -import * as environmentTemplate from './environment-template' -import * as environmentTemplateInstallation from './environment-template-installation' -import * as extension from './extension' -import * as func from './function' -import * as functionLog from './function-log' -import * as locale from './locale' -import * as oauthApplication from './oauth-application' -import * as organization from './organization' -import * as organizationInvitation from './organization-invitation' -import * as organizationMembership from './organization-membership' -import * as personalAccessToken from './personal-access-token' -import * as accessToken from './access-token' -import * as previewApiKey from './preview-api-key' -import * as release from './release' -import * as releaseAction from './release-action' -import * as role from './role' -import * as scheduledAction from './scheduled-action' -import * as snapshot from './snapshot' -import * as space from './space' -import * as spaceMember from './space-member' -import * as spaceMembership from './space-membership' -import * as tag from './tag' -import * as task from './task' -import * as team from './team' -import * as teamMembership from './team-membership' -import * as teamSpaceMembership from './team-space-membership' -import * as uiConfig from './ui-config' -import * as upload from './upload' -import * as usage from './usage' -import * as user from './user' -import * as userUIConfig from './user-ui-config' -import * as webhook from './webhook' -import * as workflowDefinition from './workflow-definition' -import * as concept from './concept' -import * as conceptScheme from './concept-scheme' -import * as resourceProvider from './resource-provider' -import * as resourceType from './resource-type' -import * as resource from './resource' - -export default { - aiAction, - aiActionInvocation, - accessToken, - appAction, - appActionCall, - appBundle, - apiKey, - appDefinition, - appInstallation, - appUpload, - appDetails, - appSignedRequest, - appSigningSecret, - appEventSubscription, - appKey, - appAccessToken, - asset, - assetKey, - bulkAction, - comment, - concept, - conceptScheme, - contentType, - editorInterface, - entry, - environment, - environmentAlias, - environmentTemplate, - environmentTemplateInstallation, - extension, - func, - functionLog, - locale, - oauthApplication, - organization, - organizationInvitation, - organizationMembership, - personalAccessToken, - previewApiKey, - release, - releaseAction, - resourceProvider, - resourceType, - resource, - role, - scheduledAction, - snapshot, - space, - spaceMember, - spaceMembership, - tag, - task, - team, - teamMembership, - teamSpaceMembership, - uiConfig, - upload, - usage, - user, - userUIConfig, - webhook, - workflowDefinition, -} diff --git a/lib/entities/resource-provider.ts b/lib/entities/resource-provider.ts index f37dc1cb6f..d232eb9d9e 100644 --- a/lib/entities/resource-provider.ts +++ b/lib/entities/resource-provider.ts @@ -9,7 +9,8 @@ import { toPlainObject, freezeSys } from 'contentful-sdk-core' import copy from 'fast-copy' import enhanceWithMethods from '../enhance-with-methods' import type { ResourceType, UpsertResourceTypeProps } from './resource-type' -import entities from '.' + +import { wrapResourceType } from './resource-type' export type ResourceProviderProps = { /** @@ -47,8 +48,6 @@ export interface ResourceProvider * @private */ function createResourceProviderApi(makeRequest: MakeRequest) { - const { wrapResourceType } = entities.resourceType - return { /** * Sends an update to the server with any changes made to the object's properties diff --git a/lib/export-types.ts b/lib/export-types.ts index 78e76a21c1..983a1f3c10 100644 --- a/lib/export-types.ts +++ b/lib/export-types.ts @@ -285,7 +285,8 @@ export type { WorkflowStepProps, WorkflowStepTaskAction, } from './entities/workflow-definition' -export * from './plain/common-types' +export * from './plain/plain-client-types' +export { OptionalDefaults } from './plain/wrappers/wrap' // was previously deep imported in user_interface export { WorkflowStepPermissionAction, diff --git a/lib/index.ts b/lib/index.ts index 7ce2dfdd1f..44c528efba 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -10,9 +10,9 @@ import type { MakeRequest, XOR } from './common-types' import type { AdapterParams } from './create-adapter' import { createAdapter } from './create-adapter' import type { ClientAPI } from './create-contentful-api' -import createContentfulApi from './create-contentful-api' -import type { PlainClientAPI } from './plain/common-types' -import type { DefaultParams } from './plain/plain-client' +import createClientApi from './create-contentful-api' +import type { PlainClientAPI } from './plain/plain-client-types' +import type { PlainClientDefaultParams } from './plain/plain-client' import { createPlainClient } from './plain/plain-client' import * as editorInterfaceDefaults from './constants/editor-interface-defaults' import { ScheduledActionStatus } from './entities/scheduled-action' @@ -21,16 +21,14 @@ export type { ClientAPI } from './create-contentful-api' export { asIterator } from './plain/as-iterator' export { fetchAll } from './plain/pagination-helper' export { isDraft, isPublished, isUpdated } from './plain/checks' -export type { PlainClientAPI } from './plain/common-types' -export { createClient } +export type { PlainClientAPI } from './plain/plain-client-types' export { RestAdapter } from './adapters/REST/rest-adapter' export type { RestAdapterParams } from './adapters/REST/rest-adapter' export { makeRequest } from './adapters/REST/make-request' export { editorInterfaceDefaults } -export type PlainClientDefaultParams = DefaultParams -export * from './export-types' +export type { PlainClientDefaultParams } from './plain/plain-client' export { ScheduledActionStatus } -export { OptionalDefaults } from './plain/wrappers/wrap' // was previously deep imported in user_interface +export type * from './export-types' interface UserAgentParams { /** @@ -45,16 +43,11 @@ interface UserAgentParams { feature?: string } -/** - * @deprecated - */ -export type ClientParams = RestAdapterParams & UserAgentParams - export type ClientOptions = UserAgentParams & XOR /** * Create a client instance - * @param params - Client initialization parameters + * @param clientOptions - Client initialization parameters * * ```javascript * const client = contentfulManagement.createClient({ @@ -62,54 +55,40 @@ export type ClientOptions = UserAgentParams & XOR and ReturnType only return the types of the last overload - // https://github.com/microsoft/TypeScript/issues/26591 - // @ts-expect-error + // @ts-expect-error Parameters and ReturnType only return the types of the last overload (https://github.com/microsoft/TypeScript/issues/26591) const makeRequest: MakeRequest = (options: Parameters[0]): ReturnType => adapter.makeRequest({ ...options, userAgent }) if (opts.type === 'plain') { return createPlainClient(makeRequest, opts.defaults) } else { - return createContentfulApi(makeRequest) as ClientAPI + return createClientApi(makeRequest) as ClientAPI } } diff --git a/lib/methods/release-action.ts b/lib/methods/release-action.ts index 738d12a406..99bb2b47d1 100644 --- a/lib/methods/release-action.ts +++ b/lib/methods/release-action.ts @@ -1,5 +1,5 @@ import type { ReleaseActionProps, ReleaseActionTypes } from '../entities/release-action' -import type { PlainClientAPI } from '../plain/common-types' +import type { PlainClientAPI } from '../plain/plain-client-types' import type { AsyncActionProcessingOptions } from './action' import { pollAsyncActionStatus } from './action' diff --git a/lib/plain/entities/resource-type.ts b/lib/plain/entities/resource-type.ts index 61be6f610d..1da39cace4 100644 --- a/lib/plain/entities/resource-type.ts +++ b/lib/plain/entities/resource-type.ts @@ -8,8 +8,11 @@ import type { GetResourceTypeParams, GetSpaceEnvironmentParams, } from '../../common-types' -import type { ResourceTypeProps, UpsertResourceTypeProps } from '../../export-types' -import type { SpaceEnvResourceTypeProps } from '../../entities/resource-type' +import type { + SpaceEnvResourceTypeProps, + ResourceTypeProps, + UpsertResourceTypeProps, +} from '../../entities/resource-type' export type ResourceTypePlainClientAPI = { /* diff --git a/lib/plain/entities/tag.ts b/lib/plain/entities/tag.ts index d49e5dfd00..83561b20e9 100644 --- a/lib/plain/entities/tag.ts +++ b/lib/plain/entities/tag.ts @@ -5,8 +5,7 @@ import type { QueryParams, CollectionProp, } from '../../common-types' -import type { UpdateTagProps, DeleteTagParams } from '../../entities/tag' -import type { TagProps, CreateTagProps } from '../../export-types' +import type { TagProps, CreateTagProps, UpdateTagProps, DeleteTagParams } from '../../entities/tag' import type { OptionalDefaults } from '../wrappers/wrap' export type TagPlainClientAPI = { diff --git a/lib/plain/entities/team-membership.ts b/lib/plain/entities/team-membership.ts index 2b9125e6fc..cfea1bacb3 100644 --- a/lib/plain/entities/team-membership.ts +++ b/lib/plain/entities/team-membership.ts @@ -6,7 +6,7 @@ import type { CollectionProp, GetTeamParams, } from '../../common-types' -import type { TeamMembershipProps, CreateTeamMembershipProps } from '../../export-types' +import type { TeamMembershipProps, CreateTeamMembershipProps } from '../../entities/team-membership' import type { OptionalDefaults } from '../wrappers/wrap' export type TeamMembershipPlainClientAPI = { diff --git a/lib/plain/entities/team-space-membership.ts b/lib/plain/entities/team-space-membership.ts index 34b5951a1a..a13e1526d3 100644 --- a/lib/plain/entities/team-space-membership.ts +++ b/lib/plain/entities/team-space-membership.ts @@ -6,7 +6,10 @@ import type { CollectionProp, GetOrganizationParams, } from '../../common-types' -import type { TeamSpaceMembershipProps, CreateTeamSpaceMembershipProps } from '../../export-types' +import type { + TeamSpaceMembershipProps, + CreateTeamSpaceMembershipProps, +} from '../../entities/team-space-membership' import type { OptionalDefaults } from '../wrappers/wrap' export type TeamSpaceMembershipPlainClientAPI = { diff --git a/lib/plain/entities/team.ts b/lib/plain/entities/team.ts index 841016c693..3b6aa6aae4 100644 --- a/lib/plain/entities/team.ts +++ b/lib/plain/entities/team.ts @@ -6,7 +6,7 @@ import type { CollectionProp, GetSpaceParams, } from '../../common-types' -import type { TeamProps, CreateTeamProps } from '../../export-types' +import type { TeamProps, CreateTeamProps } from '../../entities/team' import type { OptionalDefaults } from '../wrappers/wrap' export type TeamPlainClientAPI = { diff --git a/lib/plain/entities/usage.ts b/lib/plain/entities/usage.ts index 091202f34c..da1de8c554 100644 --- a/lib/plain/entities/usage.ts +++ b/lib/plain/entities/usage.ts @@ -1,5 +1,5 @@ import type { CollectionProp, QueryParams } from '../../common-types' -import type { UsageProps } from '../../export-types' +import type { UsageProps } from '../../entities/usage' import type { OptionalDefaults } from '../wrappers/wrap' export type UsagePlainClientAPI = { diff --git a/lib/plain/entities/user.ts b/lib/plain/entities/user.ts index 0a92bdd216..4c87b6d5c1 100644 --- a/lib/plain/entities/user.ts +++ b/lib/plain/entities/user.ts @@ -4,7 +4,7 @@ import type { GetSpaceParams, QueryParams, } from '../../common-types' -import type { UserProps } from '../../export-types' +import type { UserProps } from '../../entities/user' import type { OptionalDefaults } from '../wrappers/wrap' export type UserPlainClientAPI = { diff --git a/lib/plain/common-types.ts b/lib/plain/plain-client-types.ts similarity index 99% rename from lib/plain/common-types.ts rename to lib/plain/plain-client-types.ts index 1a98cf55d5..4ddf1a9883 100644 --- a/lib/plain/common-types.ts +++ b/lib/plain/plain-client-types.ts @@ -134,7 +134,7 @@ import type { WebhookPlainClientAPI } from './entities/webhook' import type { WorkflowPlainClientAPI } from './entities/workflow' import type { WorkflowDefinitionPlainClientAPI } from './entities/workflow-definition' import type { WorkflowsChangelogPlainClientAPI } from './entities/workflows-changelog' -import type { DefaultParams, OptionalDefaults } from './wrappers/wrap' +import type { PlainClientDefaultParams, OptionalDefaults } from './wrappers/wrap' import type { OAuthApplicationPlainClientAPI } from './entities/oauth-application' import type { FunctionLogPlainClientAPI } from './entities/function-log' import type { AiActionPlainClientAPI } from './entities/ai-action' @@ -142,7 +142,7 @@ import type { AiActionInvocationPlainClientAPI } from './entities/ai-action-invo export type PlainClientAPI = { raw: { - getDefaultParams(): DefaultParams | undefined + getDefaultParams(): PlainClientDefaultParams | undefined get(url: string, config?: RawAxiosRequestConfig): Promise post(url: string, payload?: any, config?: RawAxiosRequestConfig): Promise patch(url: string, payload?: any, config?: RawAxiosRequestConfig): Promise diff --git a/lib/plain/plain-client.ts b/lib/plain/plain-client.ts index d2ff42ec53..4fca36d9e2 100644 --- a/lib/plain/plain-client.ts +++ b/lib/plain/plain-client.ts @@ -1,17 +1,17 @@ import type { GetContentTypeParams, GetSpaceEnvironmentParams, MakeRequest } from '../common-types' import { omitAndDeleteField } from '../methods/content-type' -import type { PlainClientAPI } from './common-types' -import type { DefaultParams } from './wrappers/wrap' +import type { PlainClientAPI } from './plain-client-types' +import type { PlainClientDefaultParams } from './wrappers/wrap' import { wrap } from './wrappers/wrap' -export type { DefaultParams } from './wrappers/wrap' +export type { PlainClientDefaultParams } from './wrappers/wrap' /** * @private */ export const createPlainClient = ( makeRequest: MakeRequest, - defaults: DefaultParams | undefined, + defaults: PlainClientDefaultParams | undefined, ): PlainClientAPI => { const wrapParams = { makeRequest, defaults } diff --git a/lib/plain/wrappers/wrap.ts b/lib/plain/wrappers/wrap.ts index 09774bce91..520f525c91 100644 --- a/lib/plain/wrappers/wrap.ts +++ b/lib/plain/wrappers/wrap.ts @@ -1,6 +1,6 @@ import type { MakeRequest, MRActions, MRReturn } from '../../common-types' -export type DefaultParams = { +export type PlainClientDefaultParams = { spaceId?: string environmentId?: string organizationId?: string @@ -15,15 +15,15 @@ type UnionOmit = T extends unknown ? Omit : neve /** * @private Not meant to be used directly by consumers and may change at any time */ -export type OptionalDefaults = UnionOmit & - Partial>> +export type OptionalDefaults = UnionOmit & + Partial>> /** * @private */ export type WrapParams = { makeRequest: MakeRequest - defaults?: DefaultParams + defaults?: PlainClientDefaultParams } /** @@ -68,21 +68,15 @@ export const wrap = => - // @ts-expect-error + // @ts-expect-error see above makeRequest({ - // @ts-expect-error entityType, - // @ts-expect-error action, - // @ts-expect-error params: { ...defaults, ...params }, payload, // Required after adding optional headers to a delete method for the first time - // @ts-expect-error headers, - }) + } as unknown) }