szdl-utils-kit 0.3.24 → 0.3.28
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/Readme.md +6 -6
- package/dist/index.js +1136 -1052
- package/dist/index.umd.cjs +2 -2
- package/dist/types/background-worker.d.ts +8 -0
- package/dist/types/batch.d.ts +3 -1
- package/package.json +1 -1
package/Readme.md
CHANGED
|
@@ -97,11 +97,9 @@ const deals = await bx.batch({
|
|
|
97
97
|
- `appOption(key, value?)` – чтение/запись пользовательских настроек
|
|
98
98
|
- `call({ method, params, updateList })` – одиночный REST-вызов
|
|
99
99
|
- `batch(commandList, progressCall?, options?)` – пакетные вызовы с обновлениями/логом
|
|
100
|
-
- `errorCall(errors)` – вызывается после выполнения всего батча, получает объект с ключами запросов и списком ошибок Bitrix24
|
|
101
|
-
- `updateList` – массив описаний изменений для логера (`method`, `name`, `list[{ id, fields }]`), отображается в истории операций
|
|
100
|
+
- `errorCall(errors)` – вызывается после выполнения всего батча, получает объект с ключами запросов и списком ошибок Bitrix24
|
|
101
|
+
- `updateList` – массив описаний изменений для логера (`method`, `name`, `list[{ id, fields }]`), отображается в истории операций
|
|
102
102
|
- `batchTotalCount(commandList, progressCall?, options?)` – подсчет элементов в пакетном режиме
|
|
103
|
-
- `errorCall(errors)` – вызывается после выполнения всего батча, получает объект с ключами запросов и списком ошибок Bitrix24
|
|
104
|
-
- `updateList` – массив описаний изменений для логера (`method`, `name`, `list[{ id, fields }]`), отображается в истории операций
|
|
105
103
|
- `timeLimit` – глобальный статус лимита выполнения (`{ limit, date }`), можно напрямую читать в компонентах (например, в лоадере)
|
|
106
104
|
- `placementBind(place, userId?)`, `placementUnBind(...)`, `placementCheck()` – работа с встройками (кроме `PAGE_BACKGROUND_WORKER`, их ведёт `BackgroundWorker`)
|
|
107
105
|
- `getBotList()`, `regBot()`, `unRegBot()` – управление чат-ботом
|
|
@@ -187,9 +185,10 @@ await worker.init();
|
|
|
187
185
|
- `bx` – инициализированный экземпляр `BxBoot`, используемый для работы с REST;
|
|
188
186
|
- `appFunc` – функция, которая должна выполниться в «активном» табе;
|
|
189
187
|
- `users` – подготовленные данные (если не переданы, будут запрошены через REST);
|
|
190
|
-
- `continueBackground` – опциональная
|
|
188
|
+
- `continueBackground` – опциональная функция-условие, которая определяет, можно ли запускать воркер. Должна вернуть `true`, чтобы продолжить цикл. По умолчанию всегда возвращает `true`; см. пример ниже.
|
|
191
189
|
- `timing` – объект с таймингами poll-цикла, подтверждения лидерства и разнесённого старта приложений (см. [Тайминги](#тайминги-timing)). Можно передать только нужные поля — остальные возьмутся из `DEFAULT_BACKGROUND_WORKER_TIMING`;
|
|
192
190
|
- `coordinationScope` – область координации лидера и пула вкладок (см. [Область координации](#область-координации-coordinationscope)). По умолчанию `'user'`.
|
|
191
|
+
- `bindGeneralPlacement` – привязывать общую встройку `PAGE_BACKGROUND_WORKER` без `USER_ID`. По умолчанию `true`. При `false` — только персональные встройки для админов (до 10); существующая общая отвязывается. Сочетается с `coordinationScope: 'portal'` (один лидер на портал + персональные встройки у админов для перепривязки).
|
|
193
192
|
|
|
194
193
|
```ts
|
|
195
194
|
const worker = new BackgroundWorker({
|
|
@@ -222,7 +221,8 @@ const worker = new BackgroundWorker({
|
|
|
222
221
|
- В режиме `'user'` записи в entity хранятся с `NAME = userId`, Web Lock тоже per-user.
|
|
223
222
|
- В режиме `'portal'` все вкладки пишутся с общим ключом `NAME = {appCodeName}:portal`, Web Lock — per-portal (per-app).
|
|
224
223
|
- В данных вкладки всегда сохраняется `userId` — в portal-режиме видно, у кого открыта вкладка, хотя `appFunc` выполняется только у лидера.
|
|
225
|
-
- `
|
|
224
|
+
- Персональные встройки (`USER_ID=…`) для админов создаются в обоих режимах — это «крючки» для перепривязки и фоновых вкладок у админов. В `'portal'` они не конкурируют за отдельные задачи: все вкладки (и общая, и персональные) участвуют в **одном** пуле лидерства на портал.
|
|
225
|
+
- При `bindGeneralPlacement: false` общая встройка не нужна даже в `'portal'` — достаточно персональных у админов.
|
|
226
226
|
|
|
227
227
|
```ts
|
|
228
228
|
const worker = new BackgroundWorker({
|