@gaias/client_node 1.1.3 → 1.1.5
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.
|
@@ -20,10 +20,6 @@ export interface RestClientBackend {
|
|
|
20
20
|
load(rc: RestClient): Promise<APIConfig>;
|
|
21
21
|
headers(): Promise<any>;
|
|
22
22
|
}
|
|
23
|
-
export interface RestClientOptions {
|
|
24
|
-
proxy?: string;
|
|
25
|
-
isDevelopment?: boolean;
|
|
26
|
-
}
|
|
27
23
|
export declare class CallChain {
|
|
28
24
|
private api;
|
|
29
25
|
private client;
|
|
@@ -47,9 +43,11 @@ export declare class RestClient {
|
|
|
47
43
|
static onStart?: (req: InternalAxiosRequestConfig) => InternalAxiosRequestConfig | void;
|
|
48
44
|
static onStop?: (response: AxiosResponse) => AxiosResponse | void;
|
|
49
45
|
static onResponseError?: (error: RestClientError) => boolean;
|
|
46
|
+
hook: (reqCfg: InternalAxiosRequestConfig) => InternalAxiosRequestConfig;
|
|
50
47
|
client: AxiosInstance;
|
|
51
48
|
get apiConfig(): APIConfig | undefined;
|
|
52
|
-
|
|
49
|
+
private rewriteEndpointForDevelopment;
|
|
50
|
+
constructor(backend: RestClientBackend, commonParam?: any);
|
|
53
51
|
preload(): Promise<void>;
|
|
54
52
|
api(api: string): CallChain;
|
|
55
53
|
call<T = any>(api: string, pathParam?: URIParam, urlParam?: URIParam, data?: unknown, headers?: HeaderParam): Promise<T | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestClient.d.ts","sourceRoot":"","sources":["../../src/restclient/RestClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,OAAO,CAAC;AAGhG,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"RestClient.d.ts","sourceRoot":"","sources":["../../src/restclient/RestClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,21 +48,28 @@ class RestClient {
|
|
|
48
48
|
get apiConfig() {
|
|
49
49
|
return this.config;
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
rewriteEndpointForDevelopment(endPoint, proxy) {
|
|
52
|
+
if (!endPoint || process.env.NODE_ENV !== 'development' || !proxy)
|
|
53
|
+
return endPoint;
|
|
54
|
+
const proxyUrl = new URL(proxy);
|
|
55
|
+
const proxyBase = `${proxyUrl.protocol}//${proxyUrl.host}`;
|
|
56
|
+
const proxyPath = proxyUrl.pathname.replace(/\/$/, '');
|
|
57
|
+
const match = endPoint.match(/^http:\/\/[^:]+:3000(\/.*)$/);
|
|
58
|
+
if (match) {
|
|
59
|
+
const endpointPath = match[1];
|
|
60
|
+
const finalPath = endpointPath.startsWith(proxyPath)
|
|
61
|
+
? endpointPath
|
|
62
|
+
: proxyPath + endpointPath;
|
|
63
|
+
const rewritten = proxyBase + finalPath;
|
|
64
|
+
console.log(`RestClient URL rewritten: ${endPoint} -> ${rewritten}`);
|
|
65
|
+
return rewritten;
|
|
66
|
+
}
|
|
67
|
+
return endPoint;
|
|
68
|
+
}
|
|
69
|
+
constructor(backend, commonParam = {}) {
|
|
52
70
|
this.backend = backend;
|
|
53
71
|
this.commonParam = commonParam;
|
|
54
72
|
this.client = axios_1.default.create();
|
|
55
|
-
if (options?.isDevelopment && options?.proxy) {
|
|
56
|
-
this.client.interceptors.request.use((config) => {
|
|
57
|
-
if (config.url) {
|
|
58
|
-
const containerUrlPattern = /^http:\/\/([a-z0-9-]+):3000\/api\//;
|
|
59
|
-
if (containerUrlPattern.test(config.url)) {
|
|
60
|
-
config.url = config.url.replace(containerUrlPattern, `${options.proxy}/`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return config;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
73
|
this.client.interceptors.request.use((req) => {
|
|
67
74
|
if (RestClient.onStart) {
|
|
68
75
|
const newReq = RestClient.onStart(req);
|
|
@@ -98,19 +105,24 @@ class RestClient {
|
|
|
98
105
|
}
|
|
99
106
|
let method = undefined;
|
|
100
107
|
let endPoint = undefined;
|
|
108
|
+
const proxy = process.env['http_proxy'] || process.env['HTTP_PROXY'];
|
|
109
|
+
const env = process.env.NODE_ENV;
|
|
110
|
+
const isDevelopment = env === 'development';
|
|
111
|
+
console.log(`RestClient string isDevelopment:${isDevelopment} , proxy: ${proxy}`);
|
|
101
112
|
if (typeof def === 'string') {
|
|
102
113
|
method = 'GET';
|
|
103
114
|
endPoint = renderTemplate(def, Object.assign({}, this.commonParam, pathParam ?? {}));
|
|
104
|
-
console.log(`RestClient def: ${def}`);
|
|
105
|
-
console.log(`RestClient endPoint: ${endPoint}`);
|
|
115
|
+
console.log(`RestClient string def: ${def}`);
|
|
116
|
+
console.log(`RestClient string endPoint: ${endPoint}`);
|
|
106
117
|
}
|
|
107
118
|
else if (typeof def === 'object') {
|
|
108
119
|
const tDef = def;
|
|
109
120
|
method = tDef.method ?? 'GET';
|
|
110
121
|
endPoint = renderTemplate(tDef.endPoint, Object.assign({}, this.commonParam, pathParam ?? {}));
|
|
111
|
-
console.log(`RestClient def: ${JSON.stringify(tDef)}`);
|
|
112
|
-
console.log(`RestClient endPoint: ${endPoint}`);
|
|
122
|
+
console.log(`RestClient object def: ${JSON.stringify(tDef)}`);
|
|
123
|
+
console.log(`RestClient object endPoint: ${endPoint}`);
|
|
113
124
|
}
|
|
125
|
+
endPoint = this.rewriteEndpointForDevelopment(endPoint, proxy);
|
|
114
126
|
const newHeaders = Object.assign({}, (await this.backend.headers()) ?? {}, headers ?? {});
|
|
115
127
|
if (process.env.NODE_ENV === 'development') {
|
|
116
128
|
console.log('RestClient', `Headers: ${JSON.stringify(newHeaders)}`);
|
|
@@ -118,9 +130,15 @@ class RestClient {
|
|
|
118
130
|
try {
|
|
119
131
|
const requestCfg = {
|
|
120
132
|
responseType: 'json',
|
|
121
|
-
url: endPoint,
|
|
122
|
-
|
|
133
|
+
url: endPoint,
|
|
134
|
+
method: method,
|
|
135
|
+
params: urlParam,
|
|
136
|
+
data,
|
|
137
|
+
headers: newHeaders.headers ? newHeaders.headers : newHeaders,
|
|
123
138
|
};
|
|
139
|
+
if (this.hook) {
|
|
140
|
+
Object.assign(requestCfg, this.hook(requestCfg));
|
|
141
|
+
}
|
|
124
142
|
const resp = await this.client.request(requestCfg);
|
|
125
143
|
return resp.data;
|
|
126
144
|
}
|
|
@@ -164,6 +182,8 @@ class RestClient {
|
|
|
164
182
|
endPoint = renderTemplate(tDef.endPoint, Object.assign({}, this.commonParam, pathParam ?? {}));
|
|
165
183
|
}
|
|
166
184
|
if (endPoint) {
|
|
185
|
+
const proxy = process.env['http_proxy'] || process.env['HTTP_PROXY'];
|
|
186
|
+
endPoint = this.rewriteEndpointForDevelopment(endPoint, proxy);
|
|
167
187
|
return { endPoint: `${endPoint}?${new whatwg_url_1.URLSearchParams(urlParam ?? {}).toString()}`, method };
|
|
168
188
|
}
|
|
169
189
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/restclient/RestClient.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgG;AAChG,4DAA6B;AAC7B,wDAAgC;AAChC,2CAA6C;
|
|
1
|
+
{"version":3,"file":"RestClient.js","sourceRoot":"","sources":["../../src/restclient/RestClient.ts"],"names":[],"mappings":"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"}
|