Google's Web DevRel team has been working on a collection of small modules that when used together constitute a full-featured service worker framework: https://github.com/GoogleChrome/sw-helpers/
There are a few different categories of modules there—some provide some basic building blocks, like routing and runtime caching strategies, and I think those overlap a bit with what you've already developed. If you have solutions that already work well for Ember apps, then those modules wouldn't necessarily add in additional value.
Others, though, could be useful if they were exposed to the ember-service-worker audience, most likely with a lightweight wrapper that help them tie in to your request and caching lifecycle.
sw-cache-expiration, to automatically expire runtime caches entries based on maximum size or age criteria.
There's also sw-precaching, that takes in a manifest of URLs and hashes, and manages cache entries.
If there is functionality covered by any of those modules that you'd find useful within your framework, we're happy to walk through what the integration points are for each of the modules. Our documentation is very much a work in progress, so it might not be obvious from reading that alone.
(Moving the conversation from https://twitter.com/Martndemus/status/828688823634767872)
Google's Web DevRel team has been working on a collection of small modules that when used together constitute a full-featured service worker framework: https://github.com/GoogleChrome/sw-helpers/
There are a few different categories of modules there—some provide some basic building blocks, like routing and runtime caching strategies, and I think those overlap a bit with what you've already developed. If you have solutions that already work well for Ember apps, then those modules wouldn't necessarily add in additional value.
Others, though, could be useful if they were exposed to the
ember-service-worker
audience, most likely with a lightweight wrapper that help them tie in to your request and caching lifecycle.sw-background-sync-queue
, for queueing and retrying failed requests via thesync
event.sw-broadcast-cache-update
, to announce changes to cached entries.sw-cache-expiration
, to automatically expire runtime caches entries based on maximum size or age criteria.There's also
sw-precaching
, that takes in a manifest of URLs and hashes, and manages cache entries.If there is functionality covered by any of those modules that you'd find useful within your framework, we're happy to walk through what the integration points are for each of the modules. Our documentation is very much a work in progress, so it might not be obvious from reading that alone.
CC: @addyosmani @gauntface