@node-c/data-clickhouse 1.0.0-beta0 → 1.0.0-beta2

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.
@@ -24,7 +24,7 @@ class ClickHouseConnectionModule {
24
24
  providers: [
25
25
  {
26
26
  provide: clientName,
27
- useFactory: (configProvider) => __awaiter(this, void 0, void 0, function* () {
27
+ useFactory: (configProvider, logger) => __awaiter(this, void 0, void 0, function* () {
28
28
  const dataConfig = configProvider.config.data;
29
29
  const { application, database, failOnConnectionError = true, host, password, port, protocol, requestTimeout, useHostParam, user } = dataConfig[dataModuleName];
30
30
  const connectionOptions = {
@@ -47,21 +47,23 @@ class ClickHouseConnectionModule {
47
47
  connectionOptions.url = url;
48
48
  }
49
49
  try {
50
+ logger.info(`[ClickHouseConnectionModule][${dataModuleName}]: Connecting to ClickHouse...`);
50
51
  client = (0, client_1.createClient)(connectionOptions);
51
52
  const pingResult = yield client.ping({ select: true });
52
53
  if (!pingResult.success) {
53
54
  throw new core_1.ApplicationError(JSON.stringify(pingResult));
54
55
  }
56
+ logger.info(`[ClickHouseConnectionModule][${dataModuleName}]: Connected to ClickHouse successfully.`);
55
57
  }
56
58
  catch (err) {
57
- console.error(`[ClickHouseConnectionModule][${dataModuleName}]: Error connecting to ClickHouse:`, err);
59
+ logger.error(`[ClickHouseConnectionModule][${dataModuleName}]: Error connecting to ClickHouse:`, err);
58
60
  if (failOnConnectionError) {
59
61
  throw err;
60
62
  }
61
63
  }
62
64
  return client;
63
65
  }),
64
- inject: [core_1.ConfigProviderService]
66
+ inject: [core_1.ConfigProviderService, core_1.LoggerService]
65
67
  }
66
68
  ],
67
69
  exports: [clientName]
@@ -1 +1 @@
1
- {"version":3,"file":"clickhouse.connection.module.js","sourceRoot":"","sources":["../../src/connectionModule/clickhouse.connection.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAoE;AAIpE,uCAAyF;AAIzF,uDAAkD;AAElD,MAAa,0BAA0B;IACrC,MAAM,CAAC,QAAQ,CAAC,OAA0C;QACxD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QACnC,MAAM,UAAU,GAAG,GAAG,uBAAS,CAAC,wBAAwB,GAAG,cAAc,EAAE,CAAC;QAC5E,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,0BAA0B;YAClC,OAAO,EAAE,EAAE;YACX,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,UAAU;oBACnB,UAAU,EAAE,CAAO,cAAqC,EAAE,EAAE;wBAC1D,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC9C,MAAM,EACJ,WAAW,EACX,QAAQ,EACR,qBAAqB,GAAG,IAAI,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,IAAI,EACL,GAAG,UAAU,CAAC,cAAyC,CAAqB,CAAC;wBAC9E,MAAM,iBAAiB,GAAsC;4BAC3D,QAAQ;4BACR,QAAQ;4BACR,QAAQ,EAAE,IAAI;yBACf,CAAC;wBACF,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;wBACtD,IAAI,MAAwB,CAAC;wBAC7B,IAAI,WAAW,EAAE,CAAC;4BAChB,iBAAiB,CAAC,WAAW,GAAG,WAAW,CAAC;wBAC9C,CAAC;wBACD,IAAI,cAAc,EAAE,CAAC;4BACnB,iBAAiB,CAAC,eAAe,GAAG,cAAc,CAAC;wBACrD,CAAC;wBACD,IAAI,YAAY,EAAE,CAAC;4BACjB,iBAAiB,CAAC,IAAI,GAAG,GAAG,CAAC;wBAC/B,CAAC;6BAAM,CAAC;4BACN,iBAAiB,CAAC,GAAG,GAAG,GAAG,CAAC;wBAC9B,CAAC;wBACD,IAAI,CAAC;4BACH,MAAM,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;4BACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;4BACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gCACxB,MAAM,IAAI,uBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;4BACzD,CAAC;wBACH,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,cAAc,oCAAoC,EAAE,GAAG,CAAC,CAAC;4BACvG,IAAI,qBAAqB,EAAE,CAAC;gCAC1B,MAAM,GAAG,CAAC;4BACZ,CAAC;wBACH,CAAC;wBACD,OAAO,MAAO,CAAC;oBACjB,CAAC,CAAA;oBACD,MAAM,EAAE,CAAC,4BAAqB,CAAC;iBAChC;aACF;YACD,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB,CAAC;IACJ,CAAC;CACF;AA/DD,gEA+DC"}
1
+ {"version":3,"file":"clickhouse.connection.module.js","sourceRoot":"","sources":["../../src/connectionModule/clickhouse.connection.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAoE;AAIpE,uCAAwG;AAIxG,uDAAkD;AAElD,MAAa,0BAA0B;IACrC,MAAM,CAAC,QAAQ,CAAC,OAA0C;QACxD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QACnC,MAAM,UAAU,GAAG,GAAG,uBAAS,CAAC,wBAAwB,GAAG,cAAc,EAAE,CAAC;QAC5E,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,0BAA0B;YAClC,OAAO,EAAE,EAAE;YACX,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,UAAU;oBACnB,UAAU,EAAE,CAAO,cAAqC,EAAE,MAAqB,EAAE,EAAE;wBACjF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC9C,MAAM,EACJ,WAAW,EACX,QAAQ,EACR,qBAAqB,GAAG,IAAI,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,IAAI,EACL,GAAG,UAAU,CAAC,cAAyC,CAAqB,CAAC;wBAC9E,MAAM,iBAAiB,GAAsC;4BAC3D,QAAQ;4BACR,QAAQ;4BACR,QAAQ,EAAE,IAAI;yBACf,CAAC;wBACF,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;wBACtD,IAAI,MAAwB,CAAC;wBAC7B,IAAI,WAAW,EAAE,CAAC;4BAChB,iBAAiB,CAAC,WAAW,GAAG,WAAW,CAAC;wBAC9C,CAAC;wBACD,IAAI,cAAc,EAAE,CAAC;4BACnB,iBAAiB,CAAC,eAAe,GAAG,cAAc,CAAC;wBACrD,CAAC;wBACD,IAAI,YAAY,EAAE,CAAC;4BACjB,iBAAiB,CAAC,IAAI,GAAG,GAAG,CAAC;wBAC/B,CAAC;6BAAM,CAAC;4BACN,iBAAiB,CAAC,GAAG,GAAG,GAAG,CAAC;wBAC9B,CAAC;wBACD,IAAI,CAAC;4BACH,MAAM,CAAC,IAAI,CAAC,gCAAgC,cAAc,gCAAgC,CAAC,CAAC;4BAC5F,MAAM,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;4BACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;4BACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gCACxB,MAAM,IAAI,uBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;4BACzD,CAAC;4BACD,MAAM,CAAC,IAAI,CAAC,gCAAgC,cAAc,0CAA0C,CAAC,CAAC;wBACxG,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,cAAc,oCAAoC,EAAE,GAAG,CAAC,CAAC;4BACtG,IAAI,qBAAqB,EAAE,CAAC;gCAC1B,MAAM,GAAG,CAAC;4BACZ,CAAC;wBACH,CAAC;wBACD,OAAO,MAAO,CAAC;oBACjB,CAAC,CAAA;oBACD,MAAM,EAAE,CAAC,4BAAqB,EAAE,oBAAa,CAAC;iBAC/C;aACF;YACD,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB,CAAC;IACJ,CAAC;CACF;AAjED,gEAiEC"}
@@ -1,11 +1,12 @@
1
- import { ConfigProviderService, DataDefaultData, GenericObject } from '@node-c/core';
1
+ import { ConfigProviderService, DataDefaultData, GenericObject, LoggerService } from '@node-c/core';
2
2
  import { RDBEntityService, SQLQueryBuilderService } from '@node-c/data-rdb';
3
3
  import { ClickHouseDBEntitySchema, ClickHouseDBRepository } from '../repository';
4
4
  export declare class ClickHouseDBEntityService<Entity extends GenericObject, Data extends DataDefaultData<Entity> = DataDefaultData<Entity>> extends RDBEntityService<Entity, Data> {
5
5
  protected configProvider: ConfigProviderService;
6
+ protected logger: LoggerService;
6
7
  protected qb: SQLQueryBuilderService;
7
8
  protected repository: ClickHouseDBRepository<Entity>;
8
9
  protected schema: ClickHouseDBEntitySchema<Entity>;
9
10
  protected primaryKeys: string[];
10
- constructor(configProvider: ConfigProviderService, qb: SQLQueryBuilderService, repository: ClickHouseDBRepository<Entity>, schema: ClickHouseDBEntitySchema<Entity>);
11
+ constructor(configProvider: ConfigProviderService, logger: LoggerService, qb: SQLQueryBuilderService, repository: ClickHouseDBRepository<Entity>, schema: ClickHouseDBEntitySchema<Entity>);
11
12
  }
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClickHouseDBEntityService = void 0;
4
4
  const data_rdb_1 = require("@node-c/data-rdb");
5
5
  class ClickHouseDBEntityService extends data_rdb_1.RDBEntityService {
6
- constructor(configProvider, qb, repository, schema) {
7
- super(configProvider, qb, repository, schema);
6
+ constructor(configProvider, logger, qb, repository, schema) {
7
+ super(configProvider, logger, qb, repository, schema);
8
8
  this.configProvider = configProvider;
9
+ this.logger = logger;
9
10
  this.qb = qb;
10
11
  this.repository = repository;
11
12
  this.schema = schema;
@@ -1 +1 @@
1
- {"version":3,"file":"clickhouse.entity.service.js","sourceRoot":"","sources":["../../src/entityService/clickhouse.entity.service.ts"],"names":[],"mappings":";;;AACA,+CAA4E;AAI5E,MAAa,yBAGX,SAAQ,2BAA8B;IAGtC,YACY,cAAqC,EACrC,EAA0B,EAC1B,UAA0C,EAC1C,MAAwC;QAElD,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QALpC,mBAAc,GAAd,cAAc,CAAuB;QACrC,OAAE,GAAF,EAAE,CAAwB;QAC1B,eAAU,GAAV,UAAU,CAAgC;QAC1C,WAAM,GAAN,MAAM,CAAkC;QAGlD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,CAAC;CACF;AAfD,8DAeC"}
1
+ {"version":3,"file":"clickhouse.entity.service.js","sourceRoot":"","sources":["../../src/entityService/clickhouse.entity.service.ts"],"names":[],"mappings":";;;AACA,+CAA4E;AAI5E,MAAa,yBAGX,SAAQ,2BAA8B;IAGtC,YACY,cAAqC,EACrC,MAAqB,EACrB,EAA0B,EAC1B,UAA0C,EAC1C,MAAwC;QAElD,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAN5C,mBAAc,GAAd,cAAc,CAAuB;QACrC,WAAM,GAAN,MAAM,CAAe;QACrB,OAAE,GAAF,EAAE,CAAwB;QAC1B,eAAU,GAAV,UAAU,CAAgC;QAC1C,WAAM,GAAN,MAAM,CAAkC;QAGlD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,CAAC;CACF;AAhBD,8DAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-c/data-clickhouse",
3
- "version": "1.0.0-beta0",
3
+ "version": "1.0.0-beta2",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -9,6 +9,7 @@
9
9
  "check-types": "tsc -p tsconfig.build.json --noEmit",
10
10
  "dev": "tsc -p tsconfig.build.json --watch",
11
11
  "lint": "eslint src",
12
+ "lint:fix": "eslint src --fix",
12
13
  "publish-package": "npm run build:clean && npm publish --access public",
13
14
  "test": "vitest --config src/vitest.config.ts",
14
15
  "test:coverage": "vitest --config src/vitest.config.ts --coverage"
@@ -17,8 +18,8 @@
17
18
  "@clickhouse/client": "^1.12.1",
18
19
  "@nestjs/common": "^11.1.16",
19
20
  "@nestjs/typeorm": "^11.0.0",
20
- "@node-c/core": "^1.0.0-beta0",
21
- "@node-c/data-rdb": "^1.0.0-beta0",
21
+ "@node-c/core": "^1.0.0-beta2",
22
+ "@node-c/data-rdb": "^1.0.0-beta2",
22
23
  "class-validator": "^0.14.1",
23
24
  "typeorm": "^0.3.20",
24
25
  "uuid": "^11.0.5"
@@ -2,7 +2,7 @@ import { ClickHouseClient, createClient } from '@clickhouse/client';
2
2
  import { NodeClickHouseClientConfigOptions } from '@clickhouse/client/dist/config';
3
3
  import { DynamicModule } from '@nestjs/common';
4
4
 
5
- import { AppConfigDataRDB, ApplicationError, ConfigProviderService } from '@node-c/core';
5
+ import { AppConfigDataRDB, ApplicationError, ConfigProviderService, LoggerService } from '@node-c/core';
6
6
 
7
7
  import { ClickHouseConnectionModuleOptions } from './clickhouse.connection.module.definitions';
8
8
 
@@ -19,7 +19,7 @@ export class ClickHouseConnectionModule {
19
19
  providers: [
20
20
  {
21
21
  provide: clientName,
22
- useFactory: async (configProvider: ConfigProviderService) => {
22
+ useFactory: async (configProvider: ConfigProviderService, logger: LoggerService) => {
23
23
  const dataConfig = configProvider.config.data;
24
24
  const {
25
25
  application,
@@ -52,20 +52,22 @@ export class ClickHouseConnectionModule {
52
52
  connectionOptions.url = url;
53
53
  }
54
54
  try {
55
+ logger.info(`[ClickHouseConnectionModule][${dataModuleName}]: Connecting to ClickHouse...`);
55
56
  client = createClient(connectionOptions);
56
57
  const pingResult = await client.ping({ select: true });
57
58
  if (!pingResult.success) {
58
59
  throw new ApplicationError(JSON.stringify(pingResult));
59
60
  }
61
+ logger.info(`[ClickHouseConnectionModule][${dataModuleName}]: Connected to ClickHouse successfully.`);
60
62
  } catch (err) {
61
- console.error(`[ClickHouseConnectionModule][${dataModuleName}]: Error connecting to ClickHouse:`, err);
63
+ logger.error(`[ClickHouseConnectionModule][${dataModuleName}]: Error connecting to ClickHouse:`, err);
62
64
  if (failOnConnectionError) {
63
65
  throw err;
64
66
  }
65
67
  }
66
68
  return client!;
67
69
  },
68
- inject: [ConfigProviderService]
70
+ inject: [ConfigProviderService, LoggerService]
69
71
  }
70
72
  ],
71
73
  exports: [clientName]
@@ -1,4 +1,4 @@
1
- import { ConfigProviderService, DataDefaultData, GenericObject } from '@node-c/core';
1
+ import { ConfigProviderService, DataDefaultData, GenericObject, LoggerService } from '@node-c/core';
2
2
  import { RDBEntityService, SQLQueryBuilderService } from '@node-c/data-rdb';
3
3
 
4
4
  import { ClickHouseDBEntitySchema, ClickHouseDBRepository } from '../repository';
@@ -11,11 +11,12 @@ export class ClickHouseDBEntityService<
11
11
 
12
12
  constructor(
13
13
  protected configProvider: ConfigProviderService,
14
+ protected logger: LoggerService,
14
15
  protected qb: SQLQueryBuilderService,
15
16
  protected repository: ClickHouseDBRepository<Entity>,
16
17
  protected schema: ClickHouseDBEntitySchema<Entity>
17
18
  ) {
18
- super(configProvider, qb, repository, schema);
19
+ super(configProvider, logger, qb, repository, schema);
19
20
  this.primaryKeys = repository.primaryKeys;
20
21
  }
21
22
  }
@@ -5,9 +5,9 @@ import { ClickHouseEntityManager } from '../entityManager';
5
5
  import { ClickHouseDBEntitySchema } from '../repository/clickhouse.repository.definitions';
6
6
 
7
7
  // TODO: field selection, join, update, delete
8
- export class ClickHouseSelectQueryBuilder<Entity extends GenericObject<unknown>>
9
- implements OrmSelectQueryBuilder<Entity>
10
- {
8
+ export class ClickHouseSelectQueryBuilder<
9
+ Entity extends GenericObject<unknown>
10
+ > implements OrmSelectQueryBuilder<Entity> {
11
11
  protected deletedColumn?: string;
12
12
  protected limitClause: string = '';
13
13
  protected offsetClause: string = '';