8311 serverless function functions can be executed with any input (#8380)
- remove ts-morph - update inputSchema shape  https://github.com/user-attachments/assets/913cd305-9e7c-48da-b20f-c974a8ac7cea ## TODO - have inputTypes to match the inputSchema type (string, number, boolean, etc...), only string for now - handle required/optional inputs - handle case when inputSchema changes, fix data reset when switching function
This commit is contained in:
@ -0,0 +1,22 @@
|
||||
import { InputSchema } from '@/workflow/types/InputSchema';
|
||||
import { FunctionInput } from '@/workflow/types/FunctionInput';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
export const getDefaultFunctionInputFromInputSchema = (
|
||||
inputSchema: InputSchema | undefined,
|
||||
): FunctionInput => {
|
||||
return isDefined(inputSchema)
|
||||
? Object.entries(inputSchema).reduce((acc, [key, value]) => {
|
||||
if (['string', 'number', 'boolean'].includes(value.type)) {
|
||||
acc[key] = null;
|
||||
} else if (value.type === 'object') {
|
||||
acc[key] = isDefined(value.properties)
|
||||
? getDefaultFunctionInputFromInputSchema(value.properties)
|
||||
: {};
|
||||
} else if (value.type === 'array' && isDefined(value.items)) {
|
||||
acc[key] = [];
|
||||
}
|
||||
return acc;
|
||||
}, {} as FunctionInput)
|
||||
: {};
|
||||
};
|
||||
Reference in New Issue
Block a user