bx-rest 1.2.0 → 1.3.0
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/CHANGELOG.md +13 -0
- package/README.en.md +29 -0
- package/README.md +29 -0
- package/esm2022/rest/base.mjs +3 -3
- package/esm2022/services/http/HttpBX.mjs +26 -12
- package/esm2022/services/http/sessionKey.mjs +8 -1
- package/esm2022/services/navvy/extends/navvy-pag-base.mjs +15 -2
- package/esm2022/services/navvy/navvy-alternative-pagination-navigation.mjs +2 -2
- package/esm2022/services/navvy/navvy-pag-nav-result-key-object.mjs +2 -2
- package/esm2022/services/navvy/navvy-pag-nav-result-key.mjs +2 -2
- package/esm2022/services/navvy/navvy-pag-nav-tasks.mjs +2 -2
- package/esm2022/services/navvy/navvy-pag-nav-with-useless-key.mjs +2 -2
- package/esm2022/services/navvy/navvy-pag.mjs +2 -2
- package/esm2022/typification/settings.mjs +1 -1
- package/fesm2022/bx-rest.mjs +54 -20
- package/fesm2022/bx-rest.mjs.map +1 -1
- package/package.json +1 -1
- package/rest/base.d.ts +1 -1
- package/services/http/HttpBX.d.ts +15 -4
- package/services/http/sessionKey.d.ts +5 -0
- package/services/navvy/extends/navvy-pag-base.d.ts +11 -0
- package/typification/settings.d.ts +7 -0
package/package.json
CHANGED
package/rest/base.d.ts
CHANGED
|
@@ -29,5 +29,5 @@ export declare class BXRest {
|
|
|
29
29
|
readonly socialNetWork: BXRestSocialNetWork;
|
|
30
30
|
readonly pull: BXRestPull;
|
|
31
31
|
profile(): import("rxjs").Observable<import("../typification/rest/base").iBXRestAnswer<iBXRestProfileHttp> | undefined>;
|
|
32
|
-
batch<T>(param: iBXRestParamBatch): import("rxjs").Observable<import("../typification/rest/base").iBXRestAnswer<iBXRestBatch<T>> | undefined>;
|
|
32
|
+
batch<T>(param: iBXRestParamBatch, headers?: Record<string, string>): import("rxjs").Observable<import("../typification/rest/base").iBXRestAnswer<iBXRestBatch<T>> | undefined>;
|
|
33
33
|
}
|
|
@@ -2,6 +2,7 @@ import { Observable } from 'rxjs';
|
|
|
2
2
|
import { HttpServices } from './http';
|
|
3
3
|
import { iBatchRequestAnswer, iBatchRequestParam, iBatchRequestParamArr, iBatchRequestParamHttp, keyBatch } from '../../typification/rest/batch/batchRequestParam';
|
|
4
4
|
import { iBXRestAnswer } from '../../typification/rest/base/answer';
|
|
5
|
+
import { iHttpParamSettings } from '../../typification/rest/settings';
|
|
5
6
|
export declare class HttpBXServices extends HttpServices {
|
|
6
7
|
/**
|
|
7
8
|
* Не считайте этот метод образцом/финальным API.
|
|
@@ -17,17 +18,27 @@ export declare class HttpBXServices extends HttpServices {
|
|
|
17
18
|
*
|
|
18
19
|
* @param name
|
|
19
20
|
* @param params
|
|
21
|
+
* @param restApi
|
|
22
|
+
* @param headers заголовки только для этого запроса, поверх `BXRestSettings.headers`
|
|
20
23
|
*/
|
|
21
|
-
post<T>(name: string[], params?: any, restApi?: boolean): Observable<iBXRestAnswer<T> | undefined>;
|
|
24
|
+
post<T>(name: string[], params?: any, restApi?: boolean, headers?: Record<string, string>): Observable<iBXRestAnswer<T> | undefined>;
|
|
22
25
|
/**
|
|
23
26
|
* Второстепенный метод для запросов. По возможности лучше не использовать
|
|
24
27
|
*
|
|
25
28
|
* @param name
|
|
26
29
|
* @param params
|
|
30
|
+
* @param headers заголовки только для этого запроса, поверх `BXRestSettings.headers`
|
|
27
31
|
*/
|
|
28
|
-
get<T>(name: string[], params?: any): Observable<iBXRestAnswer<T> | undefined>;
|
|
29
|
-
httpPost<T>(url: string, params?: any): Observable<T | undefined>;
|
|
30
|
-
httpGet<T>(url: string, params?: any): Observable<T | undefined>;
|
|
32
|
+
get<T>(name: string[], params?: any, headers?: Record<string, string>): Observable<iBXRestAnswer<T> | undefined>;
|
|
33
|
+
httpPost<T>(url: string, params?: any, settings?: iHttpParamSettings, headers?: Record<string, string>): Observable<T | undefined>;
|
|
34
|
+
httpGet<T>(url: string, params?: any, settings?: iHttpParamSettings, headers?: Record<string, string>): Observable<T | undefined>;
|
|
35
|
+
/**
|
|
36
|
+
* Заголовки запроса: `BXRestSettings.headers`, поверх них — заголовки
|
|
37
|
+
* конкретного запроса, поверх всего — `required`. В `required` идёт
|
|
38
|
+
* `Content-Type`: от него зависит, как сервер разберёт тело, поэтому
|
|
39
|
+
* пользовательские заголовки его не перебивают.
|
|
40
|
+
*/
|
|
41
|
+
private buildHeaders;
|
|
31
42
|
serializeBitrixParams(params: unknown): string;
|
|
32
43
|
getNameMethod(arr: string[]): string;
|
|
33
44
|
}
|
|
@@ -21,6 +21,11 @@ export declare class SessionKeyServices {
|
|
|
21
21
|
* сохраняется историческое поведение: включаем только для `auth.key === 'OAuth2'`.
|
|
22
22
|
*/
|
|
23
23
|
getWithCredentials(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Статичные заголовки из `BXRestSettings.headers` — копия, чтобы правка
|
|
26
|
+
* результата не меняла сами настройки.
|
|
27
|
+
*/
|
|
28
|
+
getHeaders(): Record<string, string>;
|
|
24
29
|
getSessid(): string;
|
|
25
30
|
getAuthParams(): string | undefined;
|
|
26
31
|
getCheckAuthParamsIsOn(): boolean;
|
|
@@ -22,8 +22,19 @@ export declare abstract class NavvyPagBase<T, R, P> {
|
|
|
22
22
|
protected map: ((param: T | undefined) => R | undefined) | undefined;
|
|
23
23
|
protected restApi: boolean;
|
|
24
24
|
protected readonly http: HttpBXServices;
|
|
25
|
+
protected requestHeaders?: Record<string, string>;
|
|
25
26
|
pageSize: number;
|
|
26
27
|
constructor(url: string[], param: P, map?: ((param: T | undefined) => R | undefined) | undefined, restApi?: boolean);
|
|
28
|
+
/**
|
|
29
|
+
* HTTP-заголовки только для этого запроса — поверх `BXRestSettings.headers`
|
|
30
|
+
* (при совпадении имени побеждает значение отсюда). Повторные вызовы
|
|
31
|
+
* дополняют уже заданные заголовки. Действует на `.res()`, `.resVanilla()`,
|
|
32
|
+
* `.mapForVanilla()` и на все batch-запросы `.resAll()`.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* bx.crm.deal.list({ ... }).withHeaders({ 'X-Request-Source': 'report' }).resAll()
|
|
36
|
+
*/
|
|
37
|
+
withHeaders(headers: Record<string, string>): this;
|
|
27
38
|
resVanilla(): Observable<iBXRestAnswer<T> | undefined>;
|
|
28
39
|
mapForVanilla(): Observable<iBXRestAnswer<ReturnTypeNavvy<T, R>> | undefined>;
|
|
29
40
|
res(options?: BXRestResOptions): Observable<ReturnTypeNavvy<T, R> | undefined>;
|
|
@@ -17,4 +17,11 @@ export interface iBXRestSettings {
|
|
|
17
17
|
* а браузер должен приложить cookie сессии этого прокси (не Bitrix24).
|
|
18
18
|
*/
|
|
19
19
|
withCredentials?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Статичные HTTP-заголовки, которые прикладываются к каждому запросу,
|
|
22
|
+
* например `{ 'X-Bitrix-App': 'smart-process-pro' }`. Для одного запроса
|
|
23
|
+
* их можно дополнить или перебить через `.withHeaders()`. `Content-Type`
|
|
24
|
+
* библиотека всегда выставляет сама — от него зависит формат тела запроса.
|
|
25
|
+
*/
|
|
26
|
+
headers?: Record<string, string>;
|
|
20
27
|
}
|