From cd203e7d00a0e572a4a857693fb8fbeced6c6798 Mon Sep 17 00:00:00 2001 From: Kiril Ivonchik Date: Tue, 26 Aug 2025 13:01:44 +0200 Subject: [PATCH] Timeout error fix, made operationName public --- package.json | 2 +- src/core/operation.ts | 7 +++++-- src/operations/check-connection-status.ts | 2 +- src/operations/comment-on-post.ts | 2 +- src/operations/custom-workflow.ts | 2 +- src/operations/fetch-company.ts | 2 +- src/operations/fetch-person.ts | 2 +- src/operations/fetch-post.ts | 2 +- src/operations/nv-fetch-company.ts | 2 +- src/operations/nv-fetch-person.ts | 2 +- src/operations/nv-search-companies.ts | 2 +- src/operations/nv-search-people.ts | 2 +- src/operations/nv-send-message.ts | 2 +- src/operations/nv-sync-conversation.ts | 2 +- src/operations/react-to-post.ts | 2 +- src/operations/remove-connection.ts | 2 +- src/operations/retrieve-connections.ts | 2 +- src/operations/retrieve-pending-requests.ts | 2 +- src/operations/retrieve-performance.ts | 2 +- src/operations/retrieve-ssi.ts | 2 +- src/operations/search-companies.ts | 2 +- src/operations/search-people.ts | 2 +- src/operations/send-connection-request.ts | 2 +- src/operations/send-message.ts | 2 +- src/operations/sync-conversation.ts | 2 +- src/operations/withdraw-connection-request.ts | 2 +- src/types/errors.ts | 2 +- 27 files changed, 31 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 7737e2d..85f4fa7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "linkedapi-node", - "version": "1.2.1", + "version": "1.2.2", "description": "Official TypeScript SDK for Linked API", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/core/operation.ts b/src/core/operation.ts index c3faaef..d2a248e 100644 --- a/src/core/operation.ts +++ b/src/core/operation.ts @@ -45,7 +45,7 @@ export interface WaitForCompletionOptions { } export abstract class Operation { - protected abstract readonly operationName: TOperationName; + public abstract readonly operationName: TOperationName; protected abstract readonly mapper: BaseMapper; constructor(private readonly httpClient: HttpClient) {} @@ -67,7 +67,10 @@ export abstract class Operation { options: WaitForCompletionOptions = {}, ): Promise> { try { - return pollWorkflowResult>(() => this.status(workflowId), options); + return await pollWorkflowResult>( + () => this.status(workflowId), + options, + ); } catch (error) { if (error instanceof LinkedApiError && error.type === 'workflowTimeout') { throw new LinkedApiWorkflowTimeoutError(workflowId, this.operationName); diff --git a/src/operations/check-connection-status.ts b/src/operations/check-connection-status.ts index 529ca9f..57f2762 100644 --- a/src/operations/check-connection-status.ts +++ b/src/operations/check-connection-status.ts @@ -6,7 +6,7 @@ export class CheckConnectionStatus extends Operation< TCheckConnectionStatusParams, TCheckConnectionStatusResult > { - protected override readonly operationName: TOperationName = 'checkConnectionStatus'; + public readonly operationName: TOperationName = 'checkConnectionStatus'; protected override readonly mapper = new SimpleWorkflowMapper< TCheckConnectionStatusParams, TCheckConnectionStatusResult diff --git a/src/operations/comment-on-post.ts b/src/operations/comment-on-post.ts index c310fb5..8b169d2 100644 --- a/src/operations/comment-on-post.ts +++ b/src/operations/comment-on-post.ts @@ -3,7 +3,7 @@ import { VoidWorkflowMapper } from '../mappers'; import { TCommentOnPostParams } from '../types'; export class CommentOnPost extends Operation { - protected override readonly operationName: TOperationName = 'commentOnPost'; + public override readonly operationName: TOperationName = 'commentOnPost'; protected override readonly mapper = new VoidWorkflowMapper( 'st.commentOnPost', ); diff --git a/src/operations/custom-workflow.ts b/src/operations/custom-workflow.ts index 18836c3..68a2f84 100644 --- a/src/operations/custom-workflow.ts +++ b/src/operations/custom-workflow.ts @@ -3,7 +3,7 @@ import { BaseMapper, TMappedResponse } from '../mappers'; import { TWorkflowCompletion, TWorkflowDefinition } from '../types'; export class CustomWorkflow extends Operation { - protected readonly operationName: TOperationName = 'customWorkflow'; + public readonly operationName: TOperationName = 'customWorkflow'; protected readonly mapper = new CustomWorkflowMapper(); } diff --git a/src/operations/fetch-company.ts b/src/operations/fetch-company.ts index 4c6ae26..2dd253f 100644 --- a/src/operations/fetch-company.ts +++ b/src/operations/fetch-company.ts @@ -8,7 +8,7 @@ import { } from '../types'; export class FetchCompany extends Operation { - protected override readonly operationName: TOperationName = 'fetchCompany'; + public override readonly operationName: TOperationName = 'fetchCompany'; protected override readonly mapper = new FetchCompanyMapper(); constructor(httpClient: HttpClient) { diff --git a/src/operations/fetch-person.ts b/src/operations/fetch-person.ts index 88b2717..209d68f 100644 --- a/src/operations/fetch-person.ts +++ b/src/operations/fetch-person.ts @@ -3,7 +3,7 @@ import { TActionConfig, ThenWorkflowMapper } from '../mappers/then-workflow-mapp import { TBaseFetchPersonParams, TFetchPersonParams, TFetchPersonResult } from '../types'; export class FetchPerson extends Operation { - protected override readonly operationName: TOperationName = 'fetchPerson'; + public override readonly operationName: TOperationName = 'fetchPerson'; protected override readonly mapper = new FetchPersonMapper(); public override async execute( diff --git a/src/operations/fetch-post.ts b/src/operations/fetch-post.ts index 9bfa53c..174cffa 100644 --- a/src/operations/fetch-post.ts +++ b/src/operations/fetch-post.ts @@ -3,7 +3,7 @@ import { SimpleWorkflowMapper } from '../mappers'; import { TFetchPostParams, TFetchPostResult } from '../types'; export class FetchPost extends Operation { - protected override readonly operationName: TOperationName = 'fetchPost'; + public override readonly operationName: TOperationName = 'fetchPost'; protected override readonly mapper = new SimpleWorkflowMapper( { actionType: 'st.openPost', diff --git a/src/operations/nv-fetch-company.ts b/src/operations/nv-fetch-company.ts index 821d0ec..8a5ecab 100644 --- a/src/operations/nv-fetch-company.ts +++ b/src/operations/nv-fetch-company.ts @@ -3,7 +3,7 @@ import { TActionConfig, ThenWorkflowMapper } from '../mappers/then-workflow-mapp import { TNvBaseFetchCompanyParams, TNvFetchCompanyParams, TNvFetchCompanyResult } from '../types'; export class NvFetchCompany extends Operation { - protected override readonly operationName: TOperationName = 'nvFetchCompany'; + public override readonly operationName: TOperationName = 'nvFetchCompany'; protected override readonly mapper = new NvFetchCompanyMapper(); public override async execute( diff --git a/src/operations/nv-fetch-person.ts b/src/operations/nv-fetch-person.ts index b5dbf71..5e5b513 100644 --- a/src/operations/nv-fetch-person.ts +++ b/src/operations/nv-fetch-person.ts @@ -3,7 +3,7 @@ import { ThenWorkflowMapper } from '../mappers'; import { TNvOpenPersonPageParams, TNvOpenPersonPageResult } from '../types'; export class NvFetchPerson extends Operation { - protected override readonly operationName: TOperationName = 'nvFetchPerson'; + public override readonly operationName: TOperationName = 'nvFetchPerson'; protected override readonly mapper = new NvFetchPersonMapper(); } diff --git a/src/operations/nv-search-companies.ts b/src/operations/nv-search-companies.ts index 28944bc..3121193 100644 --- a/src/operations/nv-search-companies.ts +++ b/src/operations/nv-search-companies.ts @@ -6,7 +6,7 @@ export class NvSearchCompanies extends Operation< TNvSearchCompaniesParams, TNvSearchCompanyResult[] > { - protected override readonly operationName: TOperationName = 'nvSearchCompanies'; + public override readonly operationName: TOperationName = 'nvSearchCompanies'; protected override readonly mapper = new ArrayWorkflowMapper< TNvSearchCompaniesParams, TNvSearchCompanyResult diff --git a/src/operations/nv-search-people.ts b/src/operations/nv-search-people.ts index 59eb7be..f1b4d0f 100644 --- a/src/operations/nv-search-people.ts +++ b/src/operations/nv-search-people.ts @@ -3,7 +3,7 @@ import { ArrayWorkflowMapper } from '../mappers/array-workflow-mapper'; import { TNvSearchPeopleParams, TNvSearchPeopleResult } from '../types'; export class NvSearchPeople extends Operation { - protected override readonly operationName: TOperationName = 'nvSearchPeople'; + public override readonly operationName: TOperationName = 'nvSearchPeople'; protected override readonly mapper = new ArrayWorkflowMapper< TNvSearchPeopleParams, TNvSearchPeopleResult diff --git a/src/operations/nv-send-message.ts b/src/operations/nv-send-message.ts index 42bb3d7..250c0f7 100644 --- a/src/operations/nv-send-message.ts +++ b/src/operations/nv-send-message.ts @@ -3,7 +3,7 @@ import { VoidWorkflowMapper } from '../mappers/void-workflow-mapper'; import { TNvSendMessageParams } from '../types'; export class NvSendMessage extends Operation { - protected override readonly operationName: TOperationName = 'nvSendMessage'; + public override readonly operationName: TOperationName = 'nvSendMessage'; protected override readonly mapper = new VoidWorkflowMapper( 'nv.sendMessage', ); diff --git a/src/operations/nv-sync-conversation.ts b/src/operations/nv-sync-conversation.ts index 2c6c06d..4b42e73 100644 --- a/src/operations/nv-sync-conversation.ts +++ b/src/operations/nv-sync-conversation.ts @@ -3,7 +3,7 @@ import { VoidWorkflowMapper } from '../mappers'; import { TNvSyncConversationParams } from '../types'; export class NvSyncConversation extends Operation { - protected override readonly operationName: TOperationName = 'nvSyncConversation'; + public override readonly operationName: TOperationName = 'nvSyncConversation'; protected override readonly mapper = new VoidWorkflowMapper( 'nv.syncConversation', ); diff --git a/src/operations/react-to-post.ts b/src/operations/react-to-post.ts index cc72898..83dfe4a 100644 --- a/src/operations/react-to-post.ts +++ b/src/operations/react-to-post.ts @@ -3,6 +3,6 @@ import { VoidWorkflowMapper } from '../mappers'; import { TReactToPostParams } from '../types'; export class ReactToPost extends Operation { - protected override readonly operationName: TOperationName = 'reactToPost'; + public override readonly operationName: TOperationName = 'reactToPost'; protected override readonly mapper = new VoidWorkflowMapper('st.reactToPost'); } diff --git a/src/operations/remove-connection.ts b/src/operations/remove-connection.ts index a15ed46..4b921f8 100644 --- a/src/operations/remove-connection.ts +++ b/src/operations/remove-connection.ts @@ -3,7 +3,7 @@ import { VoidWorkflowMapper } from '../mappers'; import { TRemoveConnectionParams } from '../types'; export class RemoveConnection extends Operation { - protected override readonly operationName: TOperationName = 'removeConnection'; + public override readonly operationName: TOperationName = 'removeConnection'; protected override readonly mapper = new VoidWorkflowMapper( 'st.removeConnection', ); diff --git a/src/operations/retrieve-connections.ts b/src/operations/retrieve-connections.ts index f4e708a..5b98ecb 100644 --- a/src/operations/retrieve-connections.ts +++ b/src/operations/retrieve-connections.ts @@ -6,7 +6,7 @@ export class RetrieveConnections extends Operation< TRetrieveConnectionsParams, TRetrieveConnectionsResult[] > { - protected override readonly operationName: TOperationName = 'retrieveConnections'; + public override readonly operationName: TOperationName = 'retrieveConnections'; protected override readonly mapper = new ArrayWorkflowMapper< TRetrieveConnectionsParams, TRetrieveConnectionsResult diff --git a/src/operations/retrieve-pending-requests.ts b/src/operations/retrieve-pending-requests.ts index e6639fa..5652a77 100644 --- a/src/operations/retrieve-pending-requests.ts +++ b/src/operations/retrieve-pending-requests.ts @@ -3,7 +3,7 @@ import { ArrayWorkflowMapper } from '../mappers/array-workflow-mapper'; import { TRetrievePendingRequestsResult } from '../types'; export class RetrievePendingRequests extends Operation { - protected override readonly operationName: TOperationName = 'retrievePendingRequests'; + public override readonly operationName: TOperationName = 'retrievePendingRequests'; protected override readonly mapper = new ArrayWorkflowMapper< void, TRetrievePendingRequestsResult diff --git a/src/operations/retrieve-performance.ts b/src/operations/retrieve-performance.ts index 178617d..766ed38 100644 --- a/src/operations/retrieve-performance.ts +++ b/src/operations/retrieve-performance.ts @@ -3,7 +3,7 @@ import { SimpleWorkflowMapper } from '../mappers'; import { TRetrievePerformanceResult } from '../types'; export class RetrievePerformance extends Operation { - protected override readonly operationName: TOperationName = 'retrievePerformance'; + public override readonly operationName: TOperationName = 'retrievePerformance'; protected override readonly mapper = new SimpleWorkflowMapper({ actionType: 'st.retrievePerformance', }); diff --git a/src/operations/retrieve-ssi.ts b/src/operations/retrieve-ssi.ts index 98206cf..606a899 100644 --- a/src/operations/retrieve-ssi.ts +++ b/src/operations/retrieve-ssi.ts @@ -3,7 +3,7 @@ import { SimpleWorkflowMapper } from '../mappers'; import { TRetrieveSSIResult } from '../types'; export class RetrieveSSI extends Operation { - protected override readonly operationName: TOperationName = 'retrieveSSI'; + public override readonly operationName: TOperationName = 'retrieveSSI'; protected override readonly mapper = new SimpleWorkflowMapper({ actionType: 'st.retrieveSSI', }); diff --git a/src/operations/search-companies.ts b/src/operations/search-companies.ts index a5f6c17..462b7ff 100644 --- a/src/operations/search-companies.ts +++ b/src/operations/search-companies.ts @@ -3,7 +3,7 @@ import { ArrayWorkflowMapper } from '../mappers/array-workflow-mapper'; import { TSearchCompaniesParams, TSearchCompanyResult } from '../types'; export class SearchCompanies extends Operation { - protected override readonly operationName: TOperationName = 'searchCompanies'; + public override readonly operationName: TOperationName = 'searchCompanies'; protected override readonly mapper = new ArrayWorkflowMapper< TSearchCompaniesParams, TSearchCompanyResult diff --git a/src/operations/search-people.ts b/src/operations/search-people.ts index 4dbeb4a..28010de 100644 --- a/src/operations/search-people.ts +++ b/src/operations/search-people.ts @@ -3,7 +3,7 @@ import { ArrayWorkflowMapper } from '../mappers/array-workflow-mapper'; import { TSearchPeopleParams, TSearchPeopleResult } from '../types'; export class SearchPeople extends Operation { - protected override readonly operationName: TOperationName = 'searchPeople'; + public override readonly operationName: TOperationName = 'searchPeople'; protected override readonly mapper = new ArrayWorkflowMapper< TSearchPeopleParams, TSearchPeopleResult diff --git a/src/operations/send-connection-request.ts b/src/operations/send-connection-request.ts index 8a6ed8b..78cee11 100644 --- a/src/operations/send-connection-request.ts +++ b/src/operations/send-connection-request.ts @@ -3,7 +3,7 @@ import { VoidWorkflowMapper } from '../mappers'; import { TSendConnectionRequestParams } from '../types'; export class SendConnectionRequest extends Operation { - protected override readonly operationName: TOperationName = 'sendConnectionRequest'; + public override readonly operationName: TOperationName = 'sendConnectionRequest'; protected override readonly mapper = new VoidWorkflowMapper( 'st.sendConnectionRequest', ); diff --git a/src/operations/send-message.ts b/src/operations/send-message.ts index aaabcb3..30172a9 100644 --- a/src/operations/send-message.ts +++ b/src/operations/send-message.ts @@ -3,6 +3,6 @@ import { VoidWorkflowMapper } from '../mappers/void-workflow-mapper'; import { TSendMessageParams } from '../types'; export class SendMessage extends Operation { - protected override readonly operationName: TOperationName = 'sendMessage'; + public override readonly operationName: TOperationName = 'sendMessage'; protected override readonly mapper = new VoidWorkflowMapper('st.sendMessage'); } diff --git a/src/operations/sync-conversation.ts b/src/operations/sync-conversation.ts index 698a46d..cd08b22 100644 --- a/src/operations/sync-conversation.ts +++ b/src/operations/sync-conversation.ts @@ -3,7 +3,7 @@ import { VoidWorkflowMapper } from '../mappers'; import { TSyncConversationParams } from '../types'; export class SyncConversation extends Operation { - protected override readonly operationName: TOperationName = 'syncConversation'; + public override readonly operationName: TOperationName = 'syncConversation'; protected override readonly mapper = new VoidWorkflowMapper( 'st.syncConversation', ); diff --git a/src/operations/withdraw-connection-request.ts b/src/operations/withdraw-connection-request.ts index a953348..1db91b4 100644 --- a/src/operations/withdraw-connection-request.ts +++ b/src/operations/withdraw-connection-request.ts @@ -3,7 +3,7 @@ import { VoidWorkflowMapper } from '../mappers'; import { TWithdrawConnectionRequestParams } from '../types'; export class WithdrawConnectionRequest extends Operation { - protected override readonly operationName: TOperationName = 'withdrawConnectionRequest'; + public override readonly operationName: TOperationName = 'withdrawConnectionRequest'; protected override readonly mapper = new VoidWorkflowMapper( 'st.withdrawConnectionRequest', ); diff --git a/src/types/errors.ts b/src/types/errors.ts index ab8d4ed..e09d9b5 100644 --- a/src/types/errors.ts +++ b/src/types/errors.ts @@ -94,7 +94,7 @@ export class LinkedApiWorkflowTimeoutError extends LinkedApiError { constructor(workflowId: string, operationName: TOperationName) { super( 'workflowTimeout', - `Workflow ${workflowId} timed out. Call .result again to continue checking the workflow.`, + `Workflow ${workflowId} timed out. Call ${operationName}.result() again to continue checking the workflow.`, { workflowId, operationName,