@simplysm/service-client 13.0.100 → 14.0.1
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/dist/features/event-client.d.ts.map +1 -1
- package/dist/features/event-client.js +75 -67
- package/dist/features/event-client.js.map +1 -6
- package/dist/features/file-client.js +41 -39
- package/dist/features/file-client.js.map +1 -6
- package/dist/features/orm/orm-client-connector.js +37 -38
- package/dist/features/orm/orm-client-connector.js.map +1 -6
- package/dist/features/orm/orm-client-db-context-executor.d.ts.map +1 -1
- package/dist/features/orm/orm-client-db-context-executor.js +60 -60
- package/dist/features/orm/orm-client-db-context-executor.js.map +1 -6
- package/dist/features/orm/orm-connect-options.js +2 -1
- package/dist/features/orm/orm-connect-options.js.map +1 -6
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -6
- package/dist/protocol/client-protocol-wrapper.d.ts +1 -0
- package/dist/protocol/client-protocol-wrapper.d.ts.map +1 -1
- package/dist/protocol/client-protocol-wrapper.js +92 -70
- package/dist/protocol/client-protocol-wrapper.js.map +1 -6
- package/dist/service-client.d.ts +2 -0
- package/dist/service-client.d.ts.map +1 -1
- package/dist/service-client.js +113 -111
- package/dist/service-client.js.map +1 -6
- package/dist/transport/service-transport.js +121 -104
- package/dist/transport/service-transport.js.map +1 -6
- package/dist/transport/socket-provider.js +180 -155
- package/dist/transport/socket-provider.js.map +1 -6
- package/dist/types/connection-options.d.ts +1 -1
- package/dist/types/connection-options.d.ts.map +1 -1
- package/dist/types/connection-options.js +2 -1
- package/dist/types/connection-options.js.map +1 -6
- package/dist/types/progress.types.d.ts +1 -0
- package/dist/types/progress.types.d.ts.map +1 -1
- package/dist/types/progress.types.js +2 -1
- package/dist/types/progress.types.js.map +1 -6
- package/dist/workers/client-protocol.worker.js +38 -24
- package/dist/workers/client-protocol.worker.js.map +1 -6
- package/package.json +16 -9
- package/src/features/event-client.ts +19 -17
- package/src/features/file-client.ts +5 -5
- package/src/features/orm/orm-client-connector.ts +2 -2
- package/src/features/orm/orm-client-db-context-executor.ts +8 -7
- package/src/index.ts +5 -5
- package/src/protocol/client-protocol-wrapper.ts +24 -19
- package/src/service-client.ts +22 -15
- package/src/transport/service-transport.ts +19 -19
- package/src/transport/socket-provider.ts +38 -38
- package/src/types/connection-options.ts +1 -1
- package/src/types/progress.types.ts +1 -0
- package/src/workers/client-protocol.worker.ts +9 -9
- package/README.md +0 -126
- package/docs/features.md +0 -143
- package/docs/protocol.md +0 -29
- package/docs/service-client.md +0 -93
- package/docs/transport.md +0 -96
- package/docs/types.md +0 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-client.d.ts","sourceRoot":"","sources":["..\\..\\src\\features\\event-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKvE,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,KAAK,EAAE,KAAK,EACtB,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,KAAK,EACf,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,EACtC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"event-client.d.ts","sourceRoot":"","sources":["..\\..\\src\\features\\event-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKvE,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,KAAK,EAAE,KAAK,EACtB,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,KAAK,EACf,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EACvC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,EACtC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAwG1E"}
|
|
@@ -1,78 +1,86 @@
|
|
|
1
1
|
import { Uuid } from "@simplysm/core-common";
|
|
2
2
|
import consola from "consola";
|
|
3
3
|
const logger = consola.withTag("service-client:EventClient");
|
|
4
|
-
function createEventClient(transport) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
});
|
|
9
|
-
async function addListener(eventDef, info, cb) {
|
|
10
|
-
const key = Uuid.generate().toString();
|
|
11
|
-
const eventName = eventDef.eventName;
|
|
12
|
-
await transport.send({
|
|
13
|
-
name: "evt:add",
|
|
14
|
-
body: { key, name: eventName, info }
|
|
4
|
+
export function createEventClient(transport) {
|
|
5
|
+
const listenerMap = new Map();
|
|
6
|
+
transport.on("event", async ({ keys, data }) => {
|
|
7
|
+
await executeByKey(keys, data);
|
|
15
8
|
});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
});
|
|
21
|
-
return key;
|
|
22
|
-
}
|
|
23
|
-
async function removeListener(key) {
|
|
24
|
-
listenerMap.delete(key);
|
|
25
|
-
try {
|
|
26
|
-
await transport.send({ name: "evt:remove", body: { key } });
|
|
27
|
-
} catch {
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
async function emit(eventDef, infoSelector, data) {
|
|
31
|
-
const eventName = eventDef.eventName;
|
|
32
|
-
const listenerInfos = await transport.send({
|
|
33
|
-
name: "evt:gets",
|
|
34
|
-
body: { name: eventName }
|
|
35
|
-
});
|
|
36
|
-
const targetKeys = listenerInfos.filter((item) => infoSelector(item.info)).map((item) => item.key);
|
|
37
|
-
if (targetKeys.length > 0) {
|
|
38
|
-
await transport.send({
|
|
39
|
-
name: "evt:emit",
|
|
40
|
-
body: { keys: targetKeys, data }
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
async function resubscribeAll() {
|
|
45
|
-
for (const [key, value] of listenerMap.entries()) {
|
|
46
|
-
try {
|
|
9
|
+
async function addListener(eventDef, info, cb) {
|
|
10
|
+
const key = Uuid.generate().toString();
|
|
11
|
+
const eventName = eventDef.eventName;
|
|
12
|
+
// 서버에 등록 요청 전송
|
|
47
13
|
await transport.send({
|
|
48
|
-
|
|
49
|
-
|
|
14
|
+
name: "evt:add",
|
|
15
|
+
body: { key, name: eventName, info },
|
|
16
|
+
});
|
|
17
|
+
// 로컬 맵에 저장 (재연결 시 복구용)
|
|
18
|
+
listenerMap.set(key, {
|
|
19
|
+
eventName,
|
|
20
|
+
info,
|
|
21
|
+
cb: cb,
|
|
50
22
|
});
|
|
51
|
-
|
|
52
|
-
logger.error("Failed to recover event listener", { err, eventName: value.eventName });
|
|
53
|
-
}
|
|
23
|
+
return key;
|
|
54
24
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
for (const key of keys) {
|
|
58
|
-
const entry = listenerMap.get(key);
|
|
59
|
-
if (entry != null) {
|
|
25
|
+
async function removeListener(key) {
|
|
26
|
+
listenerMap.delete(key);
|
|
60
27
|
try {
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
28
|
+
await transport.send({ name: "evt:remove", body: { key } });
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// 서버가 연결 끊김 시 이벤트 리스너를 자동 정리하므로 무시해도 안전함
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function emit(eventDef, infoSelector, data) {
|
|
35
|
+
const eventName = eventDef.eventName;
|
|
36
|
+
// 서버에 'gets' 요청을 보내 대상 목록 조회
|
|
37
|
+
const listenerInfos = (await transport.send({
|
|
38
|
+
name: "evt:gets",
|
|
39
|
+
body: { name: eventName },
|
|
40
|
+
}));
|
|
41
|
+
const targetKeys = listenerInfos
|
|
42
|
+
.filter((item) => infoSelector(item.info))
|
|
43
|
+
.map((item) => item.key);
|
|
44
|
+
if (targetKeys.length > 0) {
|
|
45
|
+
await transport.send({
|
|
46
|
+
name: "evt:emit",
|
|
47
|
+
body: { keys: targetKeys, data },
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// 재연결 시 호출
|
|
52
|
+
async function resubscribeAll() {
|
|
53
|
+
await Promise.allSettled(Array.from(listenerMap.entries()).map(async ([key, value]) => {
|
|
54
|
+
try {
|
|
55
|
+
await transport.send({
|
|
56
|
+
name: "evt:add",
|
|
57
|
+
body: { key, name: value.eventName, info: value.info },
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
logger.error("이벤트 리스너 복구 실패", { err, eventName: value.eventName });
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
// 서버 이벤트를 로컬 리스너에 디스패치
|
|
66
|
+
async function executeByKey(keys, data) {
|
|
67
|
+
for (const key of keys) {
|
|
68
|
+
const entry = listenerMap.get(key);
|
|
69
|
+
if (entry != null) {
|
|
70
|
+
try {
|
|
71
|
+
await entry.cb(data);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
logger.error("이벤트 핸들러 에러", { err, eventName: entry.eventName });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
64
77
|
}
|
|
65
|
-
}
|
|
66
78
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
};
|
|
79
|
+
return {
|
|
80
|
+
addListener,
|
|
81
|
+
removeListener,
|
|
82
|
+
emit,
|
|
83
|
+
resubscribeAll,
|
|
84
|
+
};
|
|
74
85
|
}
|
|
75
|
-
|
|
76
|
-
createEventClient
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=event-client.js.map
|
|
86
|
+
//# sourceMappingURL=event-client.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/features/event-client.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,YAAY;AAGrB,OAAO,aAAa;AAEpB,MAAM,SAAS,QAAQ,QAAQ,4BAA4B;AAiBpD,SAAS,kBAAkB,WAA0C;AAC1E,QAAM,cAAc,oBAAI,IAGtB;AAEF,YAAU,GAAG,SAAS,OAAO,EAAE,MAAM,KAAK,MAAM;AAC9C,UAAM,aAAa,MAAM,IAAI;AAAA,EAC/B,CAAC;AAED,iBAAe,YACb,UACA,MACA,IACiB;AACjB,UAAM,MAAM,KAAK,SAAS,EAAE,SAAS;AACrC,UAAM,YAAY,SAAS;AAG3B,UAAM,UAAU,KAAK;AAAA,MACnB,MAAM;AAAA,MACN,MAAM,EAAE,KAAK,MAAM,WAAW,KAAK;AAAA,IACrC,CAAC;AAGD,gBAAY,IAAI,KAAK;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAEA,iBAAe,eAAe,KAA4B;AACxD,gBAAY,OAAO,GAAG;AACtB,QAAI;AACF,YAAM,UAAU,KAAK,EAAE,MAAM,cAAc,MAAM,EAAE,IAAI,EAAE,CAAC;AAAA,IAC5D,QAAQ;AAAA,IAER;AAAA,EACF;AAEA,iBAAe,KACb,UACA,cACA,MACe;AACf,UAAM,YAAY,SAAS;AAG3B,UAAM,gBAAiB,MAAM,UAAU,KAAK;AAAA,MAC1C,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,UAAU;AAAA,IAC1B,CAAC;AAED,UAAM,aAAa,cAChB,OAAO,CAAC,SAAS,aAAa,KAAK,IAAI,CAAC,EACxC,IAAI,CAAC,SAAS,KAAK,GAAG;AAEzB,QAAI,WAAW,SAAS,GAAG;AACzB,YAAM,UAAU,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,MAAM,EAAE,MAAM,YAAY,KAAK;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,EACF;AAGA,iBAAe,iBAAgC;AAC7C,eAAW,CAAC,KAAK,KAAK,KAAK,YAAY,QAAQ,GAAG;AAChD,UAAI;AACF,cAAM,UAAU,KAAK;AAAA,UACnB,MAAM;AAAA,UACN,MAAM,EAAE,KAAK,MAAM,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QACvD,CAAC;AAAA,MACH,SAAS,KAAK;AACZ,eAAO,MAAM,oCAAoC,EAAE,KAAK,WAAW,MAAM,UAAU,CAAC;AAAA,MACtF;AAAA,IACF;AAAA,EACF;AAGA,iBAAe,aAAa,MAAgB,MAA8B;AACxE,eAAW,OAAO,MAAM;AACtB,YAAM,QAAQ,YAAY,IAAI,GAAG;AACjC,UAAI,SAAS,MAAM;AACjB,YAAI;AACF,gBAAM,MAAM,GAAG,IAAI;AAAA,QACrB,SAAS,KAAK;AACZ,iBAAO,MAAM,uBAAuB,EAAE,KAAK,WAAW,MAAM,UAAU,CAAC;AAAA,QACzE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"event-client.js","sourceRoot":"","sources":["..\\..\\src\\features\\event-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +1,44 @@
|
|
|
1
|
-
function createFileClient(hostUrl, clientName) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export function createFileClient(hostUrl, clientName) {
|
|
2
|
+
async function download(relPath) {
|
|
3
|
+
// URL 생성
|
|
4
|
+
const url = `${hostUrl}${relPath.startsWith("/") ? "" : "/"}${relPath}`;
|
|
5
|
+
const res = await fetch(url);
|
|
6
|
+
if (!res.ok) {
|
|
7
|
+
throw new Error(`다운로드 실패: ${res.status} ${res.statusText}`);
|
|
8
|
+
}
|
|
9
|
+
// ArrayBuffer -> Uint8Array
|
|
10
|
+
return new Uint8Array(await res.arrayBuffer());
|
|
7
11
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
async function upload(files, authToken) {
|
|
13
|
+
const formData = new FormData();
|
|
14
|
+
const fileList = files instanceof FileList ? Array.from(files) : files;
|
|
15
|
+
for (const file of fileList) {
|
|
16
|
+
if ("data" in file) {
|
|
17
|
+
// 커스텀 객체 ({ name, data })
|
|
18
|
+
const blob = file.data instanceof Blob ? file.data : new Blob([file.data]);
|
|
19
|
+
formData.append("files", blob, file.name);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// 브라우저 File 객체
|
|
23
|
+
formData.append("files", file, file.name);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const res = await fetch(`${hostUrl}/upload`, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: {
|
|
29
|
+
"x-sd-client-name": clientName,
|
|
30
|
+
"Authorization": `Bearer ${authToken}`,
|
|
31
|
+
},
|
|
32
|
+
body: formData,
|
|
33
|
+
});
|
|
34
|
+
if (!res.ok) {
|
|
35
|
+
throw new Error(`업로드 실패: ${res.statusText}`);
|
|
36
|
+
}
|
|
37
|
+
return res.json();
|
|
20
38
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"Authorization": `Bearer ${authToken}`
|
|
26
|
-
},
|
|
27
|
-
body: formData
|
|
28
|
-
});
|
|
29
|
-
if (!res.ok) {
|
|
30
|
-
throw new Error(`Upload failed: ${res.statusText}`);
|
|
31
|
-
}
|
|
32
|
-
return res.json();
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
download,
|
|
36
|
-
upload
|
|
37
|
-
};
|
|
39
|
+
return {
|
|
40
|
+
download,
|
|
41
|
+
upload,
|
|
42
|
+
};
|
|
38
43
|
}
|
|
39
|
-
|
|
40
|
-
createFileClient
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=file-client.js.map
|
|
44
|
+
//# sourceMappingURL=file-client.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/features/file-client.ts"],
|
|
4
|
-
"mappings": "AAWO,SAAS,iBAAiB,SAAiB,YAAgC;AAChF,iBAAe,SAAS,SAAiC;AAEvD,UAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,WAAW,GAAG,IAAI,KAAK,GAAG,GAAG,OAAO;AAErE,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,oBAAoB,IAAI,MAAM,IAAI,IAAI,UAAU,EAAE;AAAA,IACpE;AAGA,WAAO,IAAI,WAAW,MAAM,IAAI,YAAY,CAAC;AAAA,EAC/C;AAEA,iBAAe,OACb,OACA,WACgC;AAChC,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,WAAW,iBAAiB,WAAW,MAAM,KAAK,KAAK,IAAI;AAEjE,eAAW,QAAQ,UAAU;AAC3B,UAAI,UAAU,MAAM;AAElB,cAAM,OAAO,KAAK,gBAAgB,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;AACzE,iBAAS,OAAO,SAAS,MAAM,KAAK,IAAI;AAAA,MAC1C,OAAO;AAEL,iBAAS,OAAO,SAAS,MAAM,KAAK,IAAI;AAAA,MAC1C;AAAA,IACF;AAEA,UAAM,MAAM,MAAM,MAAM,GAAG,OAAO,WAAW;AAAA,MAC3C,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,oBAAoB;AAAA,QACpB,iBAAiB,UAAU,SAAS;AAAA,MACtC;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,kBAAkB,IAAI,UAAU,EAAE;AAAA,IACpD;AAEA,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"file-client.js","sourceRoot":"","sources":["..\\..\\src\\features\\file-client.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,UAAkB;IAClE,KAAK,UAAU,QAAQ,CAAC,OAAe;QACrC,SAAS;QACT,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;QAExE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,4BAA4B;QAC5B,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,UAAU,MAAM,CACnB,KAA6D,EAC7D,SAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEvE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,0BAA0B;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3E,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,kBAAkB,EAAE,UAAU;gBAC9B,eAAe,EAAE,UAAU,SAAS,EAAE;aACvC;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,OAAO;QACL,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,42 +1,41 @@
|
|
|
1
1
|
import { OrmClientDbContextExecutor } from "./orm-client-db-context-executor.js";
|
|
2
2
|
import { createDbContext } from "@simplysm/orm-common";
|
|
3
|
-
function createOrmClientConnector(serviceClient) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
throw new Error("database is required");
|
|
11
|
-
}
|
|
12
|
-
return createDbContext(config.dbContextDef, executor, {
|
|
13
|
-
database,
|
|
14
|
-
schema: ((_b = config.dbContextOpt) == null ? void 0 : _b.schema) ?? info.schema
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
async function connect(config, callback) {
|
|
18
|
-
const db = await _createConfiguredDb(config);
|
|
19
|
-
return db.connect(async () => {
|
|
20
|
-
try {
|
|
21
|
-
return await callback(db);
|
|
22
|
-
} catch (err) {
|
|
23
|
-
if (err instanceof Error && (err.message.includes("a parent row: a foreign key constraint") || err.message.includes("conflicted with the REFERENCE"))) {
|
|
24
|
-
throw new Error("Warning! Operation rejected due to related operations. Please check subsequent operations.", { cause: err });
|
|
3
|
+
export function createOrmClientConnector(serviceClient) {
|
|
4
|
+
async function _createConfiguredDb(config) {
|
|
5
|
+
const executor = new OrmClientDbContextExecutor(serviceClient, config.connOpt);
|
|
6
|
+
const info = await executor.getInfo();
|
|
7
|
+
const database = config.dbContextOpt?.database ?? info.database;
|
|
8
|
+
if (database == null || database === "") {
|
|
9
|
+
throw new Error("database는 필수입니다.");
|
|
25
10
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
11
|
+
return createDbContext(config.dbContextDef, executor, {
|
|
12
|
+
database,
|
|
13
|
+
schema: config.dbContextOpt?.schema ?? info.schema,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
async function connect(config, callback) {
|
|
17
|
+
const db = await _createConfiguredDb(config);
|
|
18
|
+
return db.connect(async () => {
|
|
19
|
+
try {
|
|
20
|
+
return await callback(db);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
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 });
|
|
27
|
+
}
|
|
28
|
+
throw err;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async function connectWithoutTransaction(config, callback) {
|
|
33
|
+
const db = await _createConfiguredDb(config);
|
|
34
|
+
return db.connectWithoutTransaction(async () => callback(db));
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
connect,
|
|
38
|
+
connectWithoutTransaction,
|
|
39
|
+
};
|
|
38
40
|
}
|
|
39
|
-
|
|
40
|
-
createOrmClientConnector
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=orm-client-connector.js.map
|
|
41
|
+
//# sourceMappingURL=orm-client-connector.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/orm/orm-client-connector.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,kCAAkC;AAE3C,SAAS,uBAAkE;AAcpE,SAAS,yBAAyB,eAAkD;AACzF,iBAAe,oBACb,QACkC;AAnBtC;AAoBI,UAAM,WAAW,IAAI,2BAA2B,eAAe,OAAO,OAAO;AAC7E,UAAM,OAAO,MAAM,SAAS,QAAQ;AACpC,UAAM,aAAW,YAAO,iBAAP,mBAAqB,aAAY,KAAK;AACvD,QAAI,YAAY,QAAQ,aAAa,IAAI;AACvC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,gBAAgB,OAAO,cAAc,UAAU;AAAA,MACpD;AAAA,MACA,UAAQ,YAAO,iBAAP,mBAAqB,WAAU,KAAK;AAAA,IAC9C,CAAC;AAAA,EACH;AAEA,iBAAe,QACb,QACA,UACY;AACZ,UAAM,KAAK,MAAM,oBAAoB,MAAM;AAC3C,WAAO,GAAG,QAAQ,YAAY;AAC5B,UAAI;AACF,eAAO,MAAM,SAAS,EAAE;AAAA,MAC1B,SAAS,KAAK;AACZ,YACE,eAAe,UACd,IAAI,QAAQ,SAAS,wCAAwC,KAC5D,IAAI,QAAQ,SAAS,+BAA+B,IACtD;AACA,gBAAM,IAAI,MAAM,8FAA8F,EAAE,OAAO,IAAI,CAAC;AAAA,QAC9H;AAEA,cAAM;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAEA,iBAAe,0BACb,QACA,UACY;AACZ,UAAM,KAAK,MAAM,oBAAoB,MAAM;AAC3C,WAAO,GAAG,0BAA0B,YAAY,SAAS,EAAE,CAAC;AAAA,EAC9D;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
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,EAAE,eAAe,EAA6C,MAAM,sBAAsB,CAAC;AAclG,MAAM,UAAU,wBAAwB,CAAC,aAA4B;IACnE,KAAK,UAAU,mBAAmB,CAChC,MAA+B;QAE/B,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,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE;YACpD,QAAQ;YACR,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,MAA+B,EAC/B,QAAyD;QAEzD,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,MAA+B,EAC/B,QAAyD;QAEzD,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orm-client-db-context-executor.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\features\\orm\\orm-client-db-context-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,0BAA2B,YAAW,iBAAiB;IAKhE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;gBAGtB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;IAKzD,OAAO,IAAI,OAAO,CAAC;QACvB,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAII,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"orm-client-db-context-executor.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\features\\orm\\orm-client-db-context-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,0BAA2B,YAAW,iBAAiB;IAKhE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;gBAGtB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,aAAa,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;IAKzD,OAAO,IAAI,OAAO,CAAC;QACvB,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAII,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,IAAI,EAAE,QAAQ,EAAE,EAChB,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,GACnC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;IAQX,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAQ5E,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
class OrmClientDbContextExecutor {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
1
|
+
export class OrmClientDbContextExecutor {
|
|
2
|
+
_client;
|
|
3
|
+
_opt;
|
|
4
|
+
_connId;
|
|
5
|
+
_ormService;
|
|
6
|
+
constructor(_client, _opt) {
|
|
7
|
+
this._client = _client;
|
|
8
|
+
this._opt = _opt;
|
|
9
|
+
this._ormService = _client.getService("Orm");
|
|
10
|
+
}
|
|
11
|
+
async getInfo() {
|
|
12
|
+
return this._ormService.getInfo(this._opt);
|
|
13
|
+
}
|
|
14
|
+
async connect() {
|
|
15
|
+
this._connId = await this._ormService.connect(this._opt);
|
|
16
|
+
}
|
|
17
|
+
async beginTransaction(isolationLevel) {
|
|
18
|
+
if (this._connId === undefined) {
|
|
19
|
+
throw new Error("데이터베이스에 연결되지 않았습니다.");
|
|
20
|
+
}
|
|
21
|
+
await this._ormService.beginTransaction(this._connId, isolationLevel);
|
|
22
|
+
}
|
|
23
|
+
async commitTransaction() {
|
|
24
|
+
if (this._connId === undefined) {
|
|
25
|
+
throw new Error("데이터베이스에 연결되지 않았습니다.");
|
|
26
|
+
}
|
|
27
|
+
await this._ormService.commitTransaction(this._connId);
|
|
28
|
+
}
|
|
29
|
+
async rollbackTransaction() {
|
|
30
|
+
if (this._connId === undefined) {
|
|
31
|
+
throw new Error("데이터베이스에 연결되지 않았습니다.");
|
|
32
|
+
}
|
|
33
|
+
await this._ormService.rollbackTransaction(this._connId);
|
|
34
|
+
}
|
|
35
|
+
async close() {
|
|
36
|
+
if (this._connId === undefined) {
|
|
37
|
+
throw new Error("데이터베이스에 연결되지 않았습니다.");
|
|
38
|
+
}
|
|
39
|
+
await this._ormService.close(this._connId);
|
|
40
|
+
this._connId = undefined;
|
|
41
|
+
}
|
|
42
|
+
async executeDefs(defs, options) {
|
|
43
|
+
if (this._connId === undefined) {
|
|
44
|
+
throw new Error("데이터베이스에 연결되지 않았습니다.");
|
|
45
|
+
}
|
|
46
|
+
return (await this._ormService.executeDefs(this._connId, defs, options));
|
|
47
|
+
}
|
|
48
|
+
async executeParametrized(query, params) {
|
|
49
|
+
if (this._connId === undefined) {
|
|
50
|
+
throw new Error("데이터베이스에 연결되지 않았습니다.");
|
|
51
|
+
}
|
|
52
|
+
return this._ormService.executeParametrized(this._connId, query, params);
|
|
53
|
+
}
|
|
54
|
+
async bulkInsert(tableName, columnDefs, records) {
|
|
55
|
+
if (this._connId === undefined) {
|
|
56
|
+
throw new Error("데이터베이스에 연결되지 않았습니다.");
|
|
57
|
+
}
|
|
58
|
+
return this._ormService.bulkInsert(this._connId, tableName, columnDefs, records);
|
|
59
|
+
}
|
|
57
60
|
}
|
|
58
|
-
|
|
59
|
-
OrmClientDbContextExecutor
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=orm-client-db-context-executor.js.map
|
|
61
|
+
//# sourceMappingURL=orm-client-db-context-executor.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/orm/orm-client-db-context-executor.ts"],
|
|
4
|
-
"mappings": "AAWO,MAAM,2BAAwD;AAAA,EAInE,YACmB,SACA,MACjB;AAFiB;AACA;AAEjB,SAAK,cAAc,QAAQ,WAAuB,KAAK;AAAA,EACzD;AAAA,EARQ;AAAA,EACS;AAAA,EASjB,MAAM,UAIH;AACD,WAAO,KAAK,YAAY,QAAQ,KAAK,IAAI;AAAA,EAC3C;AAAA,EAEA,MAAM,UAAyB;AAC7B,SAAK,UAAU,MAAM,KAAK,YAAY,QAAQ,KAAK,IAAI;AAAA,EACzD;AAAA,EAEA,MAAM,iBAAiB,gBAAgD;AACrE,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,iBAAiB,KAAK,SAAS,cAAc;AAAA,EACtE;AAAA,EAEA,MAAM,oBAAmC;AACvC,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,kBAAkB,KAAK,OAAO;AAAA,EACvD;AAAA,EAEA,MAAM,sBAAqC;AACzC,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,oBAAoB,KAAK,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,QAAuB;AAC3B,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,KAAK,YAAY,MAAM,KAAK,OAAO;AAAA,EAC3C;AAAA,EAEA,MAAM,YACJ,MACA,SACgB;AAChB,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,WAAQ,MAAM,KAAK,YAAY,YAAY,KAAK,SAAS,MAAM,OAAO;AAAA,EACxE;AAAA,EAEA,MAAM,oBAAoB,OAAe,QAA0C;AACjF,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,WAAO,KAAK,YAAY,oBAAoB,KAAK,SAAS,OAAO,MAAM;AAAA,EACzE;AAAA,EAEA,MAAM,WACJ,WACA,YACA,SACe;AACf,QAAI,KAAK,YAAY,QAAW;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,WAAO,KAAK,YAAY,WAAW,KAAK,SAAS,WAAW,YAAY,OAAO;AAAA,EACjF;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"orm-client-db-context-executor.js","sourceRoot":"","sources":["..\\..\\..\\src\\features\\orm\\orm-client-db-context-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=orm-connect-options.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
// 타입
|
|
1
2
|
export * from "./types/connection-options.js";
|
|
2
3
|
export * from "./types/progress.types.js";
|
|
4
|
+
// 전송 계층
|
|
3
5
|
export * from "./transport/socket-provider.js";
|
|
4
6
|
export * from "./transport/service-transport.js";
|
|
7
|
+
// 프로토콜
|
|
5
8
|
export * from "./protocol/client-protocol-wrapper.js";
|
|
9
|
+
// 기능
|
|
6
10
|
export * from "./features/event-client.js";
|
|
7
11
|
export * from "./features/file-client.js";
|
|
8
12
|
export * from "./features/orm/orm-connect-options.js";
|
|
9
13
|
export * from "./features/orm/orm-client-connector.js";
|
|
10
14
|
export * from "./features/orm/orm-client-db-context-executor.js";
|
|
15
|
+
// 메인
|
|
11
16
|
export * from "./service-client.js";
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": "AACA,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AAGd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["..\\src\\index.ts"],"names":[],"mappings":"AAAA,KAAK;AACL,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AAEvC,QAAQ;AACR,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAE9C,OAAO;AACP,cAAc,oCAAoC,CAAC;AAEnD,KAAK;AACL,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAE9D,KAAK;AACL,cAAc,kBAAkB,CAAC"}
|
|
@@ -6,6 +6,7 @@ export interface ClientProtocolWrapper {
|
|
|
6
6
|
totalSize: number;
|
|
7
7
|
}>;
|
|
8
8
|
decode(bytes: Bytes): Promise<ServiceMessageDecodeResult<ServiceMessage>>;
|
|
9
|
+
dispose(): void;
|
|
9
10
|
}
|
|
10
11
|
export declare function createClientProtocolWrapper(protocol: ServiceProtocol): ClientProtocolWrapper;
|
|
11
12
|
//# sourceMappingURL=client-protocol-wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-protocol-wrapper.d.ts","sourceRoot":"","sources":["..\\..\\src\\protocol\\client-protocol-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EACV,0BAA0B,EAC1B,cAAc,EACd,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client-protocol-wrapper.d.ts","sourceRoot":"","sources":["..\\..\\src\\protocol\\client-protocol-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EACV,0BAA0B,EAC1B,cAAc,EACd,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1E,OAAO,IAAI,IAAI,CAAC;CACjB;AA+ED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,eAAe,GAAG,qBAAqB,CA4D5F"}
|