@@ -482,7 +482,7 @@ class AdminForth implements IAdminForth {
482482 return null ;
483483 }
484484
485- async tryToImportConnector ( connectorName : string ) {
485+ async tryToImportConnector ( connectorName : string , doesUserHavePnpmLock : boolean ) {
486486 try {
487487 const connectorModule = await import ( `@adminforth/connector-${ connectorName } ` ) ;
488488 return connectorModule . default ;
@@ -493,14 +493,12 @@ class AdminForth implements IAdminForth {
493493║ ❌ CONNECTOR IMPORT ERROR ║
494494║ ──────────────────────────────────────────────────────────────────────── ║
495495║ ║
496- ║ Error while importing ${ connectorName } connector: ${ e } ║
496+ ║ Error while importing ${ connectorName } ║
497497║ ║
498498║ 💡 SOLUTION ║
499499║ Install the required package: ║
500500║ ║
501- ║ npm install @adminforth/connector-${ connectorName } ║
502- ║ # or ║
503- ║ pnpm add @adminforth/connector-${ connectorName } ║
501+ ║ ${ doesUserHavePnpmLock ? `pnpm add @adminforth/connector-${ connectorName } ` : `npm install @adminforth/connector-${ connectorName } ` } ║ ║
504502║ ║
505503╚════════════════════════════════════════════════════════════════════════════╝
506504 ` ) ;
@@ -509,6 +507,7 @@ class AdminForth implements IAdminForth {
509507
510508 async discoverDatabases ( ) {
511509 this . statuses . dbDiscover = 'running' ;
510+ const doesUserHavePnpmLock = await this . codeInjector . doesUserHasPnpmLockFile ( './' ) ;
512511 const dataSourcesDatabasesTypes = [ ] ;
513512 this . config . dataSources . forEach ( ( ds ) => {
514513 const dbType = ds . url . split ( ':' ) [ 0 ] ;
@@ -517,22 +516,22 @@ class AdminForth implements IAdminForth {
517516 const uniqueDbTypes = [ ...new Set ( dataSourcesDatabasesTypes ) ] ;
518517 let SQLiteConnector , PostgresConnector , MongoConnector , ClickhouseConnector , MysqlConnector , QdrantConnector ;
519518 if ( uniqueDbTypes . includes ( 'sqlite' ) ) {
520- SQLiteConnector = await this . tryToImportConnector ( 'sqlite' ) ;
519+ SQLiteConnector = await this . tryToImportConnector ( 'sqlite' , doesUserHavePnpmLock ) ;
521520 }
522521 if ( uniqueDbTypes . includes ( 'postgres' ) || uniqueDbTypes . includes ( 'postgresql' ) ) {
523- PostgresConnector = await this . tryToImportConnector ( 'postgres' ) ;
522+ PostgresConnector = await this . tryToImportConnector ( 'postgres' , doesUserHavePnpmLock ) ;
524523 }
525524 if ( uniqueDbTypes . includes ( 'mongodb' ) ) {
526- MongoConnector = await this . tryToImportConnector ( 'mongo' ) ;
525+ MongoConnector = await this . tryToImportConnector ( 'mongo' , doesUserHavePnpmLock ) ;
527526 }
528527 if ( uniqueDbTypes . includes ( 'clickhouse' ) ) {
529- ClickhouseConnector = await this . tryToImportConnector ( 'clickhouse' ) ;
528+ ClickhouseConnector = await this . tryToImportConnector ( 'clickhouse' , doesUserHavePnpmLock ) ;
530529 }
531530 if ( uniqueDbTypes . includes ( 'mysql' ) ) {
532- MysqlConnector = await this . tryToImportConnector ( 'mysql' ) ;
531+ MysqlConnector = await this . tryToImportConnector ( 'mysql' , doesUserHavePnpmLock ) ;
533532 }
534533 if ( uniqueDbTypes . includes ( 'qdrant' ) ) {
535- QdrantConnector = await this . tryToImportConnector ( 'qdrant' ) ;
534+ QdrantConnector = await this . tryToImportConnector ( 'qdrant' , doesUserHavePnpmLock ) ;
536535 }
537536
538537 this . connectorClasses = {
0 commit comments