swork-link
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

swork-link

npm travis ci coverage download Greenkeeper badge

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
import { Swork } from "swork";
import { link } from "swork-link";
 
export const app = new Swork();
 
// Global logic  
app.use(/* 1st middleware */)
    .use(link())
    .use(/* 4th middleware */)
    .listen();
// area-sw.ts
import { Swork } from "swork";
import "swork-link";
import "./sw";
 
const app = new Swork();
 
// Specific area logic
app.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

const app = new Swork();
 
app.use(link());
// or
app.use(link("foo"));

targetLink

Target a link defined in another swork pipeline. Similarly to link, targetLink can be passed a key to manage multiple link locations.

const app = new Swork();
 
app.targetLink();
// or
app.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
import { Swork } from "swork";
import "swork-link";
 
self.importScripts("sw.js");
 
const app = new Swork();
 
// Specific area logic
app.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.

Package Sidebar

Install

npm i swork-link

Weekly Downloads

9

Version

1.0.2

License

MIT

Unpacked Size

12.3 kB

Total Files

9

Last publish

Collaborators

  • justin-arch-sw