@budarin/psw-plugin-opfs-serve-range 1.0.3 → 1.0.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.
- package/README.md +3 -3
- package/README.ru.md +7 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[Русская версия](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/README.ru.md)
|
|
4
4
|
|
|
5
|
-
Service Worker plugins and utilities for
|
|
5
|
+
Service Worker plugins and utilities for [@budarin/pluggable-serviceworker](https://www.npmjs.com/package/@budarin/pluggable-serviceworker) that serve HTTP Range requests from files stored in Origin Private File System (OPFS).
|
|
6
6
|
|
|
7
7
|
[](https://github.com/budarin/psw-plugin-opfs-serve-range/actions/workflows/ci.yml)
|
|
8
8
|
[](https://www.npmjs.com/package/@budarin/psw-plugin-opfs-serve-range)
|
|
@@ -28,7 +28,7 @@ In environments without OPFS support, plugin factories return `undefined`.
|
|
|
28
28
|
|
|
29
29
|
All cache files live under a single OPFS directory. The directory name is configured once via **configureOpfs({ folderName })** before registering plugins (defaults to `'range-requests-cache'`). To clear the cache, call **clearOpfsCache()** – the whole directory is removed. Inside, there is one file per URL; all metadata is stored in the file footer.
|
|
30
30
|
|
|
31
|
-
Detailed cache behavior (limits, LRU, eviction, notifications) is described in [docs/opfs-cache-behavior.md](docs/opfs-cache-behavior.md) (Russian version: [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md)).
|
|
31
|
+
Detailed cache behavior (limits, LRU, eviction, notifications) is described in [docs/opfs-cache-behavior.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.md) (Russian version: [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md)).
|
|
32
32
|
|
|
33
33
|
## Install
|
|
34
34
|
|
|
@@ -183,7 +183,7 @@ onOPFSSkipQuotaExceeded((event) => {
|
|
|
183
183
|
});
|
|
184
184
|
```
|
|
185
185
|
|
|
186
|
-
See [docs/opfs-cache-behavior.md](docs/opfs-cache-behavior.md) for details (Russian version: [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md)).
|
|
186
|
+
See [docs/opfs-cache-behavior.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.md) for details (Russian version: [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md)).
|
|
187
187
|
|
|
188
188
|
### Clearing the cache and managing individual resources
|
|
189
189
|
|
package/README.ru.md
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
# @budarin/psw-plugin-opfs-serve-range
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
Большие медиафайлы и другие «тяжёлые» ресурсы почти всегда запрашиваются по частям через HTTP Range, а не одним куском. Когда такие файлы лежат в обычном HTTP‑кеше (Cache API), сервис‑воркеру приходится каждый раз читать и обрабатывать весь файл, даже если клиенту нужен только небольшой диапазон. Это лишняя нагрузка на память и процессор, которая особенно больно бьёт по слабым устройствам и при небольшой квоте хранилища.
|
|
5
4
|
|
|
6
5
|
Этот пакет решает задачу по‑другому: он использует Origin Private File System (OPFS) как основное хранилище для больших ресурсов и ответов по Range. Файлы записываются в OPFS в собственном формате (один файл на URL плюс метаданные во футере), а диапазоны читаются напрямую из файловой системы, без Cache API. Поверх этого построены плагины для предзагрузки, фоновых загрузок и обслуживания range‑запросов.
|
|
7
6
|
|
|
8
7
|
В отличие от пакета `@budarin/psw-plugin-serve-range-requests`, который работает поверх обычного кеша (Cache API) и отдаёт диапазоны для уже закешированных ответов, этот пакет использует именно OPFS в качестве кеша: даёт явный контроль над квотой и политиками эвикции (лимиты, LRU, уведомления вкладок), поддерживает сценарии «сначала скачать в фоне, потом долго воспроизводить или просматривать офлайн» (через Background Fetch и precache) и предоставляет утилиты для собственных плагинов записи и чтения из OPFS.
|
|
9
8
|
|
|
10
|
-
Пакет предоставляет плагины и утилиты для
|
|
9
|
+
Пакет предоставляет плагины и утилиты для [@budarin/pluggable-serviceworker](https://www.npmjs.com/package/@budarin/pluggable-serviceworker) для обработки range‑запросов к файлам в OPFS:
|
|
11
10
|
|
|
12
11
|
- **opfsServeRange** — читает файлы из OPFS и отдаёт запрошенные диапазоны байтов.
|
|
13
12
|
- **opfsPrecache** — при установке сервис‑воркера загружает список URL и записывает их в OPFS. Загрузка объёмных файлов на стадии установки может занять много времени, поэтому в UI имеет смысл явно сообщать пользователю, что идёт инициализация, либо не включать большие файлы в precache. Отдельно важно учитывать, что если на стадии `install` при записи в OPFS не хватит места и операция завершится ошибкой, весь сервис‑воркер не будет установлен (install не завершится успешно). Через opfsPrecache стоит грузить только те ресурсы, которые гарантированно помещаются даже на маленьких и уже частично заполненных устройствах; тяжёлые файлы лучше выносить в отдельные сценарии фоновой или отложенной загрузки с помощью плагина `opfsRangeFromNetworkAndCache` или Background Fetch.
|
|
@@ -19,7 +18,7 @@
|
|
|
19
18
|
|
|
20
19
|
Все файлы кеша лежат в одной папке OPFS. Её имя задаётся один раз в **configureOpfs({ folderName })** до регистрации плагинов (по умолчанию `'range-requests-cache'`). Чтобы очистить кеш, вызовите **clearOpfsCache()** — удалится вся папка. Внутри — один файл на URL, все метаданные хранятся в самом файле.
|
|
21
20
|
|
|
22
|
-
Подробное описание поведения кеша (лимиты, LRU, эвикция, оповещения) — в [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md).
|
|
21
|
+
Подробное описание поведения кеша (лимиты, LRU, эвикция, оповещения) — в [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md).
|
|
23
22
|
|
|
24
23
|
## Установка
|
|
25
24
|
|
|
@@ -174,19 +173,19 @@ onOPFSSkipQuotaExceeded((event) => {
|
|
|
174
173
|
});
|
|
175
174
|
```
|
|
176
175
|
|
|
177
|
-
Подробнее — в [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md) и в разделе **«Клиентские утилиты»** этого README.
|
|
176
|
+
Подробнее — в [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md) и в разделе **«Клиентские утилиты»** этого README.
|
|
178
177
|
|
|
179
178
|
### Очистка кеша и управление отдельными ресурсами
|
|
180
179
|
|
|
181
|
-
Когда нужно сбросить весь кеш (например, по кнопке в UI или при логауте), можно вызвать clearOpfsCache() из сервис-воркера или клиента — будет удалена вся папка кеша.
|
|
180
|
+
Когда нужно сбросить весь кеш (например, по кнопке в UI или при логауте), можно вызвать `clearOpfsCache()` из сервис-воркера или клиента — будет удалена вся папка кеша.
|
|
182
181
|
|
|
183
182
|
Если нужно работать с отдельными ресурсами (показать пользователю список сохранённых файлов и дать удалить что-то выборочно), можно использовать клиентские утилиты из entry point `@budarin/psw-plugin-opfs-serve-range/client`. Список в кеше строится по метаданным в футере (там теперь хранится исходный url каждого ресурса).
|
|
184
183
|
|
|
185
184
|
Основные сценарии:
|
|
186
185
|
|
|
187
|
-
- получить список ресурсов в OPFS-кеше с размерами и типами — listOpfsCachedResources()
|
|
188
|
-
- проверить, есть ли конкретный URL в кеше — hasInOpfsCache(url);
|
|
189
|
-
- удалить один ресурс по URL — deleteFromOpfsCache(url).
|
|
186
|
+
- получить список ресурсов в OPFS-кеше с размерами и типами — `listOpfsCachedResources()`;
|
|
187
|
+
- проверить, есть ли конкретный URL в кеше — `hasInOpfsCache`(url);
|
|
188
|
+
- удалить один ресурс по URL — `deleteFromOpfsCache`(url).
|
|
190
189
|
|
|
191
190
|
Эти утилиты и подписки на события описаны подробнее в разделе **«Клиентские утилиты»** и в типах пакета.
|
|
192
191
|
|