mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-02 07:01:30 -08:00
63 lines
1.7 KiB
TypeScript
63 lines
1.7 KiB
TypeScript
import type {
|
|
ICredentialDataDecryptedObject,
|
|
INode,
|
|
ITriggerFunctions,
|
|
IWorkflowExecuteAdditionalData,
|
|
Workflow,
|
|
WorkflowActivateMode,
|
|
WorkflowExecuteMode,
|
|
} from 'n8n-workflow';
|
|
import { ApplicationError, createDeferredPromise } from 'n8n-workflow';
|
|
|
|
// eslint-disable-next-line import/no-cycle
|
|
import {
|
|
getBinaryHelperFunctions,
|
|
getRequestHelperFunctions,
|
|
getSchedulingFunctions,
|
|
getSSHTunnelFunctions,
|
|
returnJsonArray,
|
|
} from '@/NodeExecuteFunctions';
|
|
|
|
import { NodeExecutionContext } from './node-execution-context';
|
|
|
|
const throwOnEmit = () => {
|
|
throw new ApplicationError('Overwrite TriggerContext.emit function');
|
|
};
|
|
|
|
const throwOnEmitError = () => {
|
|
throw new ApplicationError('Overwrite TriggerContext.emitError function');
|
|
};
|
|
|
|
export class TriggerContext extends NodeExecutionContext implements ITriggerFunctions {
|
|
readonly helpers: ITriggerFunctions['helpers'];
|
|
|
|
constructor(
|
|
workflow: Workflow,
|
|
node: INode,
|
|
additionalData: IWorkflowExecuteAdditionalData,
|
|
mode: WorkflowExecuteMode,
|
|
private readonly activation: WorkflowActivateMode,
|
|
readonly emit: ITriggerFunctions['emit'] = throwOnEmit,
|
|
readonly emitError: ITriggerFunctions['emitError'] = throwOnEmitError,
|
|
) {
|
|
super(workflow, node, additionalData, mode);
|
|
|
|
this.helpers = {
|
|
createDeferredPromise,
|
|
returnJsonArray,
|
|
...getSSHTunnelFunctions(),
|
|
...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);
|
|
}
|
|
}
|