Skip to content
This repository was archived by the owner on Jan 14, 2022. It is now read-only.

Commit df605d3

Browse files
committed
Retrieve service worker registration from homepage
1 parent b659dc9 commit df605d3

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

lib/serviceWorkerTools.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
'use strict';
22

33
var path = require('path'),
4+
cheerio = require('cheerio'),
5+
request = require('request'),
46
Q = require('q');
57

68
function getAssetsFolders(ids, callback) {
@@ -18,6 +20,24 @@ function getAssetsFolders(ids, callback) {
1820
return Q.resolve(results).nodeify(callback);
1921
}
2022

23+
function getServiceWorkersFromUrl (siteUrl, callback) {
24+
var deferred = Q.defer();
25+
request({ uri: siteUrl }, function (err, response, body) {
26+
if (err || response.statusCode !== 200) {
27+
return deferred.reject(new Error('Failed to retrieve service workers from site.'));
28+
}
29+
30+
var $ = cheerio.load(body);
31+
var scriptContent = $($('script')).text();
32+
var serviceWorkers = scriptContent.match(/navigator\.serviceWorker\.register\([\s\S]*?\)/);
33+
34+
return deferred.resolve(serviceWorkers);
35+
});
36+
37+
return deferred.promise.nodeify(callback);
38+
}
39+
2140
module.exports = {
2241
getAssetsFolders: getAssetsFolders,
42+
getServiceWorkersFromUrl: getServiceWorkersFromUrl
2343
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pwabuilder-lib",
3-
"version": "2.0.0-rc.6",
3+
"version": "2.0.0-rc.7",
44
"description": "PWA Builder Core Library",
55
"repository": {
66
"type": "git",

0 commit comments

Comments
 (0)