UNPKG

1.61 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 _swPrecache = require('sw-precache');
16
17var _swPrecache2 = _interopRequireDefault(_swPrecache);
18
19var _constants = require('./constants');
20
21function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
23var generateSWPrecacheConfig = function generateSWPrecacheConfig(_ref, extraSWPrecacheConfig) {
24 var root = _ref.root,
25 public_dir = _ref.public_dir,
26 logger = _ref.logger;
27
28 var hexoPublicDir = 'public';
29 var rootPrefix = root.replace(/\/$/, '');
30 return Object.assign({
31 logger,
32 replacePrefix: rootPrefix,
33 staticFileGlobs: [hexoPublicDir + '/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff}'],
34 stripPrefix: hexoPublicDir
35 }, extraSWPrecacheConfig);
36};
37
38var runSWPrecache = function runSWPrecache() {
39 var public_dir = this.public_dir,
40 config = this.config,
41 log = this.log;
42 var root = config.root,
43 offline = config.offline;
44
45 // early return when no index.html presets in public directory
46
47 var indexHTMLPath = _path2.default.join(public_dir, 'index.html');
48 if (!_fs2.default.existsSync(indexHTMLPath)) {
49 return Promise.resolve();
50 }
51
52 var SWPrecacheConfig = generateSWPrecacheConfig({ root, public_dir, logger: log.info.bind(log) }, offline);
53
54 return _swPrecache2.default.write(_path2.default.join(public_dir, _constants.workerName), SWPrecacheConfig);
55};
56
57exports.default = runSWPrecache;
\No newline at end of file