@alpha.consultings/eloquent-orm.js 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/README.md +215 -0
- package/dist/Model.d.ts +2 -0
- package/dist/Model.d.ts.map +1 -0
- package/dist/Model.js +7 -0
- package/dist/Model.js.map +1 -0
- package/dist/cli/commands/cacheClear.d.ts +2 -0
- package/dist/cli/commands/cacheClear.d.ts.map +1 -0
- package/dist/cli/commands/cacheClear.js +69 -0
- package/dist/cli/commands/cacheClear.js.map +1 -0
- package/dist/cli/commands/cacheStats.d.ts +2 -0
- package/dist/cli/commands/cacheStats.d.ts.map +1 -0
- package/dist/cli/commands/cacheStats.js +55 -0
- package/dist/cli/commands/cacheStats.js.map +1 -0
- package/dist/cli/commands/dbSeed.d.ts +16 -0
- package/dist/cli/commands/dbSeed.d.ts.map +1 -0
- package/dist/cli/commands/dbSeed.js +201 -0
- package/dist/cli/commands/dbSeed.js.map +1 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.d.ts +3 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.d.ts.map +1 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.js +8 -0
- package/dist/cli/commands/dbSeedBootstrapPrecheck.js.map +1 -0
- package/dist/cli/commands/dbSeedFresh.d.ts +14 -0
- package/dist/cli/commands/dbSeedFresh.d.ts.map +1 -0
- package/dist/cli/commands/dbSeedFresh.js +81 -0
- package/dist/cli/commands/dbSeedFresh.js.map +1 -0
- package/dist/cli/commands/demoScenario.d.ts +9 -0
- package/dist/cli/commands/demoScenario.d.ts.map +1 -0
- package/dist/cli/commands/demoScenario.js +185 -0
- package/dist/cli/commands/demoScenario.js.map +1 -0
- package/dist/cli/commands/factoryStatus.d.ts +9 -0
- package/dist/cli/commands/factoryStatus.d.ts.map +1 -0
- package/dist/cli/commands/factoryStatus.js +103 -0
- package/dist/cli/commands/factoryStatus.js.map +1 -0
- package/dist/cli/commands/makeController.d.ts +11 -0
- package/dist/cli/commands/makeController.d.ts.map +1 -0
- package/dist/cli/commands/makeController.js +61 -0
- package/dist/cli/commands/makeController.js.map +1 -0
- package/dist/cli/commands/makeFactory.d.ts +14 -0
- package/dist/cli/commands/makeFactory.d.ts.map +1 -0
- package/dist/cli/commands/makeFactory.js +183 -0
- package/dist/cli/commands/makeFactory.js.map +1 -0
- package/dist/cli/commands/makeMigration.d.ts +18 -0
- package/dist/cli/commands/makeMigration.d.ts.map +1 -0
- package/dist/cli/commands/makeMigration.js +496 -0
- package/dist/cli/commands/makeMigration.js.map +1 -0
- package/dist/cli/commands/makeModel.d.ts +20 -0
- package/dist/cli/commands/makeModel.d.ts.map +1 -0
- package/dist/cli/commands/makeModel.js +360 -0
- package/dist/cli/commands/makeModel.js.map +1 -0
- package/dist/cli/commands/makeRegistry.d.ts +7 -0
- package/dist/cli/commands/makeRegistry.d.ts.map +1 -0
- package/dist/cli/commands/makeRegistry.js +88 -0
- package/dist/cli/commands/makeRegistry.js.map +1 -0
- package/dist/cli/commands/makeScenario.d.ts +12 -0
- package/dist/cli/commands/makeScenario.d.ts.map +1 -0
- package/dist/cli/commands/makeScenario.js +639 -0
- package/dist/cli/commands/makeScenario.js.map +1 -0
- package/dist/cli/commands/makeSeed.d.ts +11 -0
- package/dist/cli/commands/makeSeed.d.ts.map +1 -0
- package/dist/cli/commands/makeSeed.js +47 -0
- package/dist/cli/commands/makeSeed.js.map +1 -0
- package/dist/cli/commands/makeService.d.ts +5 -0
- package/dist/cli/commands/makeService.d.ts.map +1 -0
- package/dist/cli/commands/makeService.js +31 -0
- package/dist/cli/commands/makeService.js.map +1 -0
- package/dist/cli/commands/migrateFresh.d.ts +14 -0
- package/dist/cli/commands/migrateFresh.d.ts.map +1 -0
- package/dist/cli/commands/migrateFresh.js +150 -0
- package/dist/cli/commands/migrateFresh.js.map +1 -0
- package/dist/cli/commands/migrateReset.d.ts +12 -0
- package/dist/cli/commands/migrateReset.d.ts.map +1 -0
- package/dist/cli/commands/migrateReset.js +28 -0
- package/dist/cli/commands/migrateReset.js.map +1 -0
- package/dist/cli/commands/migrateRollback.d.ts +10 -0
- package/dist/cli/commands/migrateRollback.d.ts.map +1 -0
- package/dist/cli/commands/migrateRollback.js +303 -0
- package/dist/cli/commands/migrateRollback.js.map +1 -0
- package/dist/cli/commands/migrateRun.d.ts +10 -0
- package/dist/cli/commands/migrateRun.d.ts.map +1 -0
- package/dist/cli/commands/migrateRun.js +301 -0
- package/dist/cli/commands/migrateRun.js.map +1 -0
- package/dist/cli/commands/migrateStatus.d.ts +8 -0
- package/dist/cli/commands/migrateStatus.d.ts.map +1 -0
- package/dist/cli/commands/migrateStatus.js +118 -0
- package/dist/cli/commands/migrateStatus.js.map +1 -0
- package/dist/cli/eloquent.d.ts +18 -0
- package/dist/cli/eloquent.d.ts.map +1 -0
- package/dist/cli/eloquent.js +187 -0
- package/dist/cli/eloquent.js.map +1 -0
- package/dist/cli/utils/ArtifactCompatibility.d.ts +10 -0
- package/dist/cli/utils/ArtifactCompatibility.d.ts.map +1 -0
- package/dist/cli/utils/ArtifactCompatibility.js +60 -0
- package/dist/cli/utils/ArtifactCompatibility.js.map +1 -0
- package/dist/cli/utils/ArtifactRoutingReport.d.ts +10 -0
- package/dist/cli/utils/ArtifactRoutingReport.d.ts.map +1 -0
- package/dist/cli/utils/ArtifactRoutingReport.js +25 -0
- package/dist/cli/utils/ArtifactRoutingReport.js.map +1 -0
- package/dist/cli/utils/ArtifactStorage.d.ts +10 -0
- package/dist/cli/utils/ArtifactStorage.d.ts.map +1 -0
- package/dist/cli/utils/ArtifactStorage.js +193 -0
- package/dist/cli/utils/ArtifactStorage.js.map +1 -0
- package/dist/cli/utils/AuditTrail.d.ts +25 -0
- package/dist/cli/utils/AuditTrail.d.ts.map +1 -0
- package/dist/cli/utils/AuditTrail.js +74 -0
- package/dist/cli/utils/AuditTrail.js.map +1 -0
- package/dist/cli/utils/CliActionRuntime.d.ts +5 -0
- package/dist/cli/utils/CliActionRuntime.d.ts.map +1 -0
- package/dist/cli/utils/CliActionRuntime.js +22 -0
- package/dist/cli/utils/CliActionRuntime.js.map +1 -0
- package/dist/cli/utils/CliBootstrapSupport.d.ts +13 -0
- package/dist/cli/utils/CliBootstrapSupport.d.ts.map +1 -0
- package/dist/cli/utils/CliBootstrapSupport.js +55 -0
- package/dist/cli/utils/CliBootstrapSupport.js.map +1 -0
- package/dist/cli/utils/CliCommandCatalog.d.ts +6 -0
- package/dist/cli/utils/CliCommandCatalog.d.ts.map +1 -0
- package/dist/cli/utils/CliCommandCatalog.js +78 -0
- package/dist/cli/utils/CliCommandCatalog.js.map +1 -0
- package/dist/cli/utils/CliCommandTargets.d.ts +8 -0
- package/dist/cli/utils/CliCommandTargets.d.ts.map +1 -0
- package/dist/cli/utils/CliCommandTargets.js +19 -0
- package/dist/cli/utils/CliCommandTargets.js.map +1 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.js +94 -0
- package/dist/cli/utils/CliMakeArtifactCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.js +195 -0
- package/dist/cli/utils/CliMigrationCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliPresentation.d.ts +2 -0
- package/dist/cli/utils/CliPresentation.d.ts.map +1 -0
- package/dist/cli/utils/CliPresentation.js +13 -0
- package/dist/cli/utils/CliPresentation.js.map +1 -0
- package/dist/cli/utils/CliProductionGuards.d.ts +11 -0
- package/dist/cli/utils/CliProductionGuards.d.ts.map +1 -0
- package/dist/cli/utils/CliProductionGuards.js +34 -0
- package/dist/cli/utils/CliProductionGuards.js.map +1 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.js +89 -0
- package/dist/cli/utils/CliScaffoldCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.js +123 -0
- package/dist/cli/utils/CliSeedScenarioCommandRegistration.js.map +1 -0
- package/dist/cli/utils/CliSupportCommandRegistration.d.ts +3 -0
- package/dist/cli/utils/CliSupportCommandRegistration.d.ts.map +1 -0
- package/dist/cli/utils/CliSupportCommandRegistration.js +44 -0
- package/dist/cli/utils/CliSupportCommandRegistration.js.map +1 -0
- package/dist/cli/utils/ConsoleSilencer.d.ts +6 -0
- package/dist/cli/utils/ConsoleSilencer.d.ts.map +1 -0
- package/dist/cli/utils/ConsoleSilencer.js +25 -0
- package/dist/cli/utils/ConsoleSilencer.js.map +1 -0
- package/dist/cli/utils/ImportResolver.d.ts +16 -0
- package/dist/cli/utils/ImportResolver.d.ts.map +1 -0
- package/dist/cli/utils/ImportResolver.js +57 -0
- package/dist/cli/utils/ImportResolver.js.map +1 -0
- package/dist/cli/utils/ModelIntrospector.d.ts +33 -0
- package/dist/cli/utils/ModelIntrospector.d.ts.map +1 -0
- package/dist/cli/utils/ModelIntrospector.js +76 -0
- package/dist/cli/utils/ModelIntrospector.js.map +1 -0
- package/dist/cli/utils/PathMap.d.ts +58 -0
- package/dist/cli/utils/PathMap.d.ts.map +1 -0
- package/dist/cli/utils/PathMap.js +132 -0
- package/dist/cli/utils/PathMap.js.map +1 -0
- package/dist/cli/utils/ProductionSafety.d.ts +25 -0
- package/dist/cli/utils/ProductionSafety.d.ts.map +1 -0
- package/dist/cli/utils/ProductionSafety.js +61 -0
- package/dist/cli/utils/ProductionSafety.js.map +1 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.d.ts +16 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.d.ts.map +1 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.js +66 -0
- package/dist/cli/utils/ScaffoldGeneratorSupport.js.map +1 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.d.ts +14 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.d.ts.map +1 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.js +62 -0
- package/dist/cli/utils/ScenarioMorphAliasRouting.js.map +1 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.d.ts +20 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.d.ts.map +1 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.js +133 -0
- package/dist/cli/utils/SeedBootstrapPrecheck.js.map +1 -0
- package/dist/cli/utils/StructuredLogger.d.ts +11 -0
- package/dist/cli/utils/StructuredLogger.d.ts.map +1 -0
- package/dist/cli/utils/StructuredLogger.js +53 -0
- package/dist/cli/utils/StructuredLogger.js.map +1 -0
- package/dist/cli/utils/TemplateEngine.d.ts +30 -0
- package/dist/cli/utils/TemplateEngine.d.ts.map +1 -0
- package/dist/cli/utils/TemplateEngine.js +165 -0
- package/dist/cli/utils/TemplateEngine.js.map +1 -0
- package/dist/cli/utils/factories/Factory.d.ts +61 -0
- package/dist/cli/utils/factories/Factory.d.ts.map +1 -0
- package/dist/cli/utils/factories/Factory.js +140 -0
- package/dist/cli/utils/factories/Factory.js.map +1 -0
- package/dist/cli/utils/factories/FactoryDisplay.d.ts +6 -0
- package/dist/cli/utils/factories/FactoryDisplay.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryDisplay.js +26 -0
- package/dist/cli/utils/factories/FactoryDisplay.js.map +1 -0
- package/dist/cli/utils/factories/FactoryGraph.d.ts +6 -0
- package/dist/cli/utils/factories/FactoryGraph.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryGraph.js +72 -0
- package/dist/cli/utils/factories/FactoryGraph.js.map +1 -0
- package/dist/cli/utils/factories/FactoryLoader.d.ts +16 -0
- package/dist/cli/utils/factories/FactoryLoader.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryLoader.js +35 -0
- package/dist/cli/utils/factories/FactoryLoader.js.map +1 -0
- package/dist/cli/utils/factories/FactoryRegistry.d.ts +16 -0
- package/dist/cli/utils/factories/FactoryRegistry.d.ts.map +1 -0
- package/dist/cli/utils/factories/FactoryRegistry.js +87 -0
- package/dist/cli/utils/factories/FactoryRegistry.js.map +1 -0
- package/dist/cli/utils/fileWriter.d.ts +7 -0
- package/dist/cli/utils/fileWriter.d.ts.map +1 -0
- package/dist/cli/utils/fileWriter.js +61 -0
- package/dist/cli/utils/fileWriter.js.map +1 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.d.ts +21 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.d.ts.map +1 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.js +129 -0
- package/dist/cli/utils/migrations/MigrationLockStrategy.js.map +1 -0
- package/dist/cli/utils/migrations/MigrationTracker.d.ts +25 -0
- package/dist/cli/utils/migrations/MigrationTracker.d.ts.map +1 -0
- package/dist/cli/utils/migrations/MigrationTracker.js +279 -0
- package/dist/cli/utils/migrations/MigrationTracker.js.map +1 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.d.ts +18 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.d.ts.map +1 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.js +276 -0
- package/dist/cli/utils/migrations/MongoMigrationTracker.js.map +1 -0
- package/dist/cli/utils/resolveConnectionFlags.d.ts +14 -0
- package/dist/cli/utils/resolveConnectionFlags.d.ts.map +1 -0
- package/dist/cli/utils/resolveConnectionFlags.js +42 -0
- package/dist/cli/utils/resolveConnectionFlags.js.map +1 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.d.ts +9 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.d.ts.map +1 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.js +23 -0
- package/dist/cli/utils/resolveSqlConnectionFlags.js.map +1 -0
- package/dist/cli/utils/typescript/BaseCommand.d.ts +15 -0
- package/dist/cli/utils/typescript/BaseCommand.d.ts.map +1 -0
- package/dist/cli/utils/typescript/BaseCommand.js +36 -0
- package/dist/cli/utils/typescript/BaseCommand.js.map +1 -0
- package/dist/cli/utils/typescript/RuntimeDetector.d.ts +16 -0
- package/dist/cli/utils/typescript/RuntimeDetector.d.ts.map +1 -0
- package/dist/cli/utils/typescript/RuntimeDetector.js +45 -0
- package/dist/cli/utils/typescript/RuntimeDetector.js.map +1 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.d.ts +25 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.d.ts.map +1 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.js +109 -0
- package/dist/cli/utils/typescript/TypeScriptCompiler.js.map +1 -0
- package/dist/cli/utils/typescript/tsRuntime.d.ts +12 -0
- package/dist/cli/utils/typescript/tsRuntime.d.ts.map +1 -0
- package/dist/cli/utils/typescript/tsRuntime.js +189 -0
- package/dist/cli/utils/typescript/tsRuntime.js.map +1 -0
- package/dist/config/database.d.ts +58 -0
- package/dist/config/database.d.ts.map +1 -0
- package/dist/config/database.js +106 -0
- package/dist/config/database.js.map +1 -0
- package/dist/config/dbRoleEnv.d.ts +31 -0
- package/dist/config/dbRoleEnv.d.ts.map +1 -0
- package/dist/config/dbRoleEnv.js +171 -0
- package/dist/config/dbRoleEnv.js.map +1 -0
- package/dist/core/cache/CacheAnalytics.d.ts +47 -0
- package/dist/core/cache/CacheAnalytics.d.ts.map +1 -0
- package/dist/core/cache/CacheAnalytics.js +113 -0
- package/dist/core/cache/CacheAnalytics.js.map +1 -0
- package/dist/core/cache/CacheDriver.d.ts +19 -0
- package/dist/core/cache/CacheDriver.d.ts.map +1 -0
- package/dist/core/cache/CacheDriver.js +8 -0
- package/dist/core/cache/CacheDriver.js.map +1 -0
- package/dist/core/cache/CacheFallbackManager.d.ts +35 -0
- package/dist/core/cache/CacheFallbackManager.d.ts.map +1 -0
- package/dist/core/cache/CacheFallbackManager.js +118 -0
- package/dist/core/cache/CacheFallbackManager.js.map +1 -0
- package/dist/core/cache/CacheManager.d.ts +11 -0
- package/dist/core/cache/CacheManager.d.ts.map +1 -0
- package/dist/core/cache/CacheManager.js +27 -0
- package/dist/core/cache/CacheManager.js.map +1 -0
- package/dist/core/cache/CacheRegistry.d.ts +49 -0
- package/dist/core/cache/CacheRegistry.d.ts.map +1 -0
- package/dist/core/cache/CacheRegistry.js +117 -0
- package/dist/core/cache/CacheRegistry.js.map +1 -0
- package/dist/core/cache/drivers/FileCacheDriver.d.ts +11 -0
- package/dist/core/cache/drivers/FileCacheDriver.d.ts.map +1 -0
- package/dist/core/cache/drivers/FileCacheDriver.js +54 -0
- package/dist/core/cache/drivers/FileCacheDriver.js.map +1 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.d.ts +15 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.d.ts.map +1 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.js +60 -0
- package/dist/core/cache/drivers/MemcachedCacheDriver.js.map +1 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.d.ts +9 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.d.ts.map +1 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.js +33 -0
- package/dist/core/cache/drivers/MemoryCacheDriver.js.map +1 -0
- package/dist/core/cache/setupCache.d.ts +2 -0
- package/dist/core/cache/setupCache.d.ts.map +1 -0
- package/dist/core/cache/setupCache.js +38 -0
- package/dist/core/cache/setupCache.js.map +1 -0
- package/dist/core/connection/BetterSqliteConnection.d.ts +23 -0
- package/dist/core/connection/BetterSqliteConnection.d.ts.map +1 -0
- package/dist/core/connection/BetterSqliteConnection.js +33 -0
- package/dist/core/connection/BetterSqliteConnection.js.map +1 -0
- package/dist/core/connection/ConnectionFactory.d.ts +18 -0
- package/dist/core/connection/ConnectionFactory.d.ts.map +1 -0
- package/dist/core/connection/ConnectionFactory.js +111 -0
- package/dist/core/connection/ConnectionFactory.js.map +1 -0
- package/dist/core/connection/DatabaseConnection.d.ts +49 -0
- package/dist/core/connection/DatabaseConnection.d.ts.map +1 -0
- package/dist/core/connection/DatabaseConnection.js +120 -0
- package/dist/core/connection/DatabaseConnection.js.map +1 -0
- package/dist/core/connection/DriverAdapter.d.ts +23 -0
- package/dist/core/connection/DriverAdapter.d.ts.map +1 -0
- package/dist/core/connection/DriverAdapter.js +145 -0
- package/dist/core/connection/DriverAdapter.js.map +1 -0
- package/dist/core/connection/resolveConnectionName.d.ts +17 -0
- package/dist/core/connection/resolveConnectionName.d.ts.map +1 -0
- package/dist/core/connection/resolveConnectionName.js +47 -0
- package/dist/core/connection/resolveConnectionName.js.map +1 -0
- package/dist/core/model/BaseModel.d.ts +247 -0
- package/dist/core/model/BaseModel.d.ts.map +1 -0
- package/dist/core/model/BaseModel.js +165 -0
- package/dist/core/model/BaseModel.js.map +1 -0
- package/dist/core/model/BaseModelSafeFinderStatics.d.ts +33 -0
- package/dist/core/model/BaseModelSafeFinderStatics.d.ts.map +1 -0
- package/dist/core/model/BaseModelSafeFinderStatics.js +87 -0
- package/dist/core/model/BaseModelSafeFinderStatics.js.map +1 -0
- package/dist/core/model/CoreModel.d.ts +134 -0
- package/dist/core/model/CoreModel.d.ts.map +1 -0
- package/dist/core/model/CoreModel.js +541 -0
- package/dist/core/model/CoreModel.js.map +1 -0
- package/dist/core/model/CoreModelPersistenceState.d.ts +36 -0
- package/dist/core/model/CoreModelPersistenceState.d.ts.map +1 -0
- package/dist/core/model/CoreModelPersistenceState.js +141 -0
- package/dist/core/model/CoreModelPersistenceState.js.map +1 -0
- package/dist/core/model/CoreModelSafeFinderSupport.d.ts +5 -0
- package/dist/core/model/CoreModelSafeFinderSupport.d.ts.map +1 -0
- package/dist/core/model/CoreModelSafeFinderSupport.js +15 -0
- package/dist/core/model/CoreModelSafeFinderSupport.js.map +1 -0
- package/dist/core/model/CoreModelValidationEvents.d.ts +24 -0
- package/dist/core/model/CoreModelValidationEvents.d.ts.map +1 -0
- package/dist/core/model/CoreModelValidationEvents.js +45 -0
- package/dist/core/model/CoreModelValidationEvents.js.map +1 -0
- package/dist/core/model/SafeFinder.d.ts +46 -0
- package/dist/core/model/SafeFinder.d.ts.map +1 -0
- package/dist/core/model/SafeFinder.js +223 -0
- package/dist/core/model/SafeFinder.js.map +1 -0
- package/dist/core/orm/Relation.d.ts +47 -0
- package/dist/core/orm/Relation.d.ts.map +1 -0
- package/dist/core/orm/Relation.js +62 -0
- package/dist/core/orm/Relation.js.map +1 -0
- package/dist/core/orm/mixins/CastsMixin.d.ts +18 -0
- package/dist/core/orm/mixins/CastsMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/CastsMixin.js +125 -0
- package/dist/core/orm/mixins/CastsMixin.js.map +1 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.d.ts +19 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.js +137 -0
- package/dist/core/orm/mixins/EagerLoadingMixin.js.map +1 -0
- package/dist/core/orm/mixins/HooksMixin.d.ts +16 -0
- package/dist/core/orm/mixins/HooksMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/HooksMixin.js +95 -0
- package/dist/core/orm/mixins/HooksMixin.js.map +1 -0
- package/dist/core/orm/mixins/MorphRegistry.d.ts +47 -0
- package/dist/core/orm/mixins/MorphRegistry.d.ts.map +1 -0
- package/dist/core/orm/mixins/MorphRegistry.js +67 -0
- package/dist/core/orm/mixins/MorphRegistry.js.map +1 -0
- package/dist/core/orm/mixins/MorphableMixin.d.ts +29 -0
- package/dist/core/orm/mixins/MorphableMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/MorphableMixin.js +93 -0
- package/dist/core/orm/mixins/MorphableMixin.js.map +1 -0
- package/dist/core/orm/mixins/PivotHelperMixin.d.ts +26 -0
- package/dist/core/orm/mixins/PivotHelperMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/PivotHelperMixin.js +102 -0
- package/dist/core/orm/mixins/PivotHelperMixin.js.map +1 -0
- package/dist/core/orm/mixins/QueryCacheMixin.d.ts +23 -0
- package/dist/core/orm/mixins/QueryCacheMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/QueryCacheMixin.js +172 -0
- package/dist/core/orm/mixins/QueryCacheMixin.js.map +1 -0
- package/dist/core/orm/mixins/ScopeMixin.d.ts +20 -0
- package/dist/core/orm/mixins/ScopeMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/ScopeMixin.js +72 -0
- package/dist/core/orm/mixins/ScopeMixin.js.map +1 -0
- package/dist/core/orm/mixins/SerializeMixin.d.ts +44 -0
- package/dist/core/orm/mixins/SerializeMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/SerializeMixin.js +80 -0
- package/dist/core/orm/mixins/SerializeMixin.js.map +1 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.d.ts +22 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.d.ts.map +1 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.js +146 -0
- package/dist/core/orm/mixins/SoftDeletesMixin.js.map +1 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.d.ts +8 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.js +26 -0
- package/dist/core/orm/mixins/utils/BaseMethodResolver.js.map +1 -0
- package/dist/core/orm/mixins/utils/HookStore.d.ts +26 -0
- package/dist/core/orm/mixins/utils/HookStore.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/HookStore.js +78 -0
- package/dist/core/orm/mixins/utils/HookStore.js.map +1 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.d.ts +33 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.js +87 -0
- package/dist/core/orm/mixins/utils/ModelRegistry.js.map +1 -0
- package/dist/core/orm/mixins/utils/modelRegistration.d.ts +9 -0
- package/dist/core/orm/mixins/utils/modelRegistration.d.ts.map +1 -0
- package/dist/core/orm/mixins/utils/modelRegistration.js +26 -0
- package/dist/core/orm/mixins/utils/modelRegistration.js.map +1 -0
- package/dist/core/orm/relations/BelongsTo.d.ts +6 -0
- package/dist/core/orm/relations/BelongsTo.d.ts.map +1 -0
- package/dist/core/orm/relations/BelongsTo.js +70 -0
- package/dist/core/orm/relations/BelongsTo.js.map +1 -0
- package/dist/core/orm/relations/BelongsToMany.d.ts +14 -0
- package/dist/core/orm/relations/BelongsToMany.d.ts.map +1 -0
- package/dist/core/orm/relations/BelongsToMany.js +245 -0
- package/dist/core/orm/relations/BelongsToMany.js.map +1 -0
- package/dist/core/orm/relations/HasMany.d.ts +6 -0
- package/dist/core/orm/relations/HasMany.d.ts.map +1 -0
- package/dist/core/orm/relations/HasMany.js +75 -0
- package/dist/core/orm/relations/HasMany.js.map +1 -0
- package/dist/core/orm/relations/HasOne.d.ts +6 -0
- package/dist/core/orm/relations/HasOne.d.ts.map +1 -0
- package/dist/core/orm/relations/HasOne.js +71 -0
- package/dist/core/orm/relations/HasOne.js.map +1 -0
- package/dist/core/orm/relations/MorphMany.d.ts +9 -0
- package/dist/core/orm/relations/MorphMany.d.ts.map +1 -0
- package/dist/core/orm/relations/MorphMany.js +107 -0
- package/dist/core/orm/relations/MorphMany.js.map +1 -0
- package/dist/core/orm/relations/MorphOne.d.ts +9 -0
- package/dist/core/orm/relations/MorphOne.d.ts.map +1 -0
- package/dist/core/orm/relations/MorphOne.js +101 -0
- package/dist/core/orm/relations/MorphOne.js.map +1 -0
- package/dist/core/orm/relations/MorphTo.d.ts +9 -0
- package/dist/core/orm/relations/MorphTo.d.ts.map +1 -0
- package/dist/core/orm/relations/MorphTo.js +85 -0
- package/dist/core/orm/relations/MorphTo.js.map +1 -0
- package/dist/core/schema/SQLDialect.d.ts +22 -0
- package/dist/core/schema/SQLDialect.d.ts.map +1 -0
- package/dist/core/schema/SQLDialect.js +38 -0
- package/dist/core/schema/SQLDialect.js.map +1 -0
- package/dist/core/schema/SchemaBlueprint.d.ts +61 -0
- package/dist/core/schema/SchemaBlueprint.d.ts.map +1 -0
- package/dist/core/schema/SchemaBlueprint.js +62 -0
- package/dist/core/schema/SchemaBlueprint.js.map +1 -0
- package/dist/core/schema/SchemaBuilder.d.ts +29 -0
- package/dist/core/schema/SchemaBuilder.d.ts.map +1 -0
- package/dist/core/schema/SchemaBuilder.js +661 -0
- package/dist/core/schema/SchemaBuilder.js.map +1 -0
- package/dist/core/schema/SchemaValidator.d.ts +23 -0
- package/dist/core/schema/SchemaValidator.d.ts.map +1 -0
- package/dist/core/schema/SchemaValidator.js +75 -0
- package/dist/core/schema/SchemaValidator.js.map +1 -0
- package/dist/core/security/AbstractSecurity.d.ts +24 -0
- package/dist/core/security/AbstractSecurity.d.ts.map +1 -0
- package/dist/core/security/AbstractSecurity.js +58 -0
- package/dist/core/security/AbstractSecurity.js.map +1 -0
- package/dist/core/security/EnvKeySecurity.d.ts +11 -0
- package/dist/core/security/EnvKeySecurity.d.ts.map +1 -0
- package/dist/core/security/EnvKeySecurity.js +46 -0
- package/dist/core/security/EnvKeySecurity.js.map +1 -0
- package/dist/core/security/NoSecurity.d.ts +10 -0
- package/dist/core/security/NoSecurity.d.ts.map +1 -0
- package/dist/core/security/NoSecurity.js +18 -0
- package/dist/core/security/NoSecurity.js.map +1 -0
- package/dist/core/security/SecretRedactor.d.ts +4 -0
- package/dist/core/security/SecretRedactor.d.ts.map +1 -0
- package/dist/core/security/SecretRedactor.js +60 -0
- package/dist/core/security/SecretRedactor.js.map +1 -0
- package/dist/core/security/SecurityContract.d.ts +13 -0
- package/dist/core/security/SecurityContract.d.ts.map +1 -0
- package/dist/core/security/SecurityContract.js +3 -0
- package/dist/core/security/SecurityContract.js.map +1 -0
- package/dist/core/security/SecurityFactory.d.ts +9 -0
- package/dist/core/security/SecurityFactory.d.ts.map +1 -0
- package/dist/core/security/SecurityFactory.js +29 -0
- package/dist/core/security/SecurityFactory.js.map +1 -0
- package/dist/core/security/index.d.ts +6 -0
- package/dist/core/security/index.d.ts.map +1 -0
- package/dist/core/security/index.js +22 -0
- package/dist/core/security/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/package.json +104 -0
- package/src/cli/templates/controller.tpl +80 -0
- package/src/cli/templates/factory.tpl +14 -0
- package/src/cli/templates/migration.tpl +36 -0
- package/src/cli/templates/model-registry.tpl +16 -0
- package/src/cli/templates/model.tpl +95 -0
- package/src/cli/templates/pivot-factory.tpl +85 -0
- package/src/cli/templates/seed.tpl +20 -0
- package/src/cli/templates/service.tpl +40 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Pool } from "mysql2/promise";
|
|
2
|
+
import { Client as PgClient } from "pg";
|
|
3
|
+
import { Db } from "mongodb";
|
|
4
|
+
import { dbConfig } from "../../config/database";
|
|
5
|
+
import { SQLiteConnectionLike } from "./BetterSqliteConnection";
|
|
6
|
+
/** Supported driver names */
|
|
7
|
+
export type DriverName = "mysql" | "pg" | "sqlite" | "mongo";
|
|
8
|
+
/** MySQL connection configuration */
|
|
9
|
+
export interface MySQLConfig {
|
|
10
|
+
driver: "mysql";
|
|
11
|
+
host: string;
|
|
12
|
+
user: string;
|
|
13
|
+
password: string;
|
|
14
|
+
database: string;
|
|
15
|
+
port?: number;
|
|
16
|
+
waitForConnections?: boolean;
|
|
17
|
+
connectionLimit?: number;
|
|
18
|
+
queueLimit?: number;
|
|
19
|
+
}
|
|
20
|
+
/** PostgreSQL connection configuration */
|
|
21
|
+
export interface PostgresConfig {
|
|
22
|
+
driver: "pg";
|
|
23
|
+
host: string;
|
|
24
|
+
user: string;
|
|
25
|
+
password: string;
|
|
26
|
+
database: string;
|
|
27
|
+
port: number;
|
|
28
|
+
}
|
|
29
|
+
/** SQLite connection configuration */
|
|
30
|
+
export interface SQLiteConfig {
|
|
31
|
+
driver: "sqlite";
|
|
32
|
+
sqlitePath: string;
|
|
33
|
+
}
|
|
34
|
+
/** MongoDB connection configuration */
|
|
35
|
+
export interface MongoConfig {
|
|
36
|
+
driver: "mongo";
|
|
37
|
+
uri: string;
|
|
38
|
+
database: string;
|
|
39
|
+
dnsServers?: string[];
|
|
40
|
+
}
|
|
41
|
+
/** Union type for all connection configs */
|
|
42
|
+
export type ConnectionConfig = MySQLConfig | PostgresConfig | SQLiteConfig | MongoConfig;
|
|
43
|
+
/** Database connection instance types */
|
|
44
|
+
export type ConnectionInstance = Pool | PgClient | SQLiteConnectionLike | Db;
|
|
45
|
+
/** Supported connection names */
|
|
46
|
+
export type ConnectionName = keyof typeof dbConfig.connections;
|
|
47
|
+
export declare function connectDB(name: ConnectionName): Promise<ConnectionInstance>;
|
|
48
|
+
export declare function closeMongoClient(connection: ConnectionInstance): Promise<boolean>;
|
|
49
|
+
//# sourceMappingURL=DatabaseConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseConnection.d.ts","sourceRoot":"","sources":["../../../src/core/connection/DatabaseConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAe,EAAE,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAEL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAMlC,6BAA6B;AAC7B,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,4CAA4C;AAC5C,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,CAAC;AAEzF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,QAAQ,GAAG,oBAAoB,GAAG,EAAE,CAAC;AAE7E,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,QAAQ,CAAC,WAAW,CAAC;AA4D/D,wBAAsB,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6DjF;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvF"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.connectDB = connectDB;
|
|
7
|
+
exports.closeMongoClient = closeMongoClient;
|
|
8
|
+
const pg_1 = require("pg");
|
|
9
|
+
const mongodb_1 = require("mongodb");
|
|
10
|
+
const dns_1 = __importDefault(require("dns"));
|
|
11
|
+
const database_1 = require("../../config/database");
|
|
12
|
+
const BetterSqliteConnection_1 = require("./BetterSqliteConnection");
|
|
13
|
+
const mongoClientByDb = new WeakMap();
|
|
14
|
+
function applyMongoDnsServers(uri, dnsServers) {
|
|
15
|
+
if (!uri.startsWith("mongodb+srv://"))
|
|
16
|
+
return;
|
|
17
|
+
const normalizedServers = (dnsServers ?? [])
|
|
18
|
+
.map((value) => value.trim())
|
|
19
|
+
.filter((value) => value.length > 0);
|
|
20
|
+
if (normalizedServers.length === 0)
|
|
21
|
+
return;
|
|
22
|
+
const currentServers = dns_1.default.getServers();
|
|
23
|
+
if (currentServers.length === normalizedServers.length &&
|
|
24
|
+
currentServers.every((value, index) => value === normalizedServers[index])) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
dns_1.default.setServers(normalizedServers);
|
|
28
|
+
console.log(`Using custom DNS servers for MongoDB SRV resolution: ${normalizedServers.join(", ")}`);
|
|
29
|
+
}
|
|
30
|
+
function normalizeMongoConnectionError(connectionName, error) {
|
|
31
|
+
const code = String(error?.code ?? "");
|
|
32
|
+
const codeName = String(error?.codeName ?? "");
|
|
33
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
34
|
+
if (code === "ECONNREFUSED" && message.includes("querySrv")) {
|
|
35
|
+
const normalized = new Error(`MongoDB SRV lookup failed for "${connectionName}". ` +
|
|
36
|
+
`If system DNS works but Node fails, set MONGO_DNS_SERVERS ` +
|
|
37
|
+
`or switch to a non-SRV mongodb:// URI.`);
|
|
38
|
+
normalized.cause = error;
|
|
39
|
+
return normalized;
|
|
40
|
+
}
|
|
41
|
+
if ((code === "8000" || codeName === "AtlasError") && /auth/i.test(message)) {
|
|
42
|
+
const normalized = new Error(`MongoDB authentication failed for "${connectionName}". ` +
|
|
43
|
+
`Verify MONGO_URI credentials, Atlas DB user roles, and authSource.`);
|
|
44
|
+
normalized.cause = error;
|
|
45
|
+
return normalized;
|
|
46
|
+
}
|
|
47
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
48
|
+
}
|
|
49
|
+
/* ----------------------------------------------------------
|
|
50
|
+
* 2. Connect Function (Multi-Driver)
|
|
51
|
+
* ---------------------------------------------------------- */
|
|
52
|
+
async function connectDB(name) {
|
|
53
|
+
const config = database_1.dbConfig.connections[name];
|
|
54
|
+
switch (config.driver) {
|
|
55
|
+
/* ---------- MySQL ---------- */
|
|
56
|
+
case "mysql": {
|
|
57
|
+
const mysql = require("mysql2/promise");
|
|
58
|
+
return mysql.createPool({
|
|
59
|
+
host: config.host,
|
|
60
|
+
user: config.user,
|
|
61
|
+
password: config.password,
|
|
62
|
+
database: config.database,
|
|
63
|
+
port: config.port,
|
|
64
|
+
waitForConnections: config.waitForConnections ?? true,
|
|
65
|
+
connectionLimit: config.connectionLimit ?? 10,
|
|
66
|
+
queueLimit: config.queueLimit ?? 0,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/* ---------- PostgreSQL ---------- */
|
|
70
|
+
case "pg": {
|
|
71
|
+
const client = new pg_1.Client({
|
|
72
|
+
host: config.host,
|
|
73
|
+
user: config.user,
|
|
74
|
+
password: config.password,
|
|
75
|
+
database: config.database,
|
|
76
|
+
port: config.port,
|
|
77
|
+
});
|
|
78
|
+
await client.connect();
|
|
79
|
+
return client;
|
|
80
|
+
}
|
|
81
|
+
/* ---------- SQLite ---------- */
|
|
82
|
+
case "sqlite": {
|
|
83
|
+
return new BetterSqliteConnection_1.BetterSqliteConnection(config.sqlitePath);
|
|
84
|
+
}
|
|
85
|
+
/* ---------- MongoDB ---------- */
|
|
86
|
+
case "mongo": {
|
|
87
|
+
applyMongoDnsServers(config.uri, config.dnsServers);
|
|
88
|
+
const client = new mongodb_1.MongoClient(config.uri);
|
|
89
|
+
try {
|
|
90
|
+
await client.connect();
|
|
91
|
+
const db = client.db(config.database);
|
|
92
|
+
mongoClientByDb.set(db, client);
|
|
93
|
+
console.log(`Connected to MongoDB: ${config.database}`);
|
|
94
|
+
return db;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
try {
|
|
98
|
+
await client.close();
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// no-op
|
|
102
|
+
}
|
|
103
|
+
throw normalizeMongoConnectionError(name, error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/* ---------- Unknown ---------- */
|
|
107
|
+
default:
|
|
108
|
+
throw new Error(`Unsupported driver: ${config.driver}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function closeMongoClient(connection) {
|
|
112
|
+
const db = connection;
|
|
113
|
+
const client = mongoClientByDb.get(db);
|
|
114
|
+
if (!client)
|
|
115
|
+
return false;
|
|
116
|
+
await client.close();
|
|
117
|
+
mongoClientByDb.delete(db);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=DatabaseConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseConnection.js","sourceRoot":"","sources":["../../../src/core/connection/DatabaseConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ConnectionInstance, ConnectionName } from "./DatabaseConnection";
|
|
2
|
+
export type AdapterKind = "sql" | "mongo";
|
|
3
|
+
export interface DriverAdapter {
|
|
4
|
+
name: ConnectionName;
|
|
5
|
+
kind: AdapterKind;
|
|
6
|
+
query<T = unknown>(sql: string, params?: unknown[]): Promise<T[]>;
|
|
7
|
+
queryOne<T = unknown>(sql: string, params?: unknown[]): Promise<T | null>;
|
|
8
|
+
execute(sql: string, params?: unknown[]): Promise<void>;
|
|
9
|
+
insert(sql: string, params?: unknown[]): Promise<{
|
|
10
|
+
id?: unknown;
|
|
11
|
+
row?: Record<string, unknown>;
|
|
12
|
+
}>;
|
|
13
|
+
placeholder(index: number): string;
|
|
14
|
+
placeholders(count: number, startIndex?: number): string;
|
|
15
|
+
inClause(field: string, values: unknown[], startIndex?: number): {
|
|
16
|
+
sql: string;
|
|
17
|
+
params: unknown[];
|
|
18
|
+
nextIndex: number;
|
|
19
|
+
};
|
|
20
|
+
wrapId(id: string): string;
|
|
21
|
+
}
|
|
22
|
+
export declare function createAdapter(name: ConnectionName, connection: ConnectionInstance): DriverAdapter;
|
|
23
|
+
//# sourceMappingURL=DriverAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DriverAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/connection/DriverAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG/E,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAElB,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAE5D,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzD,QAAQ,CACN,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAmJD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,kBAAkB,GAC7B,aAAa,CAaf"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAdapter = createAdapter;
|
|
4
|
+
const database_1 = require("../../config/database");
|
|
5
|
+
function isSqlDriver(driver) {
|
|
6
|
+
return driver === "mysql" || driver === "pg" || driver === "sqlite";
|
|
7
|
+
}
|
|
8
|
+
function assertSafeIdentifier(part) {
|
|
9
|
+
if (part === "*")
|
|
10
|
+
return;
|
|
11
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(part)) {
|
|
12
|
+
throw new Error(`Unsafe SQL identifier: ${part}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function wrapIdentifier(id, quote) {
|
|
16
|
+
if (id === "*")
|
|
17
|
+
return "*";
|
|
18
|
+
const parts = id.split(".");
|
|
19
|
+
const wrapped = parts.map((part) => {
|
|
20
|
+
assertSafeIdentifier(part);
|
|
21
|
+
if (part === "*")
|
|
22
|
+
return "*";
|
|
23
|
+
return `${quote}${part}${quote}`;
|
|
24
|
+
});
|
|
25
|
+
return wrapped.join(".");
|
|
26
|
+
}
|
|
27
|
+
function hasReturningClause(sql) {
|
|
28
|
+
return /\breturning\b/i.test(sql);
|
|
29
|
+
}
|
|
30
|
+
function buildSqlAdapter(name, connection, driver) {
|
|
31
|
+
const quote = driver === "mysql" ? "`" : "\"";
|
|
32
|
+
const placeholder = (index) => (driver === "pg" ? `$${index}` : "?");
|
|
33
|
+
const placeholders = (count, startIndex = 1) => {
|
|
34
|
+
const parts = [];
|
|
35
|
+
for (let i = 0; i < count; i++) {
|
|
36
|
+
parts.push(placeholder(startIndex + i));
|
|
37
|
+
}
|
|
38
|
+
return parts.join(", ");
|
|
39
|
+
};
|
|
40
|
+
const inClause = (field, values, startIndex = 1) => {
|
|
41
|
+
if (!values.length) {
|
|
42
|
+
return { sql: "1=0", params: [], nextIndex: startIndex };
|
|
43
|
+
}
|
|
44
|
+
if (driver === "pg") {
|
|
45
|
+
return {
|
|
46
|
+
sql: `${field} = ANY(${placeholder(startIndex)})`,
|
|
47
|
+
params: [values],
|
|
48
|
+
nextIndex: startIndex + 1,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const list = placeholders(values.length, startIndex);
|
|
52
|
+
return {
|
|
53
|
+
sql: `${field} IN (${list})`,
|
|
54
|
+
params: values,
|
|
55
|
+
nextIndex: startIndex + values.length,
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
if (driver === "mysql") {
|
|
59
|
+
return {
|
|
60
|
+
name,
|
|
61
|
+
kind: "sql",
|
|
62
|
+
async query(sql, params = []) {
|
|
63
|
+
const [rows] = await connection.query(sql, params);
|
|
64
|
+
return rows;
|
|
65
|
+
},
|
|
66
|
+
async queryOne(sql, params = []) {
|
|
67
|
+
const rows = await this.query(sql, params);
|
|
68
|
+
return rows[0] ?? null;
|
|
69
|
+
},
|
|
70
|
+
async execute(sql, params = []) {
|
|
71
|
+
await connection.query(sql, params);
|
|
72
|
+
},
|
|
73
|
+
async insert(sql, params = []) {
|
|
74
|
+
const [res] = await connection.query(sql, params);
|
|
75
|
+
const id = res?.insertId ?? res?.insertedId ?? undefined;
|
|
76
|
+
return { id };
|
|
77
|
+
},
|
|
78
|
+
placeholder,
|
|
79
|
+
placeholders,
|
|
80
|
+
inClause,
|
|
81
|
+
wrapId: (id) => wrapIdentifier(id, quote),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (driver === "sqlite") {
|
|
85
|
+
return {
|
|
86
|
+
name,
|
|
87
|
+
kind: "sql",
|
|
88
|
+
async query(sql, params = []) {
|
|
89
|
+
return await connection.all(sql, params);
|
|
90
|
+
},
|
|
91
|
+
async queryOne(sql, params = []) {
|
|
92
|
+
const row = await connection.get(sql, params);
|
|
93
|
+
return row ?? null;
|
|
94
|
+
},
|
|
95
|
+
async execute(sql, params = []) {
|
|
96
|
+
await connection.run(sql, params);
|
|
97
|
+
},
|
|
98
|
+
async insert(sql, params = []) {
|
|
99
|
+
const res = await connection.run(sql, params);
|
|
100
|
+
return { id: res?.lastID };
|
|
101
|
+
},
|
|
102
|
+
placeholder,
|
|
103
|
+
placeholders,
|
|
104
|
+
inClause,
|
|
105
|
+
wrapId: (id) => wrapIdentifier(id, quote),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
name,
|
|
110
|
+
kind: "sql",
|
|
111
|
+
async query(sql, params = []) {
|
|
112
|
+
const res = await connection.query(sql, params);
|
|
113
|
+
return res.rows;
|
|
114
|
+
},
|
|
115
|
+
async queryOne(sql, params = []) {
|
|
116
|
+
const rows = await this.query(sql, params);
|
|
117
|
+
return rows[0] ?? null;
|
|
118
|
+
},
|
|
119
|
+
async execute(sql, params = []) {
|
|
120
|
+
await connection.query(sql, params);
|
|
121
|
+
},
|
|
122
|
+
async insert(sql, params = []) {
|
|
123
|
+
const finalSql = hasReturningClause(sql) ? sql : `${sql} RETURNING *`;
|
|
124
|
+
const res = await connection.query(finalSql, params);
|
|
125
|
+
const row = res.rows?.[0];
|
|
126
|
+
return { id: row?.id, row };
|
|
127
|
+
},
|
|
128
|
+
placeholder,
|
|
129
|
+
placeholders,
|
|
130
|
+
inClause,
|
|
131
|
+
wrapId: (id) => wrapIdentifier(id, quote),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function createAdapter(name, connection) {
|
|
135
|
+
const config = database_1.dbConfig.connections[name];
|
|
136
|
+
const driver = config?.driver;
|
|
137
|
+
if (driver === "mongo") {
|
|
138
|
+
throw new Error("Mongo driver does not support SQL adapter APIs.");
|
|
139
|
+
}
|
|
140
|
+
if (!driver || !isSqlDriver(driver)) {
|
|
141
|
+
throw new Error(`Unsupported driver for adapter: ${String(driver)}`);
|
|
142
|
+
}
|
|
143
|
+
return buildSqlAdapter(name, connection, driver);
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=DriverAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DriverAdapter.js","sourceRoot":"","sources":["../../../src/core/connection/DriverAdapter.ts"],"names":[],"mappings":";;AA4KA,sCAgBC;AA3LD,oDAAiD;AA4BjD,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,CAAC;AACtE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO;IACzB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EAAU,EAAE,KAAa;IAC/C,IAAI,EAAE,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC;IAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC;QAC7B,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CACtB,IAAoB,EACpB,UAA8B,EAC9B,MAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9C,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE7E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,UAAU,GAAG,CAAC,EAAE,EAAE;QACrD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,MAAiB,EAAE,UAAU,GAAG,CAAC,EAAE,EAAE;QACpE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,GAAG,EAAE,GAAG,KAAK,UAAU,WAAW,CAAC,UAAU,CAAC,GAAG;gBACjD,MAAM,EAAE,CAAC,MAAM,CAAC;gBAChB,SAAS,EAAE,UAAU,GAAG,CAAC;aAC1B,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACrD,OAAO;YACL,GAAG,EAAE,GAAG,KAAK,QAAQ,IAAI,GAAG;YAC5B,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM;SACtC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,KAAK;YACX,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,SAAoB,EAAE;gBAChD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAO,UAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC5D,OAAO,IAAW,CAAC;YACrB,CAAC;YACD,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,SAAoB,EAAE;gBACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,SAAoB,EAAE;gBAC/C,MAAO,UAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,SAAoB,EAAE;gBAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAO,UAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,EAAE,GAAG,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,UAAU,IAAI,SAAS,CAAC;gBACzD,OAAO,EAAE,EAAE,EAAE,CAAC;YAChB,CAAC;YACD,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,KAAK;YACX,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,SAAoB,EAAE;gBAChD,OAAO,MAAO,UAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;YACD,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,SAAoB,EAAE;gBACnD,MAAM,GAAG,GAAG,MAAO,UAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACvD,OAAQ,GAAS,IAAI,IAAI,CAAC;YAC5B,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,SAAoB,EAAE;gBAC/C,MAAO,UAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,SAAoB,EAAE;gBAC9C,MAAM,GAAG,GAAG,MAAO,UAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACvD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAC7B,CAAC;YACD,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,KAAK;QACX,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,SAAoB,EAAE;YAChD,MAAM,GAAG,GAAG,MAAO,UAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC,IAAW,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,SAAoB,EAAE;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,SAAoB,EAAE;YAC/C,MAAO,UAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,SAAoB,EAAE;YAC9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,cAAc,CAAC;YACtE,MAAM,GAAG,GAAG,MAAO,UAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QAC9B,CAAC;QACD,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAC3B,IAAoB,EACpB,UAA8B;IAE9B,MAAM,MAAM,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;IAE9B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ConnectionName } from "./ConnectionFactory";
|
|
2
|
+
/**
|
|
3
|
+
* 🔍 Resolve the correct connection name for a model or fallback globally.
|
|
4
|
+
* Priority:
|
|
5
|
+
* 1. Explicit model test/no-sql connection (test mode)
|
|
6
|
+
* 2. process.env.DB_TEST_CONNECTION (test mode)
|
|
7
|
+
* 3. ModelClass.connectionName
|
|
8
|
+
* 4. process.env.DB_CONNECTION
|
|
9
|
+
* 5. dbConfig.default
|
|
10
|
+
* 6. "mysql"
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveConnectionName(modelClass?: {
|
|
13
|
+
connectionName?: string;
|
|
14
|
+
}, options?: {
|
|
15
|
+
test?: boolean;
|
|
16
|
+
}): ConnectionName;
|
|
17
|
+
//# sourceMappingURL=resolveConnectionName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveConnectionName.d.ts","sourceRoot":"","sources":["../../../src/core/connection/resolveConnectionName.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,cAAc,CA2ChB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveConnectionName = resolveConnectionName;
|
|
4
|
+
// src/core/connection/resolveConnectionName.ts
|
|
5
|
+
const database_1 = require("../../config/database");
|
|
6
|
+
/**
|
|
7
|
+
* 🔍 Resolve the correct connection name for a model or fallback globally.
|
|
8
|
+
* Priority:
|
|
9
|
+
* 1. Explicit model test/no-sql connection (test mode)
|
|
10
|
+
* 2. process.env.DB_TEST_CONNECTION (test mode)
|
|
11
|
+
* 3. ModelClass.connectionName
|
|
12
|
+
* 4. process.env.DB_CONNECTION
|
|
13
|
+
* 5. dbConfig.default
|
|
14
|
+
* 6. "mysql"
|
|
15
|
+
*/
|
|
16
|
+
function resolveConnectionName(modelClass, options) {
|
|
17
|
+
if (options?.test) {
|
|
18
|
+
const explicitModelConnection = modelClass?.connectionName;
|
|
19
|
+
if (explicitModelConnection &&
|
|
20
|
+
Object.prototype.hasOwnProperty.call(database_1.dbConfig.connections, explicitModelConnection)) {
|
|
21
|
+
const modelDriver = database_1.dbConfig.connections[explicitModelConnection]?.driver;
|
|
22
|
+
if (explicitModelConnection.endsWith("_test") || modelDriver === "mongo") {
|
|
23
|
+
return explicitModelConnection;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const explicitTest = process.env.DB_TEST_CONNECTION;
|
|
27
|
+
if (explicitTest &&
|
|
28
|
+
Object.prototype.hasOwnProperty.call(database_1.dbConfig.connections, explicitTest)) {
|
|
29
|
+
return explicitTest;
|
|
30
|
+
}
|
|
31
|
+
for (const fallback of ["mysql_test", "pg_test", "sqlite_test", "mongo_test", "mongo"]) {
|
|
32
|
+
if (Object.prototype.hasOwnProperty.call(database_1.dbConfig.connections, fallback)) {
|
|
33
|
+
return fallback;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const name = modelClass?.connectionName ||
|
|
38
|
+
process.env.DB_CONNECTION ||
|
|
39
|
+
database_1.dbConfig.default ||
|
|
40
|
+
"mysql";
|
|
41
|
+
if (!Object.keys(database_1.dbConfig.connections).includes(name)) {
|
|
42
|
+
console.warn(`⚠️ Invalid connection "${name}" — falling back to "mysql".`);
|
|
43
|
+
return "mysql";
|
|
44
|
+
}
|
|
45
|
+
return name;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=resolveConnectionName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveConnectionName.js","sourceRoot":"","sources":["../../../src/core/connection/resolveConnectionName.ts"],"names":[],"mappings":";;AAcA,sDA8CC;AA5DD,+CAA+C;AAC/C,oDAAiD;AAGjD;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,UAAwC,EACxC,OAA4B;IAE5B,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,MAAM,uBAAuB,GAAG,UAAU,EAAE,cAAc,CAAC;QAC3D,IACE,uBAAuB;YACvB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC,EACnF,CAAC;YACD,MAAM,WAAW,GAAI,mBAAQ,CAAC,WAAmD,CAC/E,uBAAuB,CACxB,EAAE,MAAM,CAAC;YACV,IAAI,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBACzE,OAAO,uBAAyC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACpD,IACE,YAAY;YACZ,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,EACxE,CAAC;YACD,OAAO,YAA8B,CAAC;QACxC,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;YACvF,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACzE,OAAO,QAA0B,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GACR,UAAU,EAAE,cAAc;QAC1B,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,mBAAQ,CAAC,OAAO;QAChB,OAAO,CAAC;IAEV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,IAAI,CACV,0BAA0B,IAAI,8BAA8B,CAC7D,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAsB,CAAC;AAChC,CAAC"}
|