Flowise
41 строка · 1.7 Кб
1import { Request, Response, NextFunction } from 'express'
2import { getRunningExpressApp } from '../../utils/getRunningExpressApp'
3import { InternalFlowiseError } from '../../errors/internalFlowiseError'
4import { StatusCodes } from 'http-status-codes'
5
6// Returns specific component node icon via name
7const getSingleNodeIcon = async (req: Request, res: Response, next: NextFunction) => {
8try {
9const appServer = getRunningExpressApp()
10if (Object.prototype.hasOwnProperty.call(appServer.nodesPool.componentNodes, req.params.name)) {
11const nodeInstance = appServer.nodesPool.componentNodes[req.params.name]
12if (nodeInstance.icon === undefined) {
13throw new InternalFlowiseError(
14StatusCodes.NOT_FOUND,
15`Error: nodeIconController.getSingleNodeIcon - Node ${req.params.name} icon not found`
16)
17}
18
19if (nodeInstance.icon.endsWith('.svg') || nodeInstance.icon.endsWith('.png') || nodeInstance.icon.endsWith('.jpg')) {
20const filepath = nodeInstance.icon
21res.sendFile(filepath)
22} else {
23throw new InternalFlowiseError(
24StatusCodes.PRECONDITION_FAILED,
25`Error: nodeIconController.getSingleNodeIcon - Node ${req.params.name} icon is missing icon`
26)
27}
28} else {
29throw new InternalFlowiseError(
30StatusCodes.NOT_FOUND,
31`Error: nodeIconController.getSingleNodeIcon - Node ${req.params.name} not found`
32)
33}
34} catch (error) {
35next(error)
36}
37}
38
39export default {
40getSingleNodeIcon
41}
42