Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| import type { ConfigTool } from "$lib/types/Tool"; | |
| import { ObjectId } from "mongodb"; | |
| import vm from "node:vm"; | |
| const calculator: ConfigTool = { | |
| _id: new ObjectId("00000000000000000000000C"), | |
| type: "config", | |
| description: "Calculate the result of a mathematical expression", | |
| color: "blue", | |
| icon: "code", | |
| displayName: "Calculator", | |
| name: "calculator", | |
| endpoint: null, | |
| inputs: [ | |
| { | |
| name: "equation", | |
| type: "str", | |
| description: | |
| "A mathematical expression to be evaluated. The result of the expression will be returned.", | |
| paramType: "required", | |
| }, | |
| ], | |
| outputComponent: null, | |
| outputComponentIdx: null, | |
| showOutput: false, | |
| async *call({ equation }) { | |
| try { | |
| const blocks = String(equation).split("\n"); | |
| const query = blocks[blocks.length - 1].replace(/[^-()\d/*+.]/g, ""); | |
| return { | |
| outputs: [{ calculator: `${query} = ${vm.runInNewContext(query)}` }], | |
| }; | |
| } catch (cause) { | |
| throw new Error("Invalid expression", { cause }); | |
| } | |
| }, | |
| }; | |
| export default calculator; | |