handles scenario where NodesPool require call fails

Currently, the following file results in an error: Flowise/packages/components/dist/nodes/documentloaders/Subtitles/Subtitles.js:3:15
The result is that initializeNodes fails on all nodes, and all other code in initDatabase fails to load
This commit is contained in:
Jaredude
2024-02-21 21:19:38 -06:00
parent c31b1c356f
commit 23f7e7802f
2 changed files with 30 additions and 24 deletions
+5
View File
@@ -4,6 +4,7 @@ import { Dirent } from 'fs'
import { getNodeModulesPackagePath } from './utils' import { getNodeModulesPackagePath } from './utils'
import { promises } from 'fs' import { promises } from 'fs'
import { ICommonObject } from 'flowise-components' import { ICommonObject } from 'flowise-components'
import logger from './utils/logger'
export class NodesPool { export class NodesPool {
componentNodes: IComponentNodes = {} componentNodes: IComponentNodes = {}
@@ -28,6 +29,7 @@ export class NodesPool {
return Promise.all( return Promise.all(
nodeFiles.map(async (file) => { nodeFiles.map(async (file) => {
if (file.endsWith('.js')) { if (file.endsWith('.js')) {
try {
const nodeModule = await require(file) const nodeModule = await require(file)
if (nodeModule.nodeClass) { if (nodeModule.nodeClass) {
@@ -59,6 +61,9 @@ export class NodesPool {
this.componentNodes[newNodeInstance.name] = newNodeInstance this.componentNodes[newNodeInstance.name] = newNodeInstance
} }
} }
} catch (err) {
logger.error(`❌ [server]: Error during initDatabase with file ${file}:`, err)
}
} }
}) })
) )
+2 -1
View File
@@ -85,7 +85,7 @@ export class App {
// Initialize database // Initialize database
this.AppDataSource.initialize() this.AppDataSource.initialize()
.then(async () => { .then(async () => {
logger.info('📦 [server]: Data Source has been initialized!') logger.info('📦 [server]: Data Source is being initialized!')
// Run Migrations Scripts // Run Migrations Scripts
await this.AppDataSource.runMigrations({ transaction: 'each' }) await this.AppDataSource.runMigrations({ transaction: 'each' })
@@ -112,6 +112,7 @@ export class App {
// Initialize telemetry // Initialize telemetry
this.telemetry = new Telemetry() this.telemetry = new Telemetry()
logger.info('📦 [server]: Data Source has been initialized!')
}) })
.catch((err) => { .catch((err) => {
logger.error('❌ [server]: Error during Data Source initialization:', err) logger.error('❌ [server]: Error during Data Source initialization:', err)