aboutsummaryrefslogtreecommitdiffstats
path: root/docs/src/appCache.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/src/appCache.js')
-rw-r--r--docs/src/appCache.js99
1 files changed, 62 insertions, 37 deletions
diff --git a/docs/src/appCache.js b/docs/src/appCache.js
index 994054c2..cf7827bf 100644
--- a/docs/src/appCache.js
+++ b/docs/src/appCache.js
@@ -3,48 +3,73 @@
*/
exports.appCache = appCache;
-var fs = require('fs');
+var fs = require('q-fs');
+var Q = require('qq');
+function identity($) {return $;}
function appCache(path) {
- var blackList = [ "offline.html",
- "sitemap.xml",
- "robots.txt",
- "docs-scenario.html",
- "docs-scenario.js",
- "app-cache.manifest"
+ if(!path) {
+ return appCacheTemplate();
+ }
+ var blackList = ["offline.html",
+ "sitemap.xml",
+ "robots.txt",
+ "docs-scenario.html",
+ "docs-scenario.js",
+ "appcache.manifest"
];
var result = ["CACHE MANIFEST",
- "# %TIMESTAMP%",
- "",
- "# cache all of these",
- "CACHE:",
- "../angular.min.js"];
+ "# " + new Date().toISOString(),
+ "",
+ "# cache all of these",
+ "CACHE:",
+ "../angular.min.js"];
+
+ var resultPostfix = ["",
+ "FALLBACK:",
+ "/offline.html",
+ "",
+ "# allow access to google analytics and twitter when we are online",
+ "NETWORK:",
+ "*"];
+
+ var promise = fs.listTree(path).then(function(files){
+ var fileFutures = [];
+ files.forEach(function(file){
+ fileFutures.push(fs.isFile(file).then(function(isFile){
+ if (isFile && blackList.indexOf(file) == -1) {
+ return file.replace('build/docs/','');
+ }
+ }));
+ });
+ return Q.deep(fileFutures);
+ }).then(function(files){
+ return result.concat(files.filter(identity)).concat(resultPostfix).join('\n');
+ });
- var resultPostfix = [ "",
- "FALLBACK:",
- "/offline.html",
- "",
- "# allow access to google analytics and twitter when we are online",
- "NETWORK:",
- "*"];
- walk(path,result,blackList);
- return result.join('\n').replace(/%TIMESTAMP%/, (new Date()).toISOString()) + '\n' + resultPostfix.join('\n');
+ return promise;
}
-function walk(path, array, blackList) {
- var temp = fs.readdirSync(path);
- for (var i=0; i< temp.length; i++) {
- if(blackList.indexOf(temp[i]) < 0) {
- var currentPath = path + '/' + temp[i];
- var stat = fs.statSync(currentPath);
-
- if (stat.isDirectory()) {
- walk(currentPath, array, blackList);
- }
- else {
- array.push(currentPath.replace('build/docs/',''));
- }
- }
- }
-} \ No newline at end of file
+function appCacheTemplate() {
+ return ["CACHE MANIFEST",
+ "# " + new Date().toISOString(),
+ "",
+ "# cache all of these",
+ "CACHE:",
+ "syntaxhighlighter/syntaxhighlighter-combined.js",
+ "../angular.min.js",
+ "docs-combined.js",
+ "docs-keywords.js",
+ "docs-combined.css",
+ "syntaxhighlighter/syntaxhighlighter-combined.css",
+ "img/texture_1.png",
+ "img/yellow_bkgnd.jpg",
+ "",
+ "FALLBACK:",
+ "/ offline.html",
+ "",
+ "# allow access to google analytics and twitter when we are online",
+ "NETWORK:",
+ "*"].join('\n');
+}