UNPKG

1.3 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _fs = require('fs');
8
9var _fs2 = _interopRequireDefault(_fs);
10
11var _path = require('path');
12
13var _path2 = _interopRequireDefault(_path);
14
15var _constants = require('./constants');
16
17function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19var template = _fs2.default.readFileSync(_path2.default.join(__dirname, './template.js'), 'utf-8');
20
21var helperSWRegister = function helperSWRegister() {
22 var registerContent = template.replace('__workerName__', _constants.workerName);
23 return `<script async>${ registerContent }</script>`;
24};
25
26var injectSWRegisterWithContent = function injectSWRegisterWithContent(script) {
27 return function (publicDir) {
28 var indexHTMLPath = _path2.default.join(publicDir, 'index.html');
29
30 // early return when no index.html presets in public directory
31 if (!_fs2.default.existsSync(indexHTMLPath)) {
32 return;
33 }
34
35 var fileContent = _fs2.default.readFileSync(indexHTMLPath, 'utf-8');
36 var injectedContent = fileContent.replace(/<\/body>\s*<\/html>\s*$/, `${ script }</body></html>`);
37 _fs2.default.writeFileSync(indexHTMLPath, injectedContent);
38 };
39};
40
41exports.default = injectSWRegisterWithContent(helperSWRegister());
\No newline at end of file