redis-smq-web-server 9.0.0-next.2 → 9.0.0-next.4

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 CHANGED
@@ -3,6 +3,29 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [9.0.0-next.4](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.3...v9.0.0-next.4) (2025-10-09)
7
+
8
+ ### ♻️ Code Refactoring
9
+
10
+ - **redis-smq-web-server:** replace console logging with app logger ([d8b3210](https://github.com/weyoss/redis-smq/commit/d8b32109929c54316630029ac8f7d9ed7fa094eb))
11
+ - **redis-smq-web-server:** use createLogger function ([436e2ea](https://github.com/weyoss/redis-smq/commit/436e2ea044d9e02e0916b96c1213e92e25787e8a))
12
+
13
+ ## [9.0.0-next.3](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.2...v9.0.0-next.3) (2025-09-09)
14
+
15
+ ### 🐛 Bug Fixes
16
+
17
+ - **redis-smq-web-server:** set default Redis database to 0 ([3b4e200](https://github.com/weyoss/redis-smq/commit/3b4e200681a5e1eec2446fa6ffa27878cb790b29))
18
+ - **redis-smq-web-server:** update peer dependencies ([2be664e](https://github.com/weyoss/redis-smq/commit/2be664ea4bacffd5b0a780e05355e356028b6321))
19
+
20
+ ### 📝 Documentation
21
+
22
+ - **redis-smq-rest-api:** add Redis client installation instructions ([40d9d54](https://github.com/weyoss/redis-smq/commit/40d9d541274701b6b701505e70d9f5ee8add0912))
23
+ - **redis-smq-web-server:** update configuration API and CLI options ([873bedf](https://github.com/weyoss/redis-smq/commit/873bedf848bf7098010cf67b3a886e50864021c4))
24
+
25
+ ### ♻️ Code Refactoring
26
+
27
+ - **redis-smq-web-server:** improve CLI configuration and config parsing ([8ec1d84](https://github.com/weyoss/redis-smq/commit/8ec1d840678eb360a7854453cd6e20976d872c5c))
28
+
6
29
  ## [9.0.0-next.2](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.1...v9.0.0-next.2) (2025-09-07)
7
30
 
8
31
  ### 🐛 Bug Fixes
package/README.md CHANGED
@@ -22,6 +22,14 @@ A lightweight, configurable HTTP server that hosts the RedisSMQ Web UI and expos
22
22
  npm install redis-smq redis-smq-common redis-smq-rest-api redis-smq-web-ui redis-smq-web-server --save
23
23
  ```
24
24
 
25
+ Don't forget to install a Redis client. Choose either node-redis or ioredis:
26
+
27
+ ```shell
28
+ npm install @redis/client --save
29
+ # or
30
+ npm install ioredis --save
31
+ ```
32
+
25
33
  ## Quick Start
26
34
 
27
35
  ### From the Command Line
@@ -68,51 +76,48 @@ to the upstream. In this mode, Redis connection options on the web server are no
68
76
 
69
77
  If you prefer embedding the server in your app, you can pass the same configuration programmatically.
70
78
 
71
- #### ESM / TypeScript
72
-
73
79
  ```typescript
74
80
  import { RedisSMQWebServer } from 'redis-smq-web-server';
75
-
76
- const redisSMQWebServer = new RedisSMQWebServer();
77
-
78
- await redisSMQWebServer.run({
79
- port: 8080,
80
- basePath: '/',
81
- redisHost: '127.0.0.1',
82
- redisPort: 6379,
83
- redisDB: '1',
81
+ import { EConsoleLoggerLevel, ERedisConfigClient } from 'redis-smq-common';
82
+
83
+ // Run with the embedded REST API (in-process)
84
+ const server = new RedisSMQWebServer({
85
+ webServer: {
86
+ port: 8080,
87
+ basePath: '/', // UI at '/', API at '/api', docs at '/docs'
88
+ },
89
+ // The following options are used only when apiProxyTarget is NOT set
90
+ redis: {
91
+ client: ERedisConfigClient.IOREDIS,
92
+ options: {
93
+ host: '127.0.0.1',
94
+ port: 6379,
95
+ db: 1,
96
+ showFriendlyErrorStack: true,
97
+ },
98
+ },
99
+ logger: {
100
+ enabled: true,
101
+ options: {
102
+ level: EConsoleLoggerLevel.INFO,
103
+ },
104
+ },
84
105
  });
85
106
 
86
- // Or proxy API/docs/assets to an external service
87
- await redisSMQWebServer.run({
88
- port: 8080,
89
- apiProxyTarget: 'http://127.0.0.1:7210',
90
- });
107
+ await server.run();
108
+ // await server.shutdown();
91
109
 
92
- // Optional: stop later
93
- // await redisSMQWebServer.shutdown();
94
- ```
95
-
96
- #### CommonJS
97
-
98
- ```javascript
99
- const { startWebServer } = require('redis-smq-web-server');
100
-
101
- const redisSMQWebServer = new RedisSMQWebServer();
102
-
103
- redisSMQWebServer.run({
104
- port: 8080,
105
- basePath: '/',
106
- redisHost: '127.0.0.1',
107
- redisPort: 6379,
108
- redisDB: '1',
110
+ // Or proxy API/docs/assets to an external service
111
+ const srv = new RedisSMQWebServer({
112
+ webServer: {
113
+ port: 8080,
114
+ basePath: '/', // or '/redis-smq'
115
+ apiProxyTarget: 'http://127.0.0.1:7210',
116
+ },
117
+ // No redis/logger config required in proxy mode
109
118
  });
110
119
 
111
- // Or proxy to external API
112
- redisSMQWebServer.run({
113
- port: 8080,
114
- apiProxyTarget: 'http://127.0.0.1:7210',
115
- });
120
+ await srv.run();
116
121
  ```
117
122
 
118
123
  ## Routes
@@ -142,39 +147,54 @@ Proxying behavior:
142
147
  Configuration can be provided programmatically or via CLI arguments. The core interface is:
143
148
 
144
149
  ```typescript
145
- interface IRedisSMQWebServerConfig {
146
- port: number;
147
- basePath: string;
148
- redisPort: number;
149
- redisHost: string;
150
- redisDB: string;
151
- /**
152
- * Optional: forward <basePath>/api, <basePath>/docs and <basePath>/assets
153
- * to an external redis-smq-rest-api service. Example: "http://127.0.0.1:7210"
154
- */
155
- apiProxyTarget?: string;
150
+ import type { IRedisSMQRestApiConfig } from 'redis-smq-rest-api';
151
+
152
+ interface IRedisSMQWebServerConfig extends IRedisSMQRestApiConfig {
153
+ webServer?: {
154
+ /**
155
+ * HTTP port to run the web server on.
156
+ * Default: 8080
157
+ */
158
+ port?: number;
159
+
160
+ /**
161
+ * Base public path for the RedisSMQ Web UI and the local API/docs when embedded.
162
+ * Default: '/'
163
+ */
164
+ basePath?: string;
165
+
166
+ /**
167
+ * Optional target for proxying (/api, /docs, /assets).
168
+ * If provided, the embedded REST API is not mounted and requests are forwarded to the target.
169
+ * Example: 'http://127.0.0.1:7210'
170
+ */
171
+ apiProxyTarget?: string;
172
+ };
156
173
  }
157
174
  ```
158
175
 
159
- ### Options
160
- - port: HTTP port the web server listens on.
161
- - basePath: Public base path where the UI and API are mounted (e.g., / or /redis-smq).
162
- - redisPort: Redis server port (default 6379).
163
- - redisHost: Redis server host (default 127.0.0.1).
164
- - redisDB: Redis database index used by RedisSMQ (e.g., "1").
165
- - apiProxyTarget: If provided, the web server proxies API/docs/assets to this upstream instead of hosting the API in-process.
176
+ Notes:
177
+
178
+ - When `webServer.apiProxyTarget` is set, the server proxies `<basePath>/api`, `<basePath>/docs`, and
179
+ `<basePath>/assets` to the target. In this mode, redis and logger options are not used by the web server (they are
180
+ handled by the upstream API service).
181
+
182
+ - When `webServer.apiProxyTarget` is not set, the web server mounts the embedded `redis-smq-rest-api` using the provided
183
+ `IRedisSMQRestApiConfig` (redis, logger, etc.).
166
184
 
167
185
  ### ClI flags
168
186
 
169
187
  ```shell
170
- -p, --port <port> Port to run the server on (default: "8080")
171
- -B, --base-path <basePath> base public path for the RedisSMQ Web UI SPA (default: "/")
172
- -H, --redis-host <redisHost> Redis server host (default: "127.0.0.1")
173
- -P, --redis-port <redisPort> Redis server port (default: "6379")
174
- -D, --redis-db <redisDB> Redis database number (default: "1")
175
- -x, --api-proxy-target <url> Proxy target for API (/api, /docs, /assets). Example: http://127.0.0.1:7210
176
- -h, --help display help for command
177
-
188
+ -p, --port <number> Port to run the server on (default: "8080")
189
+ -b, --base-path <string> Base public path for the RedisSMQ Web UI SPA (default: "/")
190
+ -t, --api-proxy-target <string> Proxy target for API (/api, /docs, /assets). Example: http://127.0.0.1:6000
191
+ -c, --redis-client <ioredis|redis> Redis client. Valid options are: ioredis, redis. (default: "ioredis")
192
+ -r, --redis-host <string> Redis server host (default: "127.0.0.1")
193
+ -o, --redis-port <number> Redis server port (default: "6379")
194
+ -d, --redis-db <number> Redis database number (default: "0")
195
+ -e, --enable-log <0|1> Enable console logging. Valid options are: 0, 1 (default: "0")
196
+ -v, --log-level <0|1|2|3> Log level. Numbers: 0=DEBUG, 1=INFO, 2=WARN, 3=ERROR (default: "1")
197
+ -h, --help display help for command
178
198
  ```
179
199
 
180
200
  ## Deploying behind a reverse proxy
@@ -1,22 +1,56 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var _a, _b, _c;
3
4
  Object.defineProperty(exports, "__esModule", { value: true });
4
5
  const commander_1 = require("commander");
5
6
  const index_js_1 = require("../src/index.js");
6
7
  const parse_config_js_1 = require("../src/config/parse-config.js");
8
+ const redis_smq_common_1 = require("redis-smq-common");
9
+ const redis_smq_1 = require("redis-smq");
10
+ const defaultLogLevel = typeof redis_smq_1.defaultConfig.logger.options.logLevel === 'number'
11
+ ? redis_smq_1.defaultConfig.logger.options.logLevel
12
+ : redis_smq_common_1.EConsoleLoggerLevel[redis_smq_1.defaultConfig.logger.options.logLevel];
7
13
  const program = new commander_1.Command();
8
14
  program
9
15
  .name('redis-smq-web-server')
10
16
  .description('Web server for RedisSMQ Web UI');
11
17
  program
12
- .option('-p, --port <port>', 'Port to run the server on', String(parse_config_js_1.defaultConfig.port))
13
- .option('-B, --base-path <basePath>', 'base public path for the RedisSMQ Web UI SPA', String(parse_config_js_1.defaultConfig.basePath))
14
- .option('-H, --redis-host <redisHost>', 'Redis server host', parse_config_js_1.defaultConfig.redisHost)
15
- .option('-P, --redis-port <redisPort>', 'Redis server port', String(parse_config_js_1.defaultConfig.redisPort))
16
- .option('-D, --redis-db <redisDB>', 'Redis database number', String(parse_config_js_1.defaultConfig.redisDB))
17
- .option('-x, --api-proxy-target <url>', 'Proxy target for API (/api, /docs, /assets). Example: http://127.0.0.1:7210', parse_config_js_1.defaultConfig.apiProxyTarget);
18
+ .option('-p, --port <number>', 'Port to run the server on', String((_a = parse_config_js_1.defaultConfig.webServer) === null || _a === void 0 ? void 0 : _a.port))
19
+ .option('-b, --base-path <string>', 'Base public path for the RedisSMQ Web UI SPA', (_b = parse_config_js_1.defaultConfig.webServer) === null || _b === void 0 ? void 0 : _b.basePath)
20
+ .option('-t, --api-proxy-target <string>', 'Proxy target for API (/api, /docs, /assets). Example: http://127.0.0.1:6000', (_c = parse_config_js_1.defaultConfig.webServer) === null || _c === void 0 ? void 0 : _c.apiProxyTarget)
21
+ .option('-c, --redis-client <ioredis|redis>', 'Redis client. Valid options are: ioredis, redis.', redis_smq_1.defaultConfig.redis.client)
22
+ .option('-r, --redis-host <string>', 'Redis server host', redis_smq_1.defaultConfig.redis.options.host)
23
+ .option('-o, --redis-port <number>', 'Redis server port', String(redis_smq_1.defaultConfig.redis.options.port))
24
+ .option('-d, --redis-db <number>', 'Redis database number', String(redis_smq_1.defaultConfig.redis.options.db))
25
+ .option('-e, --enable-log <0|1>', 'Enable console logging. Valid options are: 0, 1', String(Number(redis_smq_1.defaultConfig.logger.enabled)))
26
+ .option('-v, --log-level <0|1|2|3>', `Log level. Numbers: ${redis_smq_common_1.EConsoleLoggerLevel.DEBUG}=DEBUG, ${redis_smq_common_1.EConsoleLoggerLevel.INFO}=INFO, ${redis_smq_common_1.EConsoleLoggerLevel.WARN}=WARN, ${redis_smq_common_1.EConsoleLoggerLevel.ERROR}=ERROR`, String(defaultLogLevel));
18
27
  program.parse();
19
28
  const options = program.opts();
20
- const server = new index_js_1.RedisSMQWebServer(options);
29
+ const config = {
30
+ webServer: {
31
+ port: Number(options.port),
32
+ basePath: options.basePath,
33
+ apiProxyTarget: options.apiProxyTarget,
34
+ },
35
+ apiServer: {
36
+ port: Number(options.port),
37
+ basePath: options.basePath,
38
+ },
39
+ redis: {
40
+ client: options.redisClient,
41
+ options: {
42
+ host: options.redisHost,
43
+ port: Number(options.redisPort),
44
+ db: Number(options.redisDb),
45
+ },
46
+ },
47
+ logger: {
48
+ enabled: Boolean(Number(options.enableLog)),
49
+ options: {
50
+ logLevel: Number(options.logLevel),
51
+ },
52
+ },
53
+ };
54
+ const server = new index_js_1.RedisSMQWebServer(config);
21
55
  server.run();
22
56
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../bin/cli.ts"],"names":[],"mappings":";;;AAWA,yCAAoC;AACpC,8CAAoD;AACpD,mEAA8D;AAE9D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,sBAAsB,CAAC;KAC5B,WAAW,CAAC,gCAAgC,CAAC,CAAC;AAEjD,OAAO;KACJ,MAAM,CACL,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,CAAC,+BAAa,CAAC,IAAI,CAAC,CAC3B;KACA,MAAM,CACL,4BAA4B,EAC5B,8CAA8C,EAC9C,MAAM,CAAC,+BAAa,CAAC,QAAQ,CAAC,CAC/B;KACA,MAAM,CACL,8BAA8B,EAC9B,mBAAmB,EACnB,+BAAa,CAAC,SAAS,CACxB;KACA,MAAM,CACL,8BAA8B,EAC9B,mBAAmB,EACnB,MAAM,CAAC,+BAAa,CAAC,SAAS,CAAC,CAChC;KACA,MAAM,CACL,0BAA0B,EAC1B,uBAAuB,EACvB,MAAM,CAAC,+BAAa,CAAC,OAAO,CAAC,CAC9B;KACA,MAAM,CACL,8BAA8B,EAC9B,6EAA6E,EAC7E,+BAAa,CAAC,cAAc,CAC7B,CAAC;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,MAAM,MAAM,GAAG,IAAI,4BAAiB,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../bin/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,aAAa,EAAE,wBAO3B,CAAC;AAEF,wBAAgB,WAAW,CACzB,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAC7C,8BAA8B,CA2BhC"}
1
+ {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,aAAa,EAAE,wBAM3B,CAAC;AAMF,wBAAgB,WAAW,CACzB,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAC7C,8BAA8B,CAgBhC"}
@@ -2,37 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultConfig = void 0;
4
4
  exports.parseConfig = parseConfig;
5
- const redis_smq_common_1 = require("redis-smq-common");
5
+ const redis_smq_rest_api_1 = require("redis-smq-rest-api");
6
6
  exports.defaultConfig = {
7
- port: 8080,
8
- basePath: '/',
9
- redisPort: 6379,
10
- redisHost: '127.0.0.1',
11
- redisDB: 1,
12
- apiProxyTarget: undefined,
7
+ webServer: {
8
+ port: 8080,
9
+ basePath: '/',
10
+ apiProxyTarget: undefined,
11
+ },
13
12
  };
14
13
  function parseConfig(config = {}) {
15
- const cfg = Object.assign(Object.assign({}, exports.defaultConfig), config);
16
- const webServerCfg = {
17
- port: cfg.port,
18
- basePath: cfg.basePath,
19
- apiProxyTarget: cfg.apiProxyTarget,
20
- };
21
- return {
22
- redis: {
23
- client: redis_smq_common_1.ERedisConfigClient.IOREDIS,
24
- options: {
25
- port: cfg.redisPort,
26
- host: cfg.redisHost,
27
- db: cfg.redisDB,
28
- showFriendlyErrorStack: true,
29
- },
30
- },
31
- webServer: webServerCfg,
32
- apiServer: {
33
- port: cfg.port,
34
- basePath: cfg.basePath,
35
- },
36
- };
14
+ const restApiParsedConfig = (0, redis_smq_rest_api_1.parseConfig)(config);
15
+ const webServer = Object.assign(Object.assign({}, exports.defaultConfig.webServer), config.webServer);
16
+ return Object.assign(Object.assign({}, restApiParsedConfig), { webServer: {
17
+ port: Number(webServer.port),
18
+ basePath: String(webServer.basePath),
19
+ apiProxyTarget: webServer.apiProxyTarget
20
+ ? String(webServer.apiProxyTarget)
21
+ : undefined,
22
+ } });
37
23
  }
38
24
  //# sourceMappingURL=parse-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-config.js","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":";;;AAwBA,kCA6BC;AAxCD,uDAAsD;AAEzC,QAAA,aAAa,GAA6B;IACrD,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,CAAC;IACV,cAAc,EAAE,SAAS;CAC1B,CAAC;AAEF,SAAgB,WAAW,CACzB,SAA4C,EAAE;IAE9C,MAAM,GAAG,mCACJ,qBAAa,GACb,MAAM,CACV,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,cAAc,EAAE,GAAG,CAAC,cAAc;KACnC,CAAC;IACF,OAAO;QACL,KAAK,EAAE;YACL,MAAM,EAAE,qCAAkB,CAAC,OAAO;YAClC,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG,CAAC,SAAS;gBACnB,IAAI,EAAE,GAAG,CAAC,SAAS;gBACnB,EAAE,EAAE,GAAG,CAAC,OAAO;gBACf,sBAAsB,EAAE,IAAI;aAC7B;SACF;QACD,SAAS,EAAE,YAAY;QAEvB,SAAS,EAAE;YACT,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parse-config.js","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":";;;AA2BA,kCAkBC;AAhCD,2DAAuE;AAE1D,QAAA,aAAa,GAA6B;IACrD,SAAS,EAAE;QACT,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,GAAG;QACb,cAAc,EAAE,SAAS;KAC1B;CACF,CAAC;AAMF,SAAgB,WAAW,CACzB,SAA4C,EAAE;IAE9C,MAAM,mBAAmB,GAAG,IAAA,gCAAkB,EAAC,MAAM,CAAC,CAAC;IACvD,MAAM,SAAS,mCACV,qBAAa,CAAC,SAAS,GACvB,MAAM,CAAC,SAAS,CACpB,CAAC;IACF,uCACK,mBAAmB,KACtB,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;YACpC,cAAc,EAAE,SAAS,CAAC,cAAc;gBACtC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;gBAClC,CAAC,CAAC,SAAS;SACd,IACD;AACJ,CAAC"}
@@ -1,12 +1,23 @@
1
- import { IRedisSMQRestApiParsedConfig } from 'redis-smq-rest-api';
2
- export interface IRedisSMQWebServerConfig {
3
- port: number;
1
+ import { IRedisSMQRestApiConfig, IRedisSMQRestApiParsedConfig } from 'redis-smq-rest-api';
2
+ import { EConsoleLoggerLevel, ERedisConfigClient } from 'redis-smq-common';
3
+ export interface IRedisSMQWebServerCliOptions {
4
+ port: string;
4
5
  basePath: string;
5
- redisPort: number;
6
+ redisClient: ERedisConfigClient;
7
+ redisPort: string;
6
8
  redisHost: string;
7
- redisDB: number;
9
+ redisDb: string;
10
+ enableLog: string;
11
+ logLevel: EConsoleLoggerLevel;
8
12
  apiProxyTarget?: string;
9
13
  }
14
+ export interface IRedisSMQWebServerConfig extends IRedisSMQRestApiConfig {
15
+ webServer?: {
16
+ port?: number;
17
+ basePath?: string;
18
+ apiProxyTarget?: string;
19
+ };
20
+ }
10
21
  export interface IRedisSMQWebServerParsedConfig extends IRedisSMQRestApiParsedConfig {
11
22
  webServer: {
12
23
  port: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/config/types/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAKhB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,8BACf,SAAQ,4BAA4B;IACpC,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QAKjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/config/types/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAKlB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,8BACf,SAAQ,4BAA4B;IACpC,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QAKjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"}
@@ -1,4 +1,5 @@
1
1
  import { IRedisSMQWebServerConfig } from './config/types/index.js';
2
+ import { ILogger } from 'redis-smq-common';
2
3
  export declare class RedisSMQWebServer {
3
4
  private readonly app;
4
5
  private readonly config;
@@ -8,7 +9,8 @@ export declare class RedisSMQWebServer {
8
9
  private restApi;
9
10
  private bootstrapped;
10
11
  private httpServer;
11
- constructor(config?: Partial<IRedisSMQWebServerConfig>);
12
+ protected logger: ILogger;
13
+ constructor(config?: IRedisSMQWebServerConfig);
12
14
  private setupMiddleware;
13
15
  private setupApi;
14
16
  private setupRoutes;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,wBAAwB,EAEzB,MAAM,yBAAyB,CAAC;AAMjC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAA4B;gBAElC,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAM;YAW5C,eAAe;YAsBf,QAAQ;YAuBR,WAAW;YAoCX,SAAS;IAQV,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,wBAAwB,EAEzB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAgB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAA4B;IAC9C,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEd,MAAM,GAAE,wBAA6B;YAYnC,eAAe;YAsBf,QAAQ;YAuBR,WAAW;YAoCX,SAAS;IAQV,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBvC"}
@@ -20,6 +20,7 @@ const redis_smq_web_ui_1 = require("redis-smq-web-ui");
20
20
  const redis_smq_rest_api_1 = require("redis-smq-rest-api");
21
21
  const parse_config_js_1 = require("./config/parse-config.js");
22
22
  const http_proxy_middleware_1 = require("http-proxy-middleware");
23
+ const redis_smq_common_1 = require("redis-smq-common");
23
24
  class RedisSMQWebServer {
24
25
  constructor(config = {}) {
25
26
  var _a;
@@ -35,6 +36,7 @@ class RedisSMQWebServer {
35
36
  };
36
37
  this.apiProxyTarget = (_a = this.config.webServer.apiProxyTarget) !== null && _a !== void 0 ? _a : null;
37
38
  this.webUIPath = (0, redis_smq_web_ui_1.getDistPath)();
39
+ this.logger = (0, redis_smq_common_1.createLogger)(this.config.logger, 'RedisSMQWebServer');
38
40
  }
39
41
  setupMiddleware() {
40
42
  return __awaiter(this, void 0, void 0, function* () {
@@ -80,7 +82,7 @@ class RedisSMQWebServer {
80
82
  const indexPath = path_1.default.join(this.webUIPath, 'index.html');
81
83
  fs_1.default.readFile(indexPath, 'utf8', (err, data) => {
82
84
  if (err) {
83
- console.error('Error reading index.html:', err);
85
+ this.logger.error('Error reading index.html:', err);
84
86
  return res.status(500).send('Error loading application');
85
87
  }
86
88
  const configScript = `<script>window.configs = ${JSON.stringify(this.webUIConfig)};</script>`;
@@ -104,14 +106,14 @@ class RedisSMQWebServer {
104
106
  yield this.bootstrap();
105
107
  const port = this.config.webServer.port;
106
108
  this.httpServer = this.app.listen(port, () => {
107
- console.log(`Redis SMQ Web Server running on port ${port}`);
109
+ this.logger.info(`Redis SMQ Web Server running on port ${port}`);
108
110
  if (this.apiProxyTarget) {
109
- console.log(`Proxying API requests to ${this.apiProxyTarget}`);
111
+ this.logger.info(`Proxying API requests to ${this.apiProxyTarget}`);
110
112
  }
111
113
  else {
112
- console.log(`Embedded Redis SMQ REST API is mounted`);
114
+ this.logger.info(`Embedded Redis SMQ REST API is mounted`);
113
115
  }
114
- console.log(`Serving static assets from: ${this.webUIPath}`);
116
+ this.logger.info(`Serving static assets from: ${this.webUIPath}`);
115
117
  });
116
118
  });
117
119
  }
@@ -127,7 +129,7 @@ class RedisSMQWebServer {
127
129
  });
128
130
  });
129
131
  this.httpServer = null;
130
- console.log('Redis SMQ Web Server has been shutdown.');
132
+ this.logger.info('Redis SMQ Web Server has been shutdown.');
131
133
  }
132
134
  if (this.restApi) {
133
135
  yield this.restApi.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,52 @@
2
2
  import { Command } from 'commander';
3
3
  import { RedisSMQWebServer } from '../src/index.js';
4
4
  import { defaultConfig } from '../src/config/parse-config.js';
5
+ import { EConsoleLoggerLevel } from 'redis-smq-common';
6
+ import { defaultConfig as defaultRedisSMQConfig } from 'redis-smq';
7
+ const defaultLogLevel = typeof defaultRedisSMQConfig.logger.options.logLevel === 'number'
8
+ ? defaultRedisSMQConfig.logger.options.logLevel
9
+ : EConsoleLoggerLevel[defaultRedisSMQConfig.logger.options.logLevel];
5
10
  const program = new Command();
6
11
  program
7
12
  .name('redis-smq-web-server')
8
13
  .description('Web server for RedisSMQ Web UI');
9
14
  program
10
- .option('-p, --port <port>', 'Port to run the server on', String(defaultConfig.port))
11
- .option('-B, --base-path <basePath>', 'base public path for the RedisSMQ Web UI SPA', String(defaultConfig.basePath))
12
- .option('-H, --redis-host <redisHost>', 'Redis server host', defaultConfig.redisHost)
13
- .option('-P, --redis-port <redisPort>', 'Redis server port', String(defaultConfig.redisPort))
14
- .option('-D, --redis-db <redisDB>', 'Redis database number', String(defaultConfig.redisDB))
15
- .option('-x, --api-proxy-target <url>', 'Proxy target for API (/api, /docs, /assets). Example: http://127.0.0.1:7210', defaultConfig.apiProxyTarget);
15
+ .option('-p, --port <number>', 'Port to run the server on', String(defaultConfig.webServer?.port))
16
+ .option('-b, --base-path <string>', 'Base public path for the RedisSMQ Web UI SPA', defaultConfig.webServer?.basePath)
17
+ .option('-t, --api-proxy-target <string>', 'Proxy target for API (/api, /docs, /assets). Example: http://127.0.0.1:6000', defaultConfig.webServer?.apiProxyTarget)
18
+ .option('-c, --redis-client <ioredis|redis>', 'Redis client. Valid options are: ioredis, redis.', defaultRedisSMQConfig.redis.client)
19
+ .option('-r, --redis-host <string>', 'Redis server host', defaultRedisSMQConfig.redis.options.host)
20
+ .option('-o, --redis-port <number>', 'Redis server port', String(defaultRedisSMQConfig.redis.options.port))
21
+ .option('-d, --redis-db <number>', 'Redis database number', String(defaultRedisSMQConfig.redis.options.db))
22
+ .option('-e, --enable-log <0|1>', 'Enable console logging. Valid options are: 0, 1', String(Number(defaultRedisSMQConfig.logger.enabled)))
23
+ .option('-v, --log-level <0|1|2|3>', `Log level. Numbers: ${EConsoleLoggerLevel.DEBUG}=DEBUG, ${EConsoleLoggerLevel.INFO}=INFO, ${EConsoleLoggerLevel.WARN}=WARN, ${EConsoleLoggerLevel.ERROR}=ERROR`, String(defaultLogLevel));
16
24
  program.parse();
17
25
  const options = program.opts();
18
- const server = new RedisSMQWebServer(options);
26
+ const config = {
27
+ webServer: {
28
+ port: Number(options.port),
29
+ basePath: options.basePath,
30
+ apiProxyTarget: options.apiProxyTarget,
31
+ },
32
+ apiServer: {
33
+ port: Number(options.port),
34
+ basePath: options.basePath,
35
+ },
36
+ redis: {
37
+ client: options.redisClient,
38
+ options: {
39
+ host: options.redisHost,
40
+ port: Number(options.redisPort),
41
+ db: Number(options.redisDb),
42
+ },
43
+ },
44
+ logger: {
45
+ enabled: Boolean(Number(options.enableLog)),
46
+ options: {
47
+ logLevel: Number(options.logLevel),
48
+ },
49
+ },
50
+ };
51
+ const server = new RedisSMQWebServer(config);
19
52
  server.run();
20
53
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../bin/cli.ts"],"names":[],"mappings":";AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,sBAAsB,CAAC;KAC5B,WAAW,CAAC,gCAAgC,CAAC,CAAC;AAEjD,OAAO;KACJ,MAAM,CACL,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B;KACA,MAAM,CACL,4BAA4B,EAC5B,8CAA8C,EAC9C,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAC/B;KACA,MAAM,CACL,8BAA8B,EAC9B,mBAAmB,EACnB,aAAa,CAAC,SAAS,CACxB;KACA,MAAM,CACL,8BAA8B,EAC9B,mBAAmB,EACnB,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAChC;KACA,MAAM,CACL,0BAA0B,EAC1B,uBAAuB,EACvB,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAC9B;KACA,MAAM,CACL,8BAA8B,EAC9B,6EAA6E,EAC7E,aAAa,CAAC,cAAc,CAC7B,CAAC;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../bin/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,aAAa,EAAE,wBAO3B,CAAC;AAEF,wBAAgB,WAAW,CACzB,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAC7C,8BAA8B,CA2BhC"}
1
+ {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,aAAa,EAAE,wBAM3B,CAAC;AAMF,wBAAgB,WAAW,CACzB,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAC7C,8BAA8B,CAgBhC"}
@@ -1,36 +1,25 @@
1
- import { ERedisConfigClient } from 'redis-smq-common';
1
+ import { parseConfig as parseRestApiConfig } from 'redis-smq-rest-api';
2
2
  export const defaultConfig = {
3
- port: 8080,
4
- basePath: '/',
5
- redisPort: 6379,
6
- redisHost: '127.0.0.1',
7
- redisDB: 1,
8
- apiProxyTarget: undefined,
3
+ webServer: {
4
+ port: 8080,
5
+ basePath: '/',
6
+ apiProxyTarget: undefined,
7
+ },
9
8
  };
10
9
  export function parseConfig(config = {}) {
11
- const cfg = {
12
- ...defaultConfig,
13
- ...config,
14
- };
15
- const webServerCfg = {
16
- port: cfg.port,
17
- basePath: cfg.basePath,
18
- apiProxyTarget: cfg.apiProxyTarget,
10
+ const restApiParsedConfig = parseRestApiConfig(config);
11
+ const webServer = {
12
+ ...defaultConfig.webServer,
13
+ ...config.webServer,
19
14
  };
20
15
  return {
21
- redis: {
22
- client: ERedisConfigClient.IOREDIS,
23
- options: {
24
- port: cfg.redisPort,
25
- host: cfg.redisHost,
26
- db: cfg.redisDB,
27
- showFriendlyErrorStack: true,
28
- },
29
- },
30
- webServer: webServerCfg,
31
- apiServer: {
32
- port: cfg.port,
33
- basePath: cfg.basePath,
16
+ ...restApiParsedConfig,
17
+ webServer: {
18
+ port: Number(webServer.port),
19
+ basePath: String(webServer.basePath),
20
+ apiProxyTarget: webServer.apiProxyTarget
21
+ ? String(webServer.apiProxyTarget)
22
+ : undefined,
34
23
  },
35
24
  };
36
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-config.js","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAA6B;IACrD,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,CAAC;IACV,cAAc,EAAE,SAAS;CAC1B,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,SAA4C,EAAE;IAE9C,MAAM,GAAG,GAA6B;QACpC,GAAG,aAAa;QAChB,GAAG,MAAM;KACV,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,cAAc,EAAE,GAAG,CAAC,cAAc;KACnC,CAAC;IACF,OAAO;QACL,KAAK,EAAE;YACL,MAAM,EAAE,kBAAkB,CAAC,OAAO;YAClC,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG,CAAC,SAAS;gBACnB,IAAI,EAAE,GAAG,CAAC,SAAS;gBACnB,EAAE,EAAE,GAAG,CAAC,OAAO;gBACf,sBAAsB,EAAE,IAAI;aAC7B;SACF;QACD,SAAS,EAAE,YAAY;QAEvB,SAAS,EAAE;YACT,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parse-config.js","sourceRoot":"","sources":["../../../../src/config/parse-config.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,MAAM,aAAa,GAA6B;IACrD,SAAS,EAAE;QACT,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,GAAG;QACb,cAAc,EAAE,SAAS;KAC1B;CACF,CAAC;AAMF,MAAM,UAAU,WAAW,CACzB,SAA4C,EAAE;IAE9C,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG;QAChB,GAAG,aAAa,CAAC,SAAS;QAC1B,GAAG,MAAM,CAAC,SAAS;KACpB,CAAC;IACF,OAAO;QACL,GAAG,mBAAmB;QACtB,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;YACpC,cAAc,EAAE,SAAS,CAAC,cAAc;gBACtC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;gBAClC,CAAC,CAAC,SAAS;SACd;KACF,CAAC;AACJ,CAAC"}
@@ -1,12 +1,23 @@
1
- import { IRedisSMQRestApiParsedConfig } from 'redis-smq-rest-api';
2
- export interface IRedisSMQWebServerConfig {
3
- port: number;
1
+ import { IRedisSMQRestApiConfig, IRedisSMQRestApiParsedConfig } from 'redis-smq-rest-api';
2
+ import { EConsoleLoggerLevel, ERedisConfigClient } from 'redis-smq-common';
3
+ export interface IRedisSMQWebServerCliOptions {
4
+ port: string;
4
5
  basePath: string;
5
- redisPort: number;
6
+ redisClient: ERedisConfigClient;
7
+ redisPort: string;
6
8
  redisHost: string;
7
- redisDB: number;
9
+ redisDb: string;
10
+ enableLog: string;
11
+ logLevel: EConsoleLoggerLevel;
8
12
  apiProxyTarget?: string;
9
13
  }
14
+ export interface IRedisSMQWebServerConfig extends IRedisSMQRestApiConfig {
15
+ webServer?: {
16
+ port?: number;
17
+ basePath?: string;
18
+ apiProxyTarget?: string;
19
+ };
20
+ }
10
21
  export interface IRedisSMQWebServerParsedConfig extends IRedisSMQRestApiParsedConfig {
11
22
  webServer: {
12
23
  port: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/config/types/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAKhB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,8BACf,SAAQ,4BAA4B;IACpC,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QAKjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/config/types/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAKlB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,8BACf,SAAQ,4BAA4B;IACpC,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QAKjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"}
@@ -1,4 +1,5 @@
1
1
  import { IRedisSMQWebServerConfig } from './config/types/index.js';
2
+ import { ILogger } from 'redis-smq-common';
2
3
  export declare class RedisSMQWebServer {
3
4
  private readonly app;
4
5
  private readonly config;
@@ -8,7 +9,8 @@ export declare class RedisSMQWebServer {
8
9
  private restApi;
9
10
  private bootstrapped;
10
11
  private httpServer;
11
- constructor(config?: Partial<IRedisSMQWebServerConfig>);
12
+ protected logger: ILogger;
13
+ constructor(config?: IRedisSMQWebServerConfig);
12
14
  private setupMiddleware;
13
15
  private setupApi;
14
16
  private setupRoutes;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,wBAAwB,EAEzB,MAAM,yBAAyB,CAAC;AAMjC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAA4B;gBAElC,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAM;YAW5C,eAAe;YAsBf,QAAQ;YAuBR,WAAW;YAoCX,SAAS;IAQV,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,wBAAwB,EAEzB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAgB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAA4B;IAC9C,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEd,MAAM,GAAE,wBAA6B;YAYnC,eAAe;YAsBf,QAAQ;YAuBR,WAAW;YAoCX,SAAS;IAQV,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBvC"}
@@ -5,6 +5,7 @@ import { getDistPath } from 'redis-smq-web-ui';
5
5
  import { RedisSMQRestApi } from 'redis-smq-rest-api';
6
6
  import { parseConfig } from './config/parse-config.js';
7
7
  import { createProxyMiddleware } from 'http-proxy-middleware';
8
+ import { createLogger } from 'redis-smq-common';
8
9
  export class RedisSMQWebServer {
9
10
  app = express();
10
11
  config;
@@ -14,6 +15,7 @@ export class RedisSMQWebServer {
14
15
  restApi = null;
15
16
  bootstrapped = false;
16
17
  httpServer = null;
18
+ logger;
17
19
  constructor(config = {}) {
18
20
  this.config = parseConfig(config);
19
21
  this.webUIConfig = {
@@ -22,6 +24,7 @@ export class RedisSMQWebServer {
22
24
  };
23
25
  this.apiProxyTarget = this.config.webServer.apiProxyTarget ?? null;
24
26
  this.webUIPath = getDistPath();
27
+ this.logger = createLogger(this.config.logger, 'RedisSMQWebServer');
25
28
  }
26
29
  async setupMiddleware() {
27
30
  this.app.use(express.static(this.webUIPath, {
@@ -62,7 +65,7 @@ export class RedisSMQWebServer {
62
65
  const indexPath = path.join(this.webUIPath, 'index.html');
63
66
  fs.readFile(indexPath, 'utf8', (err, data) => {
64
67
  if (err) {
65
- console.error('Error reading index.html:', err);
68
+ this.logger.error('Error reading index.html:', err);
66
69
  return res.status(500).send('Error loading application');
67
70
  }
68
71
  const configScript = `<script>window.configs = ${JSON.stringify(this.webUIConfig)};</script>`;
@@ -82,14 +85,14 @@ export class RedisSMQWebServer {
82
85
  await this.bootstrap();
83
86
  const port = this.config.webServer.port;
84
87
  this.httpServer = this.app.listen(port, () => {
85
- console.log(`Redis SMQ Web Server running on port ${port}`);
88
+ this.logger.info(`Redis SMQ Web Server running on port ${port}`);
86
89
  if (this.apiProxyTarget) {
87
- console.log(`Proxying API requests to ${this.apiProxyTarget}`);
90
+ this.logger.info(`Proxying API requests to ${this.apiProxyTarget}`);
88
91
  }
89
92
  else {
90
- console.log(`Embedded Redis SMQ REST API is mounted`);
93
+ this.logger.info(`Embedded Redis SMQ REST API is mounted`);
91
94
  }
92
- console.log(`Serving static assets from: ${this.webUIPath}`);
95
+ this.logger.info(`Serving static assets from: ${this.webUIPath}`);
93
96
  });
94
97
  }
95
98
  async shutdown() {
@@ -102,7 +105,7 @@ export class RedisSMQWebServer {
102
105
  });
103
106
  });
104
107
  this.httpServer = null;
105
- console.log('Redis SMQ Web Server has been shutdown.');
108
+ this.logger.info('Redis SMQ Web Server has been shutdown.');
106
109
  }
107
110
  if (this.restApi) {
108
111
  await this.restApi.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redis-smq-web-server",
3
- "version": "9.0.0-next.2",
3
+ "version": "9.0.0-next.4",
4
4
  "description": "Web server for RedisSMQ Web UI: serves the SPA and hosts or proxies the RedisSMQ REST API.",
5
5
  "author": "Weyoss <weyoss@protonmail.com>",
6
6
  "license": "MIT",
@@ -37,16 +37,26 @@
37
37
  "dependencies": {
38
38
  "commander": "13.1.0",
39
39
  "express": "4.21.2",
40
- "http-proxy-middleware": "3.0.5",
41
- "ioredis": "5.5.0"
40
+ "http-proxy-middleware": "3.0.5"
42
41
  },
43
42
  "devDependencies": {
44
43
  "@types/express": "4.17.23"
45
44
  },
46
45
  "peerDependencies": {
47
- "redis-smq-common": "^9.0.0-next.2",
48
- "redis-smq-rest-api": "^9.0.0-next.2",
49
- "redis-smq-web-ui": "^9.0.0-next.2"
46
+ "@redis/client": "^1.6.0",
47
+ "ioredis": "^5.4.0",
48
+ "redis-smq": "^9.0.0-next.4",
49
+ "redis-smq-common": "^9.0.0-next.4",
50
+ "redis-smq-rest-api": "^9.0.0-next.4",
51
+ "redis-smq-web-ui": "^9.0.0-next.4"
52
+ },
53
+ "peerDependenciesMeta": {
54
+ "@redis/client": {
55
+ "optional": true
56
+ },
57
+ "ioredis": {
58
+ "optional": true
59
+ }
50
60
  },
51
61
  "engineStrict": true,
52
62
  "engines": {