@simplysm/service-client 14.0.27 → 14.0.28

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,9 +1,15 @@
1
1
  import type { ServiceEventDef } from "@simplysm/service-common";
2
2
  import type { ServiceTransport } from "../transport/service-transport";
3
+ export interface ClientEventProxy<TEventDef extends ServiceEventDef> {
4
+ addListener(info: TEventDef["$info"], cb: (data: TEventDef["$data"]) => PromiseLike<void>): Promise<string>;
5
+ removeListener(key: string): Promise<void>;
6
+ emit(infoSelector: (item: TEventDef["$info"]) => boolean, data: TEventDef["$data"]): Promise<void>;
7
+ }
3
8
  export interface EventClient {
4
- addListener<TInfo, TData>(eventDef: ServiceEventDef<TInfo, TData>, info: TInfo, cb: (data: TData) => PromiseLike<void>): Promise<string>;
9
+ getEvent<TEventDef extends ServiceEventDef>(eventName: string): ClientEventProxy<TEventDef>;
10
+ addListener<TEventDef extends ServiceEventDef>(eventName: string, info: TEventDef["$info"], cb: (data: TEventDef["$data"]) => PromiseLike<void>): Promise<string>;
5
11
  removeListener(key: string): Promise<void>;
6
- emit<TInfo, TData>(eventDef: ServiceEventDef<TInfo, TData>, infoSelector: (item: TInfo) => boolean, data: TData): Promise<void>;
12
+ emit<TEventDef extends ServiceEventDef>(eventName: string, infoSelector: (item: TEventDef["$info"]) => boolean, data: TEventDef["$data"]): Promise<void>;
7
13
  resubscribeAll(): Promise<void>;
8
14
  }
9
15
  export declare function createEventClient(transport: ServiceTransport): EventClient;
@@ -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,CAwG1E"}
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,gBAAgB,CAAC,SAAS,SAAS,eAAe;IACjE,WAAW,CACT,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EACxB,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CACF,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,OAAO,EACnD,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,SAAS,eAAe,EACxC,SAAS,EAAE,MAAM,GAChB,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC/B,WAAW,CAAC,SAAS,SAAS,eAAe,EAC3C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EACxB,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,SAAS,eAAe,EACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,OAAO,EACnD,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAiH1E"}
@@ -6,9 +6,8 @@ export function createEventClient(transport) {
6
6
  transport.on("event", async ({ keys, data }) => {
7
7
  await executeByKey(keys, data);
8
8
  });
9
- async function addListener(eventDef, info, cb) {
9
+ async function addListener(eventName, info, cb) {
10
10
  const key = Uuid.generate().toString();
11
- const eventName = eventDef.eventName;
12
11
  // 서버에 등록 요청 전송
13
12
  await transport.send({
14
13
  name: "evt:add",
@@ -31,8 +30,7 @@ export function createEventClient(transport) {
31
30
  // 서버가 연결 끊김 시 이벤트 리스너를 자동 정리하므로 무시해도 안전함
32
31
  }
33
32
  }
34
- async function emit(eventDef, infoSelector, data) {
35
- const eventName = eventDef.eventName;
33
+ async function emit(eventName, infoSelector, data) {
36
34
  // 서버에 'gets' 요청을 보내 대상 목록 조회
37
35
  const listenerInfos = (await transport.send({
38
36
  name: "evt:gets",
@@ -76,7 +74,15 @@ export function createEventClient(transport) {
76
74
  }
77
75
  }
78
76
  }
77
+ function getEvent(eventName) {
78
+ return {
79
+ addListener: (info, cb) => addListener(eventName, info, cb),
80
+ removeListener,
81
+ emit: (infoSelector, data) => emit(eventName, infoSelector, data),
82
+ };
83
+ }
79
84
  return {
85
+ getEvent,
80
86
  addListener,
81
87
  removeListener,
82
88
  emit,
@@ -1 +1 @@
1
- {"version":3,"file":"event-client.js","sourceRoot":"","sources":["../../src/features/event-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-client.js","sourceRoot":"","sources":["../../src/features/event-client.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { ServiceEventDef } from "@simplysm/service-common";
3
3
  import type { BlobInput, FileCollection } from "./types/browser-compat";
4
4
  import type { ServiceConnectionOptions } from "./types/connection-options";
5
5
  import type { ServiceProgress, ServiceProgressState } from "./types/progress.types";
6
+ import { type ClientEventProxy } from "./features/event-client";
6
7
  interface ServiceClientEvents {
7
8
  "request-progress": ServiceProgressState;
8
9
  "response-progress": ServiceProgressState;
@@ -26,9 +27,10 @@ export declare class ServiceClient extends EventEmitter<ServiceClientEvents> {
26
27
  close(): Promise<void>;
27
28
  send(serviceName: string, methodName: string, params: unknown[], progress?: ServiceProgress): Promise<unknown>;
28
29
  auth(token: string): Promise<void>;
29
- addListener<TInfo, TData>(eventDef: ServiceEventDef<TInfo, TData>, info: TInfo, cb: (data: TData) => PromiseLike<void>): Promise<string>;
30
+ getEvent<TEventDef extends ServiceEventDef>(eventName: string): ClientEventProxy<TEventDef>;
31
+ addListener<TEventDef extends ServiceEventDef>(eventName: string, info: TEventDef["$info"], cb: (data: TEventDef["$data"]) => PromiseLike<void>): Promise<string>;
30
32
  removeListener(key: string): Promise<void>;
31
- emitEvent<TInfo, TData>(eventDef: ServiceEventDef<TInfo, TData>, infoSelector: (item: TInfo) => boolean, data: TData): Promise<void>;
33
+ emitEvent<TEventDef extends ServiceEventDef>(eventName: string, infoSelector: (item: TEventDef["$info"]) => boolean, data: TEventDef["$data"]): Promise<void>;
32
34
  uploadFile(files: File[] | FileCollection | {
33
35
  name: string;
34
36
  data: BlobInput;
@@ -1 +1 @@
1
- {"version":3,"file":"service-client.d.ts","sourceRoot":"","sources":["../src/service-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AASpF,UAAU,mBAAmB;IAC3B,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAC;CAClD;AAED,qBAAa,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;aAoBhD,IAAI,EAAE,MAAM;aACZ,OAAO,EAAE,wBAAwB;IAnBnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,UAAU,CAAC,CAAS;IAG5B,IAAI,SAAS,YAEZ;IACD,IAAI,OAAO,WAGV;gBAGiB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,wBAAwB;IAmCnD,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC;IAW3D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EAAE,EACjB,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,OAAO,CAAC;IAuBb,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,WAAW,CAAC,KAAK,EAAE,KAAK,EAC5B,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;IAKZ,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,KAAK,EAAE,KAAK,EAC1B,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;IAIV,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAAE;IAS/E,kBAAkB,CAAC,OAAO,EAAE,MAAM;CAGzC;AAGD,MAAM,MAAM,YAAY,CAAC,QAAQ,IAAI;KAClC,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACpE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACnC,KAAK;CACV,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,aAAa,CAElG"}
1
+ {"version":3,"file":"service-client.d.ts","sourceRoot":"","sources":["../src/service-client.ts"],"names":[],"mappings":"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"}
@@ -96,16 +96,19 @@ export class ServiceClient extends EventEmitter {
96
96
  await this._transport.send({ name: "auth", body: token });
97
97
  this._authToken = token;
98
98
  }
99
- async addListener(eventDef, info, cb) {
99
+ getEvent(eventName) {
100
+ return this._eventClient.getEvent(eventName);
101
+ }
102
+ async addListener(eventName, info, cb) {
100
103
  if (!this.connected)
101
104
  throw new Error("서버에 연결되지 않았습니다.");
102
- return this._eventClient.addListener(eventDef, info, cb);
105
+ return this._eventClient.addListener(eventName, info, cb);
103
106
  }
104
107
  async removeListener(key) {
105
108
  await this._eventClient.removeListener(key);
106
109
  }
107
- async emitEvent(eventDef, infoSelector, data) {
108
- await this._eventClient.emit(eventDef, infoSelector, data);
110
+ async emitEvent(eventName, infoSelector, data) {
111
+ await this._eventClient.emit(eventName, infoSelector, data);
109
112
  }
110
113
  async uploadFile(files) {
111
114
  if (this._authToken == null) {
@@ -1 +1 @@
1
- {"version":3,"file":"service-client.js","sourceRoot":"","sources":["../src/service-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-client.js","sourceRoot":"","sources":["../src/service-client.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAKjE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAuB,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAA2C,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAA8B,MAAM,oCAAoC,CAAC;AAE7G,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAS/D,MAAM,OAAO,aAAc,SAAQ,YAAiC;IAoBhD;IACA;IApBlB,KAAK;IACY,OAAO,CAAiB;IACxB,UAAU,CAAmB;IAC7B,YAAY,CAAc;IAC1B,WAAW,CAAa;IAExB,gBAAgB,CAAwB;IACjD,UAAU,CAAU;IAE5B,SAAS;IACT,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IACD,IAAI,OAAO;QACT,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,OAAO,GAAG,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAED,YACkB,IAAY,EACZ,OAAiC;QAEjD,KAAK,EAAE,CAAC;QAHQ,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAA0B;QAIjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,MAAM,KAAK,GAAG,GAAG,UAAU,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QAEnE,SAAS;QACT,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7D,UAAU;QACV,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAE1B,sBAAsB;YACtB,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;wBAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;oBAC1C,CAAC;oBACD,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAC3C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,wBAAwB;IACxB,UAAU,CAAW,WAAmB;QACtC,OAAO,IAAI,KAAK,CAAC,EAA4B,EAAE;YAC7C,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACrB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO,KAAK,EAAE,GAAG,MAAiB,EAAE,EAAE;oBACpC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,WAAmB,EACnB,UAAkB,EAClB,MAAiB,EACjB,QAA0B;QAE1B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB;YACE,IAAI,EAAE,GAAG,WAAW,IAAI,UAAU,EAAE;YACpC,IAAI,EAAE,MAAM;SACb,EACD;YACE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;gBACrC,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBACtC,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;gBACpC,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,QAAQ,CACN,SAAiB;QAEjB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAY,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,IAAwB,EACxB,EAAmD;QAEnD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAY,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,YAAmD,EACnD,IAAwB;QAExB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAY,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAoE;QACnF,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AASD,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAiC;IACjF,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/service-client",
3
- "version": "14.0.27",
3
+ "version": "14.0.28",
4
4
  "description": "심플리즘 패키지 - 서비스 (client)",
5
5
  "author": "심플리즘",
6
6
  "license": "Apache-2.0",
@@ -19,9 +19,9 @@
19
19
  "sideEffects": false,
20
20
  "dependencies": {
21
21
  "consola": "^3.4.2",
22
- "@simplysm/core-common": "14.0.27",
23
- "@simplysm/service-common": "14.0.27",
24
- "@simplysm/orm-common": "14.0.27"
22
+ "@simplysm/core-common": "14.0.28",
23
+ "@simplysm/orm-common": "14.0.28",
24
+ "@simplysm/service-common": "14.0.28"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/ws": "^8.18.1",
@@ -5,17 +5,32 @@ import consola from "consola";
5
5
 
6
6
  const logger = consola.withTag("service-client:EventClient");
7
7
 
8
+ export interface ClientEventProxy<TEventDef extends ServiceEventDef> {
9
+ addListener(
10
+ info: TEventDef["$info"],
11
+ cb: (data: TEventDef["$data"]) => PromiseLike<void>,
12
+ ): Promise<string>;
13
+ removeListener(key: string): Promise<void>;
14
+ emit(
15
+ infoSelector: (item: TEventDef["$info"]) => boolean,
16
+ data: TEventDef["$data"],
17
+ ): Promise<void>;
18
+ }
19
+
8
20
  export interface EventClient {
9
- addListener<TInfo, TData>(
10
- eventDef: ServiceEventDef<TInfo, TData>,
11
- info: TInfo,
12
- cb: (data: TData) => PromiseLike<void>,
21
+ getEvent<TEventDef extends ServiceEventDef>(
22
+ eventName: string,
23
+ ): ClientEventProxy<TEventDef>;
24
+ addListener<TEventDef extends ServiceEventDef>(
25
+ eventName: string,
26
+ info: TEventDef["$info"],
27
+ cb: (data: TEventDef["$data"]) => PromiseLike<void>,
13
28
  ): Promise<string>;
14
29
  removeListener(key: string): Promise<void>;
15
- emit<TInfo, TData>(
16
- eventDef: ServiceEventDef<TInfo, TData>,
17
- infoSelector: (item: TInfo) => boolean,
18
- data: TData,
30
+ emit<TEventDef extends ServiceEventDef>(
31
+ eventName: string,
32
+ infoSelector: (item: TEventDef["$info"]) => boolean,
33
+ data: TEventDef["$data"],
19
34
  ): Promise<void>;
20
35
  resubscribeAll(): Promise<void>;
21
36
  }
@@ -30,13 +45,12 @@ export function createEventClient(transport: ServiceTransport): EventClient {
30
45
  await executeByKey(keys, data);
31
46
  });
32
47
 
33
- async function addListener<TInfo, TData>(
34
- eventDef: ServiceEventDef<TInfo, TData>,
35
- info: TInfo,
36
- cb: (data: TData) => PromiseLike<void>,
48
+ async function addListener<TEventDef extends ServiceEventDef>(
49
+ eventName: string,
50
+ info: TEventDef["$info"],
51
+ cb: (data: TEventDef["$data"]) => PromiseLike<void>,
37
52
  ): Promise<string> {
38
53
  const key = Uuid.generate().toString();
39
- const eventName = eventDef.eventName;
40
54
 
41
55
  // 서버에 등록 요청 전송
42
56
  await transport.send({
@@ -63,18 +77,17 @@ export function createEventClient(transport: ServiceTransport): EventClient {
63
77
  }
64
78
  }
65
79
 
66
- async function emit<TInfo, TData>(
67
- eventDef: ServiceEventDef<TInfo, TData>,
68
- infoSelector: (item: TInfo) => boolean,
69
- data: TData,
80
+ async function emit<TEventDef extends ServiceEventDef>(
81
+ eventName: string,
82
+ infoSelector: (item: TEventDef["$info"]) => boolean,
83
+ data: TEventDef["$data"],
70
84
  ): Promise<void> {
71
- const eventName = eventDef.eventName;
72
85
 
73
86
  // 서버에 'gets' 요청을 보내 대상 목록 조회
74
87
  const listenerInfos = (await transport.send({
75
88
  name: "evt:gets",
76
89
  body: { name: eventName },
77
- })) as { key: string; info: TInfo }[];
90
+ })) as { key: string; info: TEventDef["$info"] }[];
78
91
 
79
92
  const targetKeys = listenerInfos
80
93
  .filter((item) => infoSelector(item.info))
@@ -118,7 +131,18 @@ export function createEventClient(transport: ServiceTransport): EventClient {
118
131
  }
119
132
  }
120
133
 
134
+ function getEvent<TEventDef extends ServiceEventDef>(
135
+ eventName: string,
136
+ ): ClientEventProxy<TEventDef> {
137
+ return {
138
+ addListener: (info, cb) => addListener<TEventDef>(eventName, info, cb),
139
+ removeListener,
140
+ emit: (infoSelector, data) => emit<TEventDef>(eventName, infoSelector, data),
141
+ };
142
+ }
143
+
121
144
  return {
145
+ getEvent,
122
146
  addListener,
123
147
  removeListener,
124
148
  emit,
@@ -8,7 +8,7 @@ import type { ServiceConnectionOptions } from "./types/connection-options";
8
8
  import type { ServiceProgress, ServiceProgressState } from "./types/progress.types";
9
9
  import { createServiceTransport, type ServiceTransport } from "./transport/service-transport";
10
10
  import { createSocketProvider, type SocketProvider } from "./transport/socket-provider";
11
- import { createEventClient, type EventClient } from "./features/event-client";
11
+ import { createEventClient, type ClientEventProxy, type EventClient } from "./features/event-client";
12
12
  import { createFileClient, type FileClient } from "./features/file-client";
13
13
  import { createClientProtocolWrapper, type ClientProtocolWrapper } from "./protocol/client-protocol-wrapper";
14
14
 
@@ -130,25 +130,31 @@ export class ServiceClient extends EventEmitter<ServiceClientEvents> {
130
130
  this._authToken = token;
131
131
  }
132
132
 
133
- async addListener<TInfo, TData>(
134
- eventDef: ServiceEventDef<TInfo, TData>,
135
- info: TInfo,
136
- cb: (data: TData) => PromiseLike<void>,
133
+ getEvent<TEventDef extends ServiceEventDef>(
134
+ eventName: string,
135
+ ): ClientEventProxy<TEventDef> {
136
+ return this._eventClient.getEvent<TEventDef>(eventName);
137
+ }
138
+
139
+ async addListener<TEventDef extends ServiceEventDef>(
140
+ eventName: string,
141
+ info: TEventDef["$info"],
142
+ cb: (data: TEventDef["$data"]) => PromiseLike<void>,
137
143
  ): Promise<string> {
138
144
  if (!this.connected) throw new Error("서버에 연결되지 않았습니다.");
139
- return this._eventClient.addListener(eventDef, info, cb);
145
+ return this._eventClient.addListener<TEventDef>(eventName, info, cb);
140
146
  }
141
147
 
142
148
  async removeListener(key: string): Promise<void> {
143
149
  await this._eventClient.removeListener(key);
144
150
  }
145
151
 
146
- async emitEvent<TInfo, TData>(
147
- eventDef: ServiceEventDef<TInfo, TData>,
148
- infoSelector: (item: TInfo) => boolean,
149
- data: TData,
152
+ async emitEvent<TEventDef extends ServiceEventDef>(
153
+ eventName: string,
154
+ infoSelector: (item: TEventDef["$info"]) => boolean,
155
+ data: TEventDef["$data"],
150
156
  ): Promise<void> {
151
- await this._eventClient.emit(eventDef, infoSelector, data);
157
+ await this._eventClient.emit<TEventDef>(eventName, infoSelector, data);
152
158
  }
153
159
 
154
160
  async uploadFile(files: File[] | FileCollection | { name: string; data: BlobInput }[]) {