@simplysm/service-client 14.0.89 → 14.0.90

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.
@@ -1 +1 @@
1
- {"version":3,"file":"orm-client-connector.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-client-connector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EAC5B,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,yBAAyB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EAC9C,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB,CAkDzF"}
1
+ {"version":3,"file":"orm-client-connector.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-client-connector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EAC5B,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,yBAAyB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EAC9C,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB,CAsDzF"}
@@ -1,5 +1,6 @@
1
1
  import { OrmClientDbContextExecutor } from "./orm-client-db-context-executor.js";
2
2
  import {} from "@simplysm/orm-common";
3
+ import { SdError } from "@simplysm/core-common";
3
4
  export function createOrmClientConnector(serviceClient) {
4
5
  async function _createConfiguredDb(config) {
5
6
  const executor = new OrmClientDbContextExecutor(serviceClient, config.connOpt);
@@ -21,9 +22,11 @@ export function createOrmClientConnector(serviceClient) {
21
22
  }
22
23
  catch (err) {
23
24
  if (err instanceof Error &&
24
- (err.message.includes("a parent row: a foreign key constraint") ||
25
- err.message.includes("conflicted with the REFERENCE"))) {
26
- throw new Error("경고! 연관된 작업으로 인해 작업이 거부되었습니다. 후속 작업을 확인해 주세요.", { cause: err });
25
+ (err.message.includes("a parent row: a foreign key constraint") || // MySQL
26
+ err.message.includes("conflicted with the REFERENCE") || // MSSQL
27
+ err.message.includes("violates foreign key constraint")) // PostgreSQL
28
+ ) {
29
+ throw new SdError(err, "경고! 연관된 작업으로 인해 작업이 거부되었습니다. 후속 작업을 확인해 주세요.");
27
30
  }
28
31
  throw err;
29
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orm-client-connector.js","sourceRoot":"","sources":["../../../src/features/orm/orm-client-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AActD,MAAM,UAAU,wBAAwB,CAAC,aAA4B;IACnE,KAAK,UAAU,mBAAmB,CAChC,MAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,0BAA0B,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QAChE,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAClC,QAAQ;YACR,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,MAA4B,EAC5B,QAAmC;QAEnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IACE,GAAG,YAAY,KAAK;oBACpB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC;wBAC7D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,EACxD,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClF,CAAC;gBAED,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,yBAAyB,CACtC,MAA4B,EAC5B,QAAmC;QAEnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,OAAO;QACP,yBAAyB;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"orm-client-connector.js","sourceRoot":"","sources":["../../../src/features/orm/orm-client-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAahD,MAAM,UAAU,wBAAwB,CAAC,aAA4B;IACnE,KAAK,UAAU,mBAAmB,CAChC,MAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,0BAA0B,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QAChE,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAClC,QAAQ;YACR,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,MAA4B,EAC5B,QAAmC;QAEnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IACE,GAAG,YAAY,KAAK;oBACpB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC,IAAI,QAAQ;wBACzE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,QAAQ;wBACjE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAC,aAAa;kBACxE,CAAC;oBACD,MAAM,IAAI,OAAO,CACf,GAAG,EACH,8CAA8C,CAC/C,CAAC;gBACJ,CAAC;gBAED,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,yBAAyB,CACtC,MAA4B,EAC5B,QAAmC;QAEnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,OAAO;QACP,yBAAyB;KAC1B,CAAC;AACJ,CAAC"}
@@ -10,7 +10,7 @@ export interface OrmConnectOptions<T extends DbContext> {
10
10
  };
11
11
  dbContextOpt?: {
12
12
  database: string;
13
- schema: string;
13
+ schema?: string;
14
14
  };
15
15
  }
16
16
  //# sourceMappingURL=orm-connect-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orm-connect-options.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-connect-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS;IACpD,OAAO,EAAE,KAAK,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,CAAC,CAAC;IAC5F,OAAO,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
1
+ {"version":3,"file":"orm-connect-options.d.ts","sourceRoot":"","sources":["../../../src/features/orm/orm-connect-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS;IACpD,OAAO,EAAE,KAAK,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,CAAC,CAAC;IAC5F,OAAO,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/service-client",
3
- "version": "14.0.89",
3
+ "version": "14.0.90",
4
4
  "description": "심플리즘 패키지 - 서비스 (client)",
5
5
  "author": "심플리즘",
6
6
  "license": "Apache-2.0",
@@ -18,9 +18,9 @@
18
18
  ],
19
19
  "sideEffects": false,
20
20
  "dependencies": {
21
- "@simplysm/core-common": "14.0.89",
22
- "@simplysm/orm-common": "14.0.89",
23
- "@simplysm/service-common": "14.0.89"
21
+ "@simplysm/service-common": "14.0.90",
22
+ "@simplysm/orm-common": "14.0.90",
23
+ "@simplysm/core-common": "14.0.90"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/ws": "^8.18.1",
@@ -1,67 +1,72 @@
1
- import { OrmClientDbContextExecutor } from "./orm-client-db-context-executor";
2
- import type { OrmConnectOptions } from "./orm-connect-options";
3
- import { type DbContext } from "@simplysm/orm-common";
4
- import type { ServiceClient } from "../../service-client";
5
-
6
- export interface OrmClientConnector {
7
- connect<T extends DbContext, R>(
8
- config: OrmConnectOptions<T>,
9
- callback: (db: T) => Promise<R> | R,
10
- ): Promise<R>;
11
- connectWithoutTransaction<T extends DbContext, R>(
12
- config: OrmConnectOptions<T>,
13
- callback: (db: T) => Promise<R> | R,
14
- ): Promise<R>;
15
- }
16
-
17
- export function createOrmClientConnector(serviceClient: ServiceClient): OrmClientConnector {
18
- async function _createConfiguredDb<T extends DbContext>(
19
- config: OrmConnectOptions<T>,
20
- ): Promise<T> {
21
- const executor = new OrmClientDbContextExecutor(serviceClient, config.connOpt);
22
- const info = await executor.getInfo();
23
- const database = config.dbContextOpt?.database ?? info.database;
24
- if (database == null || database === "") {
25
- throw new Error("database 필수입니다.");
26
- }
27
- return new config.DbClass(executor, {
28
- database,
29
- schema: config.dbContextOpt?.schema ?? info.schema,
30
- });
31
- }
32
-
33
- async function connect<T extends DbContext, R>(
34
- config: OrmConnectOptions<T>,
35
- callback: (db: T) => Promise<R> | R,
36
- ): Promise<R> {
37
- const db = await _createConfiguredDb(config);
38
- return db.connect(async () => {
39
- try {
40
- return await callback(db);
41
- } catch (err) {
42
- if (
43
- err instanceof Error &&
44
- (err.message.includes("a parent row: a foreign key constraint") ||
45
- err.message.includes("conflicted with the REFERENCE"))
46
- ) {
47
- throw new Error("경고! 연관된 작업으로 인해 작업이 거부되었습니다. 후속 작업을 확인해 주세요.", { cause: err });
48
- }
49
-
50
- throw err;
51
- }
52
- });
53
- }
54
-
55
- async function connectWithoutTransaction<T extends DbContext, R>(
56
- config: OrmConnectOptions<T>,
57
- callback: (db: T) => Promise<R> | R,
58
- ): Promise<R> {
59
- const db = await _createConfiguredDb(config);
60
- return db.connectWithoutTransaction(async () => callback(db));
61
- }
62
-
63
- return {
64
- connect,
65
- connectWithoutTransaction,
66
- };
67
- }
1
+ import { OrmClientDbContextExecutor } from "./orm-client-db-context-executor";
2
+ import type { OrmConnectOptions } from "./orm-connect-options";
3
+ import { type DbContext } from "@simplysm/orm-common";
4
+ import type { ServiceClient } from "../../service-client";
5
+ import { SdError } from "@simplysm/core-common";
6
+
7
+ export interface OrmClientConnector {
8
+ connect<T extends DbContext, R>(
9
+ config: OrmConnectOptions<T>,
10
+ callback: (db: T) => Promise<R> | R,
11
+ ): Promise<R>;
12
+ connectWithoutTransaction<T extends DbContext, R>(
13
+ config: OrmConnectOptions<T>,
14
+ callback: (db: T) => Promise<R> | R,
15
+ ): Promise<R>;
16
+ }
17
+
18
+ export function createOrmClientConnector(serviceClient: ServiceClient): OrmClientConnector {
19
+ async function _createConfiguredDb<T extends DbContext>(
20
+ config: OrmConnectOptions<T>,
21
+ ): Promise<T> {
22
+ const executor = new OrmClientDbContextExecutor(serviceClient, config.connOpt);
23
+ const info = await executor.getInfo();
24
+ const database = config.dbContextOpt?.database ?? info.database;
25
+ if (database == null || database === "") {
26
+ throw new Error("database는 필수입니다.");
27
+ }
28
+ return new config.DbClass(executor, {
29
+ database,
30
+ schema: config.dbContextOpt?.schema ?? info.schema,
31
+ });
32
+ }
33
+
34
+ async function connect<T extends DbContext, R>(
35
+ config: OrmConnectOptions<T>,
36
+ callback: (db: T) => Promise<R> | R,
37
+ ): Promise<R> {
38
+ const db = await _createConfiguredDb(config);
39
+ return db.connect(async () => {
40
+ try {
41
+ return await callback(db);
42
+ } catch (err) {
43
+ if (
44
+ err instanceof Error &&
45
+ (err.message.includes("a parent row: a foreign key constraint") || // MySQL
46
+ err.message.includes("conflicted with the REFERENCE") || // MSSQL
47
+ err.message.includes("violates foreign key constraint")) // PostgreSQL
48
+ ) {
49
+ throw new SdError(
50
+ err,
51
+ "경고! 연관된 작업으로 인해 작업이 거부되었습니다. 후속 작업을 확인해 주세요.",
52
+ );
53
+ }
54
+
55
+ throw err;
56
+ }
57
+ });
58
+ }
59
+
60
+ async function connectWithoutTransaction<T extends DbContext, R>(
61
+ config: OrmConnectOptions<T>,
62
+ callback: (db: T) => Promise<R> | R,
63
+ ): Promise<R> {
64
+ const db = await _createConfiguredDb(config);
65
+ return db.connectWithoutTransaction(async () => callback(db));
66
+ }
67
+
68
+ return {
69
+ connect,
70
+ connectWithoutTransaction,
71
+ };
72
+ }
@@ -6,6 +6,6 @@ export interface OrmConnectOptions<T extends DbContext> {
6
6
  connOpt: DbConnOptions & { configName: string };
7
7
  dbContextOpt?: {
8
8
  database: string;
9
- schema: string;
9
+ schema?: string;
10
10
  };
11
11
  }