swork-link
swork-link is a swork middleware designed to allow the dynamic injection of new middleware into an existing middleware pipeline. It is built with TypeScript and async methods.
License
MIT
Installation
npm install swork-link
yarn add swork-link
Example
// sw.ts;; ; // Global logic app.use/* 1st middleware */ .uselink .use/* 4th middleware */ .listen;
// area-sw.ts;;; ; // Specific area logicapp.use/* 2nd middleware */ .use/* 3rd middleware */ .targetLink;
In the above example, the area service worker is injected into the global service worker pipeline resulting in the expected middleware execution order. This allows a global service worker module or bundle to be built independently and reused by any referencing service worker.
Methods
link
Create a link location within a middleware pipeline. link
can be passed a key to manage multiple link locations. If no key is passed, the key defaults to default
.
If there is no corresponding link
; app.uselink;// orapp.uselink"foo";
targetLink
Target a link defined in another swork pipeline. Similarly to link
, targetLink
can be passed a key to manage multiple link locations.
; app.targetLink;// orapp.targetLink"foo";
Notes
link
and targetLink
can be used in a single bundle (see first example) or across multiple bundles. In the case of multiple bundles, importScripts
becomes necessary.
// area-sw.ts;; self.importScripts"sw.js"; ; // Specific area logicapp.use/* 2nd middleware */ .use/* 3rd middleware */ .targetLink;
Contact
If you are using swork or any of its related middlewares, please let me know on gitter. I am always looking for feedback or additional middleware ideas.