flamerest 1.0.128 → 1.0.131

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.
Files changed (4) hide show
  1. package/REST.d.ts +13 -0
  2. package/REST.js +27 -0
  3. package/REST.ts +31 -0
  4. package/package.json +1 -1
package/REST.d.ts CHANGED
@@ -67,6 +67,11 @@ export declare class FLAMEREST {
67
67
  * Адрес серва
68
68
  */
69
69
  SERVER: string;
70
+ /**
71
+ * Адрес core-сервера (другой хост относительно this.SERVER).
72
+ * Можно установить извне: REST.core_url = "https://core.example.com"
73
+ */
74
+ core_url: string;
70
75
  /**
71
76
  * Стандартное число запросов на страницу
72
77
  */
@@ -127,6 +132,14 @@ export declare class FLAMEREST {
127
132
  * @param {Object} customHeaders объект с доп заголовками, которые надо включить в запрос
128
133
  */
129
134
  request(url: string, params: object | string | FormData, type?: 'GET' | 'POST' | 'PUT' | 'DELETE', responseType?: 'json' | 'blob', isNeedToken?: boolean, customHeaders?: Record<string, string>): Promise<BaseResponse<any> & Partial<Paginated>>;
135
+ /**
136
+ * JSON-запрос к core-серверу (this.core_url), минуя this.SERVER.
137
+ * Токен подставляется только если он уже установлен.
138
+ * @param {string} path Путь относительно core_url (например "/api/foo" или "api/foo")
139
+ * @param {object|string} params Тело запроса — всегда JSON
140
+ * @param {'GET'|'POST'|'PUT'|'DELETE'} method HTTP-метод (по умолчанию POST)
141
+ */
142
+ core(path: string, params?: object | string, method?: 'GET' | 'POST' | 'PUT' | 'DELETE'): Promise<BaseResponse<any> & Partial<Paginated>>;
130
143
  /**
131
144
  * Получить выборку из таблицы через REST
132
145
  * @param {string} table
package/REST.js CHANGED
@@ -8,6 +8,11 @@ export class FLAMEREST {
8
8
  * @param {Function} maintenance_callback Колбек для обработки 503 ошибок (опционально)
9
9
  */
10
10
  constructor(server_address, localhost_endpoint, unauthorized_callback, version, maintenance_callback) {
11
+ /**
12
+ * Адрес core-сервера (другой хост относительно this.SERVER).
13
+ * Можно установить извне: REST.core_url = "https://core.example.com"
14
+ */
15
+ this.core_url = "";
11
16
  /**
12
17
  * Стандартное число запросов на страницу
13
18
  */
@@ -311,6 +316,28 @@ export class FLAMEREST {
311
316
  });
312
317
  }
313
318
  }
319
+ /**
320
+ * JSON-запрос к core-серверу (this.core_url), минуя this.SERVER.
321
+ * Токен подставляется только если он уже установлен.
322
+ * @param {string} path Путь относительно core_url (например "/api/foo" или "api/foo")
323
+ * @param {object|string} params Тело запроса — всегда JSON
324
+ * @param {'GET'|'POST'|'PUT'|'DELETE'} method HTTP-метод (по умолчанию POST)
325
+ */
326
+ async core(path, params = {}, method = 'POST') {
327
+ // Склеиваем core_url и path без двойного слэша (как у SERVER в request)
328
+ let base = this.core_url ?? "";
329
+ if (base.endsWith('/')) {
330
+ base = base.substring(0, base.length - 1);
331
+ }
332
+ if (path.startsWith('/')) {
333
+ path = path.substring(1);
334
+ }
335
+ // Полный URL: request не допишет SERVER, если есть протокол (http://, https:// или //)
336
+ const url = base + (path ? '/' + path : '');
337
+ // needToken: да, только если токен реально установлен
338
+ const isNeedToken = this.token !== null && this.token !== undefined && this.token !== 'undefined' && this.token !== '';
339
+ return this.request(url, params, method, 'json', isNeedToken);
340
+ }
314
341
  /**
315
342
  * Получить выборку из таблицы через REST
316
343
  * @param {string} table
package/REST.ts CHANGED
@@ -77,6 +77,12 @@ export class FLAMEREST {
77
77
  */
78
78
  public SERVER: string;
79
79
 
80
+ /**
81
+ * Адрес core-сервера (другой хост относительно this.SERVER).
82
+ * Можно установить извне: REST.core_url = "https://core.example.com"
83
+ */
84
+ public core_url: string = "";
85
+
80
86
  /**
81
87
  * Стандартное число запросов на страницу
82
88
  */
@@ -437,6 +443,31 @@ export class FLAMEREST {
437
443
  }
438
444
  }
439
445
 
446
+ /**
447
+ * JSON-запрос к core-серверу (this.core_url), минуя this.SERVER.
448
+ * Токен подставляется только если он уже установлен.
449
+ * @param {string} path Путь относительно core_url (например "/api/foo" или "api/foo")
450
+ * @param {object|string} params Тело запроса — всегда JSON
451
+ * @param {'GET'|'POST'|'PUT'|'DELETE'} method HTTP-метод (по умолчанию POST)
452
+ */
453
+ async core(path: string, params: object | string = {}, method: 'GET' | 'POST' | 'PUT' | 'DELETE' = 'POST'): Promise<BaseResponse<any> & Partial<Paginated>> {
454
+ // Склеиваем core_url и path без двойного слэша (как у SERVER в request)
455
+ let base = this.core_url ?? "";
456
+ if (base.endsWith('/')) {
457
+ base = base.substring(0, base.length - 1);
458
+ }
459
+ if (path.startsWith('/')) {
460
+ path = path.substring(1);
461
+ }
462
+ // Полный URL: request не допишет SERVER, если есть протокол (http://, https:// или //)
463
+ const url = base + (path ? '/' + path : '');
464
+
465
+ // needToken: да, только если токен реально установлен
466
+ const isNeedToken = this.token !== null && this.token !== undefined && this.token !== 'undefined' && this.token !== '';
467
+
468
+ return this.request(url, params, method, 'json', isNeedToken);
469
+ }
470
+
440
471
 
441
472
  /**
442
473
  * Получить выборку из таблицы через REST
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flamerest",
3
- "version": "1.0.128",
3
+ "version": "1.0.131",
4
4
  "description": "",
5
5
  "main": "REST.js",
6
6
  "types": "REST.d.ts",