/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ import { Processor, Instruction, FlowNodeModel } from '@nocobase/plugin-workflow'; import type WorkflowPlugin from '@nocobase/plugin-workflow'; import Joi from 'joi'; export type SQLInstructionConfig = { dataSource?: string; sql?: string; withMeta?: boolean; unsafeInjection?: boolean; variables?: Array<{ name: string; value: unknown; }>; }; export default class SQLInstruction extends Instruction { workflow: WorkflowPlugin; configSchema: Joi.ObjectSchema; run(node: FlowNodeModel, input: any, processor: Processor): Promise<{ status: 1; result?: undefined; } | { result: unknown[]; status: 1; }>; test({ dataSource, sql: sqlConfig, withMeta, unsafeInjection, variables, }?: SQLInstructionConfig): Promise<{ result: unknown[]; status: 1; } | { result: string; status: -2; }>; }