@sfutureapps/gateway-sdk 1.0.3 → 1.0.6

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
1
  export type GatewayServiceProxy<TResult = unknown, TPayload = unknown> = {
2
2
  [methodName: string]: (payload?: TPayload) => Promise<TResult>;
3
3
  };
4
- export declare class FastAdminGatewayClient {
4
+ export type GatewayRequestOptions = {
5
+ /** Extra headers to send with every gateway request (e.g., Authorization). */
6
+ headers?: HeadersInit;
7
+ /** Override the gateway endpoint path (default: `/api/gateway`). */
8
+ endpoint?: string;
9
+ /** Pass through fetch options if needed. */
10
+ credentials?: RequestCredentials;
11
+ signal?: AbortSignal;
12
+ /** For environments where you want to inject a custom fetch implementation. */
13
+ fetch?: typeof fetch;
14
+ };
15
+ export declare class ApiSdkClient {
5
16
  baseUrl: string;
6
- constructor(baseUrl: string);
7
- call<TResult = unknown, TPayload = unknown>(service: string): GatewayServiceProxy<TResult, TPayload>;
17
+ private defaultOptions;
18
+ constructor(baseUrl: string, defaultOptions?: GatewayRequestOptions);
19
+ call<TResult = unknown, TPayload = unknown>(service: string, options?: GatewayRequestOptions): GatewayServiceProxy<TResult, TPayload>;
8
20
  }
21
+ export declare function createClient(baseUrl: string, options?: GatewayRequestOptions): ApiSdkClient;
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,sBAAsB;IACd,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;CA0BrG"}
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,MAAM,MAAM,qBAAqB,GAAG;IAClC,8EAA8E;IAC9E,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;AAWF,qBAAa,YAAY;IAEd,OAAO,EAAE,MAAM;IACtB,OAAO,CAAC,cAAc;gBADf,OAAO,EAAE,MAAM,EACd,cAAc,GAAE,qBAA0B;IAGpD,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,EACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA0B,GAClC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC;CAkC1C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,gBAE5E"}
package/dist/client.js CHANGED
@@ -1,8 +1,18 @@
1
- export class FastAdminGatewayClient {
2
- constructor(baseUrl) {
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
+ }
10
+ export class ApiSdkClient {
11
+ constructor(baseUrl, defaultOptions = {}) {
3
12
  this.baseUrl = baseUrl;
13
+ this.defaultOptions = defaultOptions;
4
14
  }
5
- call(service) {
15
+ call(service, options = {}) {
6
16
  return new Proxy({}, {
7
17
  get: (_target, fn) => {
8
18
  if (typeof fn !== 'string')
@@ -12,9 +22,16 @@ export class FastAdminGatewayClient {
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 = options.fetch ?? this.defaultOptions.fetch ?? fetch;
26
+ const endpoint = options.endpoint ?? this.defaultOptions.endpoint ?? '/api/gateway';
27
+ const url = `${this.baseUrl}${endpoint}`;
28
+ const headers = mergeHeaders(this.defaultOptions.headers, options.headers);
29
+ const response = await fetchImpl(url, {
16
30
  method: 'POST',
17
- body: form
31
+ body: form,
32
+ headers,
33
+ credentials: options.credentials ?? this.defaultOptions.credentials,
34
+ signal: options.signal ?? this.defaultOptions.signal
18
35
  });
19
36
  const json = (await response.json());
20
37
  if (json.code !== 1)
@@ -25,4 +42,7 @@ export class FastAdminGatewayClient {
25
42
  });
26
43
  }
27
44
  }
45
+ export function createClient(baseUrl, options) {
46
+ return new ApiSdkClient(baseUrl, options);
47
+ }
28
48
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,sBAAsB;IACjC,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEtC,IAAI,CAAwC,OAAe;QACzD,OAAO,IAAI,KAAK,CACd,EAA4C,EAC5C;YACE,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,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAsBA,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,YAAY;IACvB,YACS,OAAe,EACd,iBAAwC,EAAE;QAD3C,YAAO,GAAP,OAAO,CAAQ;QACd,mBAAc,GAAd,cAAc,CAA4B;IACjD,CAAC;IAEJ,IAAI,CACF,OAAe,EACf,UAAiC,EAAE;QAEnC,OAAO,IAAI,KAAK,CACd,EAA4C,EAC5C;YACE,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,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC;oBACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC;oBACpF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;oBACzC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBAE3E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;wBACpC,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI;wBACV,OAAO;wBACP,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW;wBACnE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;qBACrD,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,CACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAA+B;IAC3E,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sfutureapps/gateway-sdk",
3
- "version": "1.0.3",
3
+ "version": "1.0.6",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",