@ruiapp/rapid-core 0.8.12 → 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,25 @@ 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) {
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
- this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
4668
+ if (!dropErrorLog) {
4669
+ this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
4670
+ }
4667
4671
  }
4668
4672
  return [];
4669
4673
  }
@@ -5461,7 +5465,15 @@ class MetaService {
5461
5465
  logger.debug(`Creating indexes of table ${queryBuilder.quoteTable(model)}`);
5462
5466
  for (const index of model.indexes) {
5463
5467
  const sqlCreateIndex = generateTableIndexDDL(queryBuilder, server, model, index);
5464
- 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
+ }
5465
5477
  }
5466
5478
  }
5467
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): 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.12",
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,24 @@ 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): 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
- this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
428
+ if (!dropErrorLog) {
429
+ this.#logger.error("Failed to query database object.", { errorMessage: err.message, sql, params });
430
+ }
427
431
  }
428
432
 
429
433
  return [];