Skip to content

Commit

Permalink
load before before sync rather than silently
Browse files Browse the repository at this point in the history
  • Loading branch information
pemrouz committed Mar 6, 2016
1 parent 0d2285e commit 01e004e
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 58 deletions.
1 change: 0 additions & 1 deletion .popper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ tests: (npm run build > /dev/null) && browserify ./test.js
-i colors
-i chai
| sed -E "s/require\('chai'\)/window.chai/"
| uglifyjs

watch:
- src
Expand Down
34 changes: 8 additions & 26 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,6 @@ var _group = require('utilise/group');

var _group2 = _interopRequireDefault(_group);

var _proxy = require('utilise/proxy');

var _proxy2 = _interopRequireDefault(_proxy);

var _not = require('utilise/not');

var _not2 = _interopRequireDefault(_not);
Expand All @@ -45,19 +41,11 @@ var _str = require('utilise/str');

var _str2 = _interopRequireDefault(_str);

var _key = require('utilise/key');

var _key2 = _interopRequireDefault(_key);

var _is = require('utilise/is');

var _is2 = _interopRequireDefault(_is);

/* istanbul ignore next */
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// -------------------------------------------
// API: Pre-applies Scoped CSS [css=name]
// API: Cache to and Restore from localStorage
// -------------------------------------------
function offline(ripple) {
if (!_client2.default || !window.localStorage) return;
Expand All @@ -67,30 +55,24 @@ function offline(ripple) {
return ripple;
}

function load(ripple) {
(0, _group2.default)('loading cache', function () {
((0, _parse2.default)(localStorage.ripple) || []).forEach(silent(ripple));
var load = function load(ripple) {
return (0, _group2.default)('loading cache', function (d) {
return ((0, _parse2.default)(localStorage.ripple) || []).map(ripple);
});
}
};

function cache(ripple) {
var cache = function cache(ripple) {
return function (res) {
log('cached');
var cachable = (0, _values2.default)((0, _clone2.default)(ripple.resources)).filter((0, _not2.default)((0, _header2.default)('cache-control', 'no-store')));
var cachable = (0, _values2.default)((0, _clone2.default)(ripple.resources)).filter((0, _not2.default)((0, _header2.default)('cache', 'no-store')));

cachable.filter((0, _header2.default)('content-type', 'application/javascript')).map(function (d) {
return d.body = (0, _str2.default)(ripple.resources[d.name].body);
});

localStorage.ripple = (0, _str2.default)(cachable);
};
}

function silent(ripple) {
return function (res) {
return res.headers.silent = true, ripple(res);
};
}
};

var log = require('utilise/log')('[ri/offline]'),
err = require('utilise/err')('[ri/offline]');
40 changes: 14 additions & 26 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// -------------------------------------------
// API: Pre-applies Scoped CSS [css=name]
// API: Cache to and Restore from localStorage
// -------------------------------------------
export default function offline(ripple){
if (!client || !window.localStorage) return;
Expand All @@ -9,29 +9,20 @@ export default function offline(ripple){
return ripple
}

function load(ripple) {
group('loading cache', function(){
(parse(localStorage.ripple) || [])
.forEach(silent(ripple))
})
}

function cache(ripple){
return function(res){
log('cached')
var cachable = values(clone(ripple.resources))
.filter(not(header('cache-control', 'no-store')))
const load = ripple => group('loading cache', d =>
(parse(localStorage.ripple) || [])
.map(ripple))

cachable
.filter(header('content-type', 'application/javascript'))
.map(d => d.body = str(ripple.resources[d.name].body) )
const cache = ripple => res => {
log('cached')
const cachable = values(clone(ripple.resources))
.filter(not(header('cache', 'no-store')))

localStorage.ripple = str(cachable)
}
}
cachable
.filter(header('content-type', 'application/javascript'))
.map(d => d.body = str(ripple.resources[d.name].body) )

function silent(ripple) {
return res => (res.headers.silent = true, ripple(res))
localStorage.ripple = str(cachable)
}

import debounce from 'utilise/debounce'
Expand All @@ -41,10 +32,7 @@ import values from 'utilise/values'
import clone from 'utilise/clone'
import parse from 'utilise/parse'
import group from 'utilise/group'
import proxy from 'utilise/proxy'
import not from 'utilise/not'
import str from 'utilise/str'
import key from 'utilise/key'
import is from 'utilise/is'
var log = require('utilise/log')('[ri/offline]')
, err = require('utilise/err')('[ri/offline]')
const log = require('utilise/log')('[ri/offline]')
, err = require('utilise/err')('[ri/offline]')
11 changes: 6 additions & 5 deletions test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var expect = require('chai').expect
, time = require('utilise/time')
, keys = require('utilise/keys')
, str = require('utilise/str')
, core = require('rijs.core').default
Expand All @@ -25,11 +26,11 @@ describe('Offline', function(){

expect(localStorage.ripple).to.not.be.ok

setTimeout(function(){
time(1050, function(){
expect(localStorage.ripple.replace(/[ |;]/g, '')).to.eql(
'[{"name":"foo","body":[1,2,3],"headers":{"content-type":"application/data","listeners":[]}},{"name":"bar","headers":{"content-type":"application/javascript"},"body":"function(){\\"baz\\"}"}]')
'[{"name":"foo","body":[1,2,3],"headers":{"content-type":"application/data"}},{"name":"bar","headers":{"content-type":"application/javascript"},"body":"function(){\\"baz\\"}"}]')
done()
}, 1050)
})
})

it('should load from localStorage', function(done){
Expand All @@ -39,7 +40,7 @@ describe('Offline', function(){
.resource('foo', [1,2,3])
.resource('bar', function(){ "baz" })

setTimeout(function(){
time(1050, function(){
var ripple2 = offline(data(fn(core())))
expect(keys(ripple2.resources)).to.eql(['foo', 'bar'])

Expand All @@ -53,7 +54,7 @@ describe('Offline', function(){
expect(ripple2.resources.bar.headers['content-type']).to.be.eql('application/javascript')

done()
}, 1050)
})
})

})
Expand Down

0 comments on commit 01e004e

Please sign in to comment.