Skip to content

Commit 1bdd193

Browse files
committed
chore(server-core): move driver deps to ts
1 parent 35a163b commit 1bdd193

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

packages/cubejs-server-core/src/core/DevServer.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -326,11 +326,11 @@ export class DevServer {
326326
app.get('/playground/driver', catchErrors(async (req: Request, res: Response) => {
327327
const { driver } = req.query;
328328

329-
if (!driver || !DriverDependencies[driver]) {
329+
if (!driver || typeof driver !== 'string' || !DriverDependencies[driver as keyof typeof DriverDependencies]) {
330330
return res.status(400).json('Wrong driver');
331331
}
332332

333-
if (packageExists(DriverDependencies[driver])) {
333+
if (packageExists(DriverDependencies[driver as keyof typeof DriverDependencies])) {
334334
return res.json({ status: 'installed' });
335335
} else if (driverPromise) {
336336
return res.json({ status: 'installing' });
@@ -347,17 +347,19 @@ export class DevServer {
347347
app.post('/playground/driver', catchErrors((req, res) => {
348348
const { driver } = req.body;
349349

350-
if (!DriverDependencies[driver]) {
350+
if (!driver || typeof driver !== 'string' || !DriverDependencies[driver as keyof typeof DriverDependencies]) {
351351
return res.status(400).json(`'${driver}' driver dependency not found`);
352352
}
353353

354+
const driverKey = driver as keyof typeof DriverDependencies;
355+
354356
async function installDriver() {
355357
driverError = null;
356358

357359
try {
358360
await executeCommand(
359361
'npm',
360-
['install', DriverDependencies[driver], '--save-dev'],
362+
['install', DriverDependencies[driverKey], '--save-dev'],
361363
{ cwd: path.resolve('.') }
362364
);
363365
} catch (error) {
@@ -372,7 +374,7 @@ export class DevServer {
372374
}
373375

374376
return res.json({
375-
dependency: DriverDependencies[driver]
377+
dependency: DriverDependencies[driverKey]
376378
});
377379
}));
378380

packages/cubejs-server-core/src/core/DriverDependencies.js renamed to packages/cubejs-server-core/src/core/DriverDependencies.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
module.exports = {
1+
import { DatabaseType } from './types';
2+
3+
const DriverDependencies: Record<DatabaseType, string> = {
24
postgres: '@cubejs-backend/postgres-driver',
35
mysql: '@cubejs-backend/mysql-driver',
46
mysqlauroraserverless: '@cubejs-backend/mysql-aurora-serverless-driver',
@@ -31,3 +33,5 @@ module.exports = {
3133
// List for JDBC drivers
3234
'databricks-jdbc': '@cubejs-backend/databricks-jdbc-driver',
3335
};
36+
37+
export default DriverDependencies;

packages/cubejs-server-core/src/core/types.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,24 @@ export type DatabaseType =
108108
| 'mongobi'
109109
| 'mssql'
110110
| 'mysql'
111+
| 'mysqlauroraserverless'
111112
| 'elasticsearch'
112113
| 'awselasticsearch'
113114
| 'oracle'
114115
| 'postgres'
115116
| 'prestodb'
117+
| 'trino'
116118
| 'redshift'
117119
| 'snowflake'
118120
| 'sqlite'
119121
| 'questdb'
120122
| 'materialize'
121-
| 'pinot';
123+
| 'pinot'
124+
| 'dremio'
125+
| 'duckdb'
126+
| 'ksql'
127+
| 'vertica'
128+
| 'databricks-jdbc';
122129

123130
export type ContextToAppIdFn = (context: RequestContext) => string | Promise<string>;
124131
export type ContextToRolesFn = (context: RequestContext) => string[] | Promise<string[]>;

0 commit comments

Comments
 (0)