@ruiapp/rapid-core 0.8.13 → 0.8.14

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.
@@ -13,8 +13,8 @@ export interface IRpdServer {
13
13
  registerFacilityFactory(factory: FacilityFactory): any;
14
14
  getFacility<TFacility = any, TOptions = any>(name: string, options?: TOptions): Promise<TFacility>;
15
15
  getDatabaseAccessor(): IDatabaseAccessor;
16
- queryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient) => Promise<any[]>;
17
- tryQueryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient) => Promise<any[]>;
16
+ queryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean) => Promise<any[]>;
17
+ tryQueryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean) => Promise<any[]>;
18
18
  registerMiddleware(middleware: any): void;
19
19
  registerActionHandler(plugin: RapidPlugin, options: IPluginActionHandler): void;
20
20
  getActionHandlerByCode(code: string): ActionHandler | undefined;
package/dist/index.js CHANGED
@@ -4649,21 +4649,23 @@ class RapidServer {
4649
4649
  }
4650
4650
  return await factory.createFacility(this, options);
4651
4651
  }
4652
- async queryDatabaseObject(sql, params, client) {
4652
+ async queryDatabaseObject(sql, params, client, dropErrorLog) {
4653
4653
  try {
4654
4654
  return await this.#databaseAccessor.queryDatabaseObject(sql, params, client);
4655
4655
  }
4656
4656
  catch (err) {
4657
- this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
4657
+ if (!dropErrorLog) {
4658
+ this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
4659
+ }
4658
4660
  throw err;
4659
4661
  }
4660
4662
  }
4661
- async tryQueryDatabaseObject(sql, params, client, silent) {
4663
+ async tryQueryDatabaseObject(sql, params, client, dropErrorLog) {
4662
4664
  try {
4663
4665
  return await this.queryDatabaseObject(sql, params, client);
4664
4666
  }
4665
4667
  catch (err) {
4666
- if (!silent) {
4668
+ if (!dropErrorLog) {
4667
4669
  this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
4668
4670
  }
4669
4671
  }
@@ -5463,7 +5465,15 @@ class MetaService {
5463
5465
  logger.debug(`Creating indexes of table ${queryBuilder.quoteTable(model)}`);
5464
5466
  for (const index of model.indexes) {
5465
5467
  const sqlCreateIndex = generateTableIndexDDL(queryBuilder, server, model, index);
5466
- await server.tryQueryDatabaseObject(sqlCreateIndex, []);
5468
+ try {
5469
+ await server.queryDatabaseObject(sqlCreateIndex, [], null);
5470
+ }
5471
+ catch (err) {
5472
+ const logger = this.#server.getLogger();
5473
+ if (err.message.includes("already exists")) {
5474
+ logger.warn("Failed to create index.", { errorMessage: err.message, sqlCreateIndex });
5475
+ }
5476
+ }
5467
5477
  }
5468
5478
  }
5469
5479
  }
package/dist/server.d.ts CHANGED
@@ -52,8 +52,8 @@ export declare class RapidServer implements IRpdServer {
52
52
  configureApplication(): Promise<void>;
53
53
  registerFacilityFactory(factory: FacilityFactory): void;
54
54
  getFacility<TFacility = any, TOptions = any>(name: string, options?: TOptions, nullIfUnknownFacility?: boolean): Promise<TFacility>;
55
- queryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient): Promise<any[]>;
56
- tryQueryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, silent?: boolean): Promise<any[]>;
55
+ queryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean): Promise<any[]>;
56
+ tryQueryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean): Promise<any[]>;
57
57
  get middlewares(): any[];
58
58
  handleRequest(request: Request, next: Next): Promise<Response>;
59
59
  beforeRunRouteActions(handlerContext: ActionHandlerContext): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruiapp/rapid-core",
3
- "version": "0.8.13",
3
+ "version": "0.8.14",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,8 +34,8 @@ export interface IRpdServer {
34
34
  getFacility<TFacility = any, TOptions = any>(name: string, options?: TOptions): Promise<TFacility>;
35
35
 
36
36
  getDatabaseAccessor(): IDatabaseAccessor;
37
- queryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient) => Promise<any[]>;
38
- tryQueryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient) => Promise<any[]>;
37
+ queryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean) => Promise<any[]>;
38
+ tryQueryDatabaseObject: (sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean) => Promise<any[]>;
39
39
  registerMiddleware(middleware: any): void;
40
40
  registerActionHandler(plugin: RapidPlugin, options: IPluginActionHandler): void;
41
41
  getActionHandlerByCode(code: string): ActionHandler | undefined;
@@ -360,7 +360,14 @@ export default class MetaService {
360
360
  logger.debug(`Creating indexes of table ${queryBuilder.quoteTable(model)}`);
361
361
  for (const index of model.indexes) {
362
362
  const sqlCreateIndex = generateTableIndexDDL(queryBuilder, server, model, index);
363
- await server.tryQueryDatabaseObject(sqlCreateIndex, []);
363
+ try {
364
+ await server.queryDatabaseObject(sqlCreateIndex, [], null);
365
+ } catch (err: any) {
366
+ const logger = this.#server.getLogger();
367
+ if ((err as Error).message.includes("already exists")) {
368
+ logger.warn("Failed to create index.", { errorMessage: err.message, sqlCreateIndex });
369
+ }
370
+ }
364
371
  }
365
372
  }
366
373
  }
package/src/server.ts CHANGED
@@ -410,20 +410,22 @@ export class RapidServer implements IRpdServer {
410
410
  return await factory.createFacility(this, options);
411
411
  }
412
412
 
413
- async queryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient): Promise<any[]> {
413
+ async queryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean): Promise<any[]> {
414
414
  try {
415
415
  return await this.#databaseAccessor.queryDatabaseObject(sql, params, client);
416
416
  } catch (err) {
417
- this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
417
+ if (!dropErrorLog) {
418
+ this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
419
+ }
418
420
  throw err;
419
421
  }
420
422
  }
421
423
 
422
- async tryQueryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, silent?: boolean): Promise<any[]> {
424
+ async tryQueryDatabaseObject(sql: string, params?: unknown[] | Record<string, unknown>, client?: IDatabaseClient, dropErrorLog?: boolean): Promise<any[]> {
423
425
  try {
424
426
  return await this.queryDatabaseObject(sql, params, client);
425
427
  } catch (err) {
426
- if (!silent) {
428
+ if (!dropErrorLog) {
427
429
  this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
428
430
  }
429
431
  }