fusion-plugin-service-worker-tests/src/main.js (54 lines of code) (raw):

// @flow import App from 'fusion-react'; import Router from 'fusion-plugin-react-router'; import Styletron from 'fusion-plugin-styletron-react'; import {LoggerToken} from 'fusion-tokens'; import {swTemplate as swTemplateFunction} from 'fusion-cli/sw'; import SwPlugin, { SWRegisterToken, SWTemplateFunctionToken, SWOptionsToken, } from 'fusion-plugin-service-worker'; import MockRedirectPlugin from './plugins/mock-redirect'; import MockErrorPlugin from './plugins/mock-server-error'; import root from './root.js'; const createMockLogger = () => ({ log: () => createMockLogger(), error: () => createMockLogger(), warn: () => createMockLogger(), info: () => createMockLogger(), verbose: () => createMockLogger(), debug: () => createMockLogger(), silly: () => createMockLogger(), }); export default () => { const app = new App(root); app.register(Styletron); app.register(Router); app.register(SwPlugin); if (__BROWSER__) { app.register(SWRegisterToken, true); } if (__NODE__) { app.register(LoggerToken, createMockLogger()); app.register(SWTemplateFunctionToken, swTemplateFunction); const expiry = parseInt(process.env.EXPIRY, 0); if (expiry) { app.register(SWOptionsToken, {cacheDuration: expiry}); } if (process.env.CACHE_BUSTING_PATTERNS) { app.register(SWOptionsToken, { // $FlowFixMe cacheBustingPatterns: [process.env.CACHE_BUSTING_PATTERNS], }); } if (process.env.CACHEABLE_ROUTE_PATTERNS) { app.register(SWOptionsToken, { cacheableRoutePatterns: [ // $FlowFixMe process.env.CACHEABLE_ROUTE_PATTERNS, ], }); } } app.register(MockRedirectPlugin); app.register(MockErrorPlugin); return app; };