diff --git a/packages/cubejs-server/index.d.ts b/packages/cubejs-server/index.d.ts index 071f8572f6494..34128bf4d90ad 100644 --- a/packages/cubejs-server/index.d.ts +++ b/packages/cubejs-server/index.d.ts @@ -5,6 +5,7 @@ import http from 'http'; export interface CreateOptions extends CoreCreateOptions { webSockets?: boolean; + initApp?(app: express.Application): void | Promise; } declare class CubejsServer { diff --git a/packages/cubejs-server/index.js b/packages/cubejs-server/index.js index a00a5cce45e46..9a0138abf9d9f 100644 --- a/packages/cubejs-server/index.js +++ b/packages/cubejs-server/index.js @@ -12,6 +12,7 @@ class CubejsServer { this.webSockets = config.webSockets; this.redirector = null; this.server = null; + this.initApp = config.initApp; } async listen(options = {}) { @@ -29,6 +30,10 @@ class CubejsServer { app.use(require("cors")()); app.use(bodyParser.json({ limit: "50mb" })); + if (this.initApp) { + await this.initApp(app); + } + await this.core.initApp(app); return new Promise((resolve, reject) => {