szdl-utils-kit 0.3.30 → 0.3.32
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 +31 -2
- package/dist/bx24-local-source-5d9164ce.js +1491 -0
- package/dist/index.js +1188 -1074
- package/dist/index.umd.cjs +1489 -2
- package/dist/legacy/bx24-loader.legacy.js +1488 -0
- package/dist/types/background-worker.d.ts +7 -0
- package/dist/types/batch.d.ts +6 -1
- package/dist/types/bx24-loader.d.ts +16 -0
- package/dist/types/index.d.ts +10 -0
- package/package.json +47 -45
package/Readme.md
CHANGED
|
@@ -317,6 +317,34 @@ const worker = new BackgroundWorker({
|
|
|
317
317
|
|
|
318
318
|
- **`init`** – регистрирует бек-встройку для текущего пользователя, создаёт запись текущего таба и запускает цикл наблюдения.
|
|
319
319
|
- **`ensureAdminPlacements`** – для админа, обновляет фоновые встройки без запуска фонового цикла. `placement.unbind` и `placement.bind` выполняются одним `batch` (сначала отвязка, затем привязка), чтобы не оставлять портал без встройки между запросами.
|
|
320
|
+
- **`ensureAdminPlacementsBeforeAppInit`** – опция конструктора: перед `appFunc` у админа вызвать `ensureAdminPlacements`. Можно передать `true` или функцию-условие `(worker) => boolean`.
|
|
321
|
+
|
|
322
|
+
### loadBx24 — подключение BX24 с фолбэками
|
|
323
|
+
|
|
324
|
+
Библиотека BX24 подключается по цепочке: `//api.bitrix24.com/api/v1/` → `//api.bitrix24.tech/api/v1/` (по 3 секунды на каждый) → локальная копия, вшитая в utils-kit. Локальная копия лежит отдельным чанком и скачивается, только если оба удалённых источника не сработали.
|
|
325
|
+
|
|
326
|
+
`BxBoot.init()` вызывает `loadBx24()` сам — тег `<script src="//api.bitrix24.com/api/v1/">` в HTML больше не нужен (если он остался, загрузчик увидит готовый `BX24` и ничего не будет грузить). Для кода, который работает с `BX24` без `BxBoot`:
|
|
327
|
+
|
|
328
|
+
```ts
|
|
329
|
+
import { loadBx24 } from "szdl-utils-kit";
|
|
330
|
+
|
|
331
|
+
const { source } = await loadBx24(); // "preloaded" | "com" | "tech" | "local"
|
|
332
|
+
BX24.init(() => { /* ... */ });
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Если скрипт загрузился, но BX24 не инициализировался (приложение открыто вне фрейма Битрикс24), остальные источники не перебираются — промис отклоняется с `Bx24EnvironmentError`.
|
|
336
|
+
|
|
337
|
+
Обновить локальную копию: `npm run update:bx24-local`.
|
|
338
|
+
|
|
339
|
+
#### Старые приложения (без обновления utils-kit)
|
|
340
|
+
|
|
341
|
+
`npm run build` дополнительно собирает самодостаточный файл `dist/legacy/bx24-loader.legacy.js` (та же логика + локальная копия BX24 внутри, без зависимостей). Положите его в статику приложения и замените им старый тег:
|
|
342
|
+
|
|
343
|
+
```html
|
|
344
|
+
<script src="bx24-loader.legacy.js"></script>
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
Загрузка асинхронная, поэтому до её завершения в `window.BX24` стоит заглушка, которая копит вызовы `BX24.init(cb)` и `BX24.install(cb)` и передаёт их настоящему BX24 после загрузки. Старый `BxBoot.init()` и inline-вызовы `BX24.init(...)` сразу после тега продолжают работать. Другие методы `BX24` до `init` вызывать нельзя. Промис загрузки доступен как `window.szdlBx24Ready`.
|
|
320
348
|
|
|
321
349
|
### tempus
|
|
322
350
|
|
|
@@ -334,11 +362,12 @@ const formatted = tempus().format("%Y-%m-%d");
|
|
|
334
362
|
|
|
335
363
|
- `types/batch.d.ts` – детальное описание Batch;
|
|
336
364
|
- `types/bx-boot.d.ts`, `types/bx-helper.d.ts`, `types/bx-logger.d.ts`;
|
|
337
|
-
- `types/background-worker.d.ts` – в том числе `BackgroundWorkerTiming`, `DEFAULT_BACKGROUND_WORKER_TIMING
|
|
365
|
+
- `types/background-worker.d.ts` – в том числе `BackgroundWorkerTiming`, `DEFAULT_BACKGROUND_WORKER_TIMING`;
|
|
366
|
+
- `types/bx24-loader.d.ts` – `loadBx24`, `Bx24EnvironmentError`.
|
|
338
367
|
|
|
339
368
|
## Разработка и публикация
|
|
340
369
|
|
|
341
370
|
1. Вносите изменения в исходники.
|
|
342
|
-
2. Собирайте библиотеку `npm run build` (результат в `dist/`).
|
|
371
|
+
2. Собирайте библиотеку `npm run build` (результат в `dist/`, legacy-загрузчик BX24 — в `dist/legacy/`).
|
|
343
372
|
3. Авторизуйтесь в npm: `npm login`. Если требуется, запросите временный пароль на support@sozdavatel.ru.
|
|
344
373
|
4. Публикуйте обновление: `npm run pub`. Скрипт автоматически увеличит версию (при необходимости можно указать вручную).
|