Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 6x 6x 6x 3827x 3827x 15141x 15141x 15141x 15141x 2x 2x 2x 3827x 6x 2x 2x 9x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x | import axios from "axios"; import fs from "fs"; export const convertReqParams = (properties: Record<string, any>) => { const clonedProperties = JSON.parse(JSON.stringify(properties)); for (const propertyKey of Object.keys(clonedProperties)) { const object = clonedProperties[propertyKey]; const isObject = typeof object === "object"; const isFile = isObject && (object?.required?.includes("name") && object?.required?.includes("content")); if (isFile) { const newKey = `${propertyKey}_file_uri_path`; clonedProperties[newKey] = { type: "string", title: "Name", description: "Local absolute path to the file or http url to the file" } delete clonedProperties[propertyKey]; } } return clonedProperties; } export const converReqParamForActionExecution = async (params: Record<string, any>) => { const clonedParams = JSON.parse(JSON.stringify(params)); for (const key of Object.keys(clonedParams)) { if (key.includes("file_uri_path")) { const initKey = key.replace("_file_uri_path", ""); clonedParams[initKey] = {}; const newKey = clonedParams[initKey]; const valuePassedByClient = clonedParams[key]; // if not http url if (valuePassedByClient.startsWith("http") || valuePassedByClient.startsWith("https")) { newKey.name = valuePassedByClient.split("/").pop(); const response = await axios.get(valuePassedByClient, { responseType: 'arraybuffer' }); newKey.content = Buffer.from(response.data, 'binary').toString('base64'); } else E{ const file = await fs.promises.readFile(valuePassedByClient, { encoding: null }); newKey.content = file.toString('base64'); newKey.name = valuePassedByClient.split("/").pop(); } delete clonedParams[key]; } } return clonedParams; } |