@sfutureapps/gateway-sdk 1.0.18 → 1.0.20

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/client.d.ts CHANGED
@@ -1,9 +1,22 @@
1
+ export type GatewayRequestOptions = {
2
+ /** Extra headers to send with gateway requests (e.g., Authorization). */
3
+ headers?: HeadersInit;
4
+ /** Override the gateway endpoint path (default: `/api/gateway`). */
5
+ endpoint?: string;
6
+ /** Pass through fetch options if needed. */
7
+ credentials?: RequestCredentials;
8
+ signal?: AbortSignal;
9
+ /** For environments where you want to inject a custom fetch implementation. */
10
+ fetch?: typeof fetch;
11
+ };
12
+ export type GatewayMethod<TResult = unknown, TPayload = unknown> = (payload?: TPayload, options?: GatewayRequestOptions) => Promise<TResult>;
1
13
  export type GatewayServiceProxy<TResult = unknown, TPayload = unknown> = {
2
- [methodName: string]: (payload?: TPayload) => Promise<TResult>;
14
+ [methodName: string]: GatewayMethod<TResult, TPayload>;
3
15
  };
4
16
  export declare class CreateApiClient {
5
17
  baseUrl: string;
6
- constructor(baseUrl: string);
7
- call<TResult = unknown, TPayload = unknown>(service: string): GatewayServiceProxy<TResult, TPayload>;
18
+ private defaultOptions;
19
+ constructor(baseUrl: string, defaultOptions?: GatewayRequestOptions);
20
+ call<TResult = unknown, TPayload = unknown>(service: string, serviceOptions?: GatewayRequestOptions): GatewayServiceProxy<TResult, TPayload>;
8
21
  }
9
22
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,mBAAmB,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI;IACvE,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE,CAAC;AAEF,qBAAa,eAAe;IACP,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAElC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC;CAuBrG"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,qBAAqB,GAAG;IAClC,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7I,MAAM,MAAM,mBAAmB,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI;IACvE,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;CACxD,CAAC;AAWF,qBAAa,eAAe;IACP,OAAO,EAAE,MAAM;IAAE,OAAO,CAAC,cAAc;gBAAvC,OAAO,EAAE,MAAM,EAAU,cAAc,GAAE,qBAA0B;IAEtF,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAE,qBAA0B,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC;CAgCjJ"}
package/dist/client.js CHANGED
@@ -1,20 +1,37 @@
1
+ function mergeHeaders(base, extra) {
2
+ if (!base && !extra)
3
+ return undefined;
4
+ const merged = new Headers(base);
5
+ if (extra) {
6
+ new Headers(extra).forEach((value, key) => merged.set(key, value));
7
+ }
8
+ return merged;
9
+ }
1
10
  export class CreateApiClient {
2
- constructor(baseUrl) {
11
+ constructor(baseUrl, defaultOptions = {}) {
3
12
  this.baseUrl = baseUrl;
13
+ this.defaultOptions = defaultOptions;
4
14
  }
5
- call(service) {
15
+ call(service, serviceOptions = {}) {
6
16
  return new Proxy({}, {
7
17
  get: (_target, fn) => {
8
18
  if (typeof fn !== "string")
9
19
  return undefined;
10
- return async (payload) => {
20
+ return async (payload, requestOptions = {}) => {
11
21
  const form = new FormData();
12
22
  form.append("class", service);
13
23
  form.append("function", fn);
14
24
  form.append("payload", JSON.stringify(payload ?? {}));
15
- const response = await fetch(`${this.baseUrl}/api/gateway`, {
25
+ const fetchImpl = requestOptions.fetch ?? serviceOptions.fetch ?? this.defaultOptions.fetch ?? fetch;
26
+ const endpoint = requestOptions.endpoint ?? serviceOptions.endpoint ?? this.defaultOptions.endpoint ?? "/api/gateway";
27
+ const url = `${this.baseUrl}${endpoint}`;
28
+ const headers = mergeHeaders(mergeHeaders(this.defaultOptions.headers, serviceOptions.headers), requestOptions.headers);
29
+ const response = await fetchImpl(url, {
16
30
  method: "POST",
17
31
  body: form,
32
+ headers,
33
+ credentials: requestOptions.credentials ?? serviceOptions.credentials ?? this.defaultOptions.credentials,
34
+ signal: requestOptions.signal ?? serviceOptions.signal ?? this.defaultOptions.signal,
18
35
  });
19
36
  const json = (await response.json());
20
37
  if (json.code !== 1)
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,eAAe;IAC1B,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEtC,IAAI,CAAwC,OAAe;QACzD,OAAO,IAAI,KAAK,CAAC,EAA4C,EAAE;YAC7D,GAAG,EAAE,CAAC,OAAO,EAAE,EAAmB,EAAE,EAAE;gBACpC,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAE7C,OAAO,KAAK,EAAE,OAAkB,EAAoB,EAAE;oBACpD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;oBAEtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,EAAE;wBAC1D,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC;oBAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;oBACjE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC/C,OAAO,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAwBA,SAAS,YAAY,CAAC,IAAkB,EAAE,KAAmB;IAC3D,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,eAAe;IAC1B,YAAmB,OAAe,EAAU,iBAAwC,EAAE;QAAnE,YAAO,GAAP,OAAO,CAAQ;QAAU,mBAAc,GAAd,cAAc,CAA4B;IAAG,CAAC;IAE1F,IAAI,CAAwC,OAAe,EAAE,iBAAwC,EAAE;QACrG,OAAO,IAAI,KAAK,CAAC,EAA4C,EAAE;YAC7D,GAAG,EAAE,CAAC,OAAO,EAAE,EAAmB,EAAE,EAAE;gBACpC,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAE7C,OAAO,KAAK,EAAE,OAAkB,EAAE,iBAAwC,EAAE,EAAoB,EAAE;oBAChG,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;oBAEtD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC;oBACrG,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC;oBACtH,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;oBAEzC,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;oBAExH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;wBACpC,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI;wBACV,OAAO;wBACP,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,cAAc,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW;wBACxG,MAAM,EAAE,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;qBACrF,CAAC,CAAC;oBAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;oBACjE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC/C,OAAO,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sfutureapps/gateway-sdk",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",