mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2026-08-06 03:48:35 +02:00
61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
import type {
|
|
ICredentialDataDecryptedObject,
|
|
INode,
|
|
IPollFunctions,
|
|
IWorkflowExecuteAdditionalData,
|
|
Workflow,
|
|
WorkflowActivateMode,
|
|
WorkflowExecuteMode,
|
|
} from 'n8n-workflow';
|
|
import { ApplicationError, createDeferredPromise } from 'n8n-workflow';
|
|
|
|
// eslint-disable-next-line import/no-cycle
|
|
import {
|
|
getBinaryHelperFunctions,
|
|
getRequestHelperFunctions,
|
|
getSchedulingFunctions,
|
|
returnJsonArray,
|
|
} from '@/NodeExecuteFunctions';
|
|
|
|
import { NodeExecutionContext } from './node-execution-context';
|
|
|
|
const throwOnEmit = () => {
|
|
throw new ApplicationError('Overwrite PollContext.__emit function');
|
|
};
|
|
|
|
const throwOnEmitError = () => {
|
|
throw new ApplicationError('Overwrite PollContext.__emitError function');
|
|
};
|
|
|
|
export class PollContext extends NodeExecutionContext implements IPollFunctions {
|
|
readonly helpers: IPollFunctions['helpers'];
|
|
|
|
constructor(
|
|
workflow: Workflow,
|
|
node: INode,
|
|
additionalData: IWorkflowExecuteAdditionalData,
|
|
mode: WorkflowExecuteMode,
|
|
private readonly activation: WorkflowActivateMode,
|
|
readonly __emit: IPollFunctions['__emit'] = throwOnEmit,
|
|
readonly __emitError: IPollFunctions['__emitError'] = throwOnEmitError,
|
|
) {
|
|
super(workflow, node, additionalData, mode);
|
|
|
|
this.helpers = {
|
|
createDeferredPromise,
|
|
returnJsonArray,
|
|
...getRequestHelperFunctions(workflow, node, additionalData),
|
|
...getBinaryHelperFunctions(additionalData, workflow.id),
|
|
...getSchedulingFunctions(workflow),
|
|
};
|
|
}
|
|
|
|
getActivationMode() {
|
|
return this.activation;
|
|
}
|
|
|
|
async getCredentials<T extends object = ICredentialDataDecryptedObject>(type: string) {
|
|
return await this._getCredentials<T>(type);
|
|
}
|
|
}
|