Skip to content

Commit fc13082

Browse files
committed
fix: check if user use npm or pnpm before showing import database connector error
AdminForth/1687/we-need-move-out-connectors-to
1 parent b700d65 commit fc13082

1 file changed

Lines changed: 10 additions & 11 deletions

File tree

adminforth/index.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)