UNPKG

@api.global/typedserver

Version:

A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.

35 lines 4.14 kB
import * as plugins from '../plugins.js'; import * as paths from '../paths.js'; import * as interfaces from '../../dist_ts_interfaces/index.js'; import { Handler } from './classes.handler.js'; import { HandlerTypedRouter } from './classes.handlertypedrouter.js'; const swBundleJs = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.serviceworkerBundleDir, './serviceworker.bundle.js')); const swBundleJsMap = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.serviceworkerBundleDir, './serviceworker.bundle.js.map')); let swVersionInfo = null; const serviceworkerHandler = new Handler('GET', async (req, res) => { if (req.path === '/serviceworker.bundle.js') { res.status(200); res.set('Content-Type', 'text/javascript'); res.write(swBundleJs + '\n' + `/** appSemVer: ${swVersionInfo?.appSemVer || 'not set'} */`); } else if (req.path === '/serviceworker.bundle.js.map') { res.status(200); res.set('Content-Type', 'application/json'); res.write(swBundleJsMap); } res.end(); }); export const addServiceWorkerRoute = (typedserverInstance, swDataFunc) => { // lets the version info as unique string; swVersionInfo = swDataFunc(); // the basic stuff typedserverInstance.server.addRoute('/serviceworker{.*}', serviceworkerHandler); // the typed stuff const typedrouter = new plugins.typedrequest.TypedRouter(); typedrouter.addTypedHandler(new plugins.typedrequest.TypedHandler('serviceworker_versionInfo', async (req) => { const versionInfoResponse = swDataFunc(); return versionInfoResponse; })); typedserverInstance.server.addRoute('/sw-typedrequest', new HandlerTypedRouter(typedrouter)); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuc2VydmljZXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3NlcnZlcnRvb2xzL3Rvb2xzLnNlcnZpY2V3b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFFckMsT0FBTyxLQUFLLFVBQVUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckUsTUFBTSxVQUFVLEdBQVcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLENBQUMsQ0FDN0UsQ0FBQztBQUNGLE1BQU0sYUFBYSxHQUFXLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FDN0QsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLCtCQUErQixDQUFDLENBQ2pGLENBQUM7QUFDRixJQUFJLGFBQWEsR0FDZixJQUFJLENBQUM7QUFDUCxNQUFNLG9CQUFvQixHQUFHLElBQUksT0FBTyxDQUN0QyxLQUFLLEVBQ0wsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtJQUNqQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssMEJBQTBCLEVBQUUsQ0FBQztRQUM1QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDM0MsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLGtCQUFrQixhQUFhLEVBQUUsU0FBUyxJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUM7SUFDOUYsQ0FBQztTQUFNLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3ZELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM1QyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDWixDQUFDLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQ25DLG1CQUFnQyxFQUNoQyxVQUFpRyxFQUNqRyxFQUFFO0lBQ0YsMENBQTBDO0lBQzFDLGFBQWEsR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUU3QixrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRWhGLGtCQUFrQjtJQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFM0QsV0FBVyxDQUFDLGVBQWUsQ0FDekIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDbkMsMkJBQTJCLEVBQzNCLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNaLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDekMsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBRUYsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDakMsa0JBQWtCLEVBQ2xCLElBQUksa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQ3BDLENBQUM7QUFDSixDQUFDLENBQUMifQ==