angular-async-cache
Advanced tools
Comparing version 0.1.2 to 0.2.0
@@ -5,2 +5,19 @@ # Change Log | ||
<a name="0.2.0"></a> | ||
# [0.2.0](https://github.com/mattlewis92/angular-async-cache/compare/v0.1.2...v0.2.0) (2016-11-06) | ||
### Bug Fixes | ||
* **aot:** more robust fix for aot compilation ([c34828d](https://github.com/mattlewis92/angular-async-cache/commit/c34828d)) | ||
### BREAKING CHANGES | ||
* aot: the way the library defaults are configured has changed. See the readme for an | ||
example | ||
<a name="0.1.2"></a> | ||
@@ -7,0 +24,0 @@ ## [0.1.2](https://github.com/mattlewis92/angular-async-cache/compare/v0.1.1...v0.1.2) (2016-11-05) |
@@ -1,11 +0,10 @@ | ||
import { ModuleWithProviders, OpaqueToken } from '@angular/core'; | ||
import { ModuleWithProviders, Provider } from '@angular/core'; | ||
import { LocalStorageDriver } from './drivers/localStorageDriver.provider'; | ||
import { MemoryDriver } from './drivers/memoryDriver.provider'; | ||
import { AsyncCacheOptions, AsyncCacheOptionsInterface } from './asyncCacheOptions.provider'; | ||
export declare const ASYNC_CACHE_USER_DEFAULTS: OpaqueToken; | ||
import { AsyncCacheOptions } from './asyncCacheOptions.provider'; | ||
export declare function memoryDriverFactory(options: AsyncCacheOptions): MemoryDriver; | ||
export declare function localStorageDriverFactory(options: AsyncCacheOptions): LocalStorageDriver; | ||
export declare function cacheOptionDefaultsFactory(userDefaults: AsyncCacheOptionsInterface): AsyncCacheOptions; | ||
export declare function cacheOptionFactory(): AsyncCacheOptions; | ||
export declare class AsyncCacheModule { | ||
static forRoot(userDefaults?: AsyncCacheOptionsInterface): ModuleWithProviders; | ||
static forRoot(cacheOptions?: Provider): ModuleWithProviders; | ||
} |
@@ -1,2 +0,2 @@ | ||
import { NgModule, OpaqueToken } from '@angular/core'; | ||
import { NgModule } from '@angular/core'; | ||
import { LocalStorageDriver } from './drivers/localStorageDriver.provider'; | ||
@@ -7,19 +7,19 @@ import { MemoryDriver } from './drivers/memoryDriver.provider'; | ||
import { AsyncCachePipe } from './asyncCache.pipe'; | ||
export var ASYNC_CACHE_USER_DEFAULTS = new OpaqueToken('ASYNC_CACHE_USER_DEFAULTS'); | ||
export function memoryDriverFactory(options) { | ||
return options.driver instanceof MemoryDriver ? options.driver : new MemoryDriver(); | ||
} | ||
; | ||
export function localStorageDriverFactory(options) { | ||
return options.driver instanceof LocalStorageDriver ? options.driver : new LocalStorageDriver(); | ||
} | ||
; | ||
export function cacheOptionDefaultsFactory(userDefaults) { | ||
return new AsyncCacheOptions(userDefaults); | ||
export function cacheOptionFactory() { | ||
return new AsyncCacheOptions(); | ||
} | ||
; | ||
export var AsyncCacheModule = (function () { | ||
function AsyncCacheModule() { | ||
} | ||
AsyncCacheModule.forRoot = function (userDefaults) { | ||
AsyncCacheModule.forRoot = function (cacheOptions) { | ||
if (cacheOptions === void 0) { cacheOptions = { | ||
provide: AsyncCacheOptions, | ||
useFactory: cacheOptionFactory | ||
}; } | ||
return { | ||
@@ -31,7 +31,3 @@ ngModule: AsyncCacheModule, | ||
provide: MemoryDriver, useFactory: memoryDriverFactory, deps: [AsyncCacheOptions] | ||
}, { | ||
provide: ASYNC_CACHE_USER_DEFAULTS, useValue: userDefaults | ||
}, { | ||
provide: AsyncCacheOptions, useFactory: cacheOptionDefaultsFactory, deps: [ASYNC_CACHE_USER_DEFAULTS] | ||
}, AsyncCache] | ||
}, cacheOptions, AsyncCache] | ||
}; | ||
@@ -38,0 +34,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":1,"metadata":{"ASYNC_CACHE_USER_DEFAULTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["ASYNC_CACHE_USER_DEFAULTS"]},"memoryDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","module":"./drivers/memoryDriver.provider","name":"MemoryDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./drivers/memoryDriver.provider","name":"MemoryDriver"}}}},"localStorageDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","module":"./drivers/localStorageDriver.provider","name":"LocalStorageDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./drivers/localStorageDriver.provider","name":"LocalStorageDriver"}}}},"cacheOptionDefaultsFactory":{"__symbolic":"function","parameters":["userDefaults"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"},"arguments":[{"__symbolic":"reference","name":"userDefaults"}]}},"AsyncCacheModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"declarations":[{"__symbolic":"reference","module":"./asyncCache.pipe","name":"AsyncCachePipe"}],"exports":[{"__symbolic":"reference","module":"./asyncCache.pipe","name":"AsyncCachePipe"}]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["userDefaults"],"value":{"ngModule":{"__symbolic":"reference","name":"AsyncCacheModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./drivers/localStorageDriver.provider","name":"LocalStorageDriver"},"useFactory":{"__symbolic":"reference","name":"localStorageDriverFactory"},"deps":[{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"}]},{"provide":{"__symbolic":"reference","module":"./drivers/memoryDriver.provider","name":"MemoryDriver"},"useFactory":{"__symbolic":"reference","name":"memoryDriverFactory"},"deps":[{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"}]},{"provide":{"__symbolic":"reference","name":"ASYNC_CACHE_USER_DEFAULTS"},"useValue":{"__symbolic":"reference","name":"userDefaults"}},{"provide":{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"},"useFactory":{"__symbolic":"reference","name":"cacheOptionDefaultsFactory"},"deps":[{"__symbolic":"reference","name":"ASYNC_CACHE_USER_DEFAULTS"}]},{"__symbolic":"reference","module":"./asyncCache.provider","name":"AsyncCache"}]}}}}}} | ||
{"__symbolic":"module","version":1,"metadata":{"memoryDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","module":"./drivers/memoryDriver.provider","name":"MemoryDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./drivers/memoryDriver.provider","name":"MemoryDriver"}}}},"localStorageDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","module":"./drivers/localStorageDriver.provider","name":"LocalStorageDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./drivers/localStorageDriver.provider","name":"LocalStorageDriver"}}}},"cacheOptionFactory":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"}}},"AsyncCacheModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"declarations":[{"__symbolic":"reference","module":"./asyncCache.pipe","name":"AsyncCachePipe"}],"exports":[{"__symbolic":"reference","module":"./asyncCache.pipe","name":"AsyncCachePipe"}]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["cacheOptions"],"value":{"ngModule":{"__symbolic":"reference","name":"AsyncCacheModule"},"providers":[{"provide":{"__symbolic":"reference","module":"./drivers/localStorageDriver.provider","name":"LocalStorageDriver"},"useFactory":{"__symbolic":"reference","name":"localStorageDriverFactory"},"deps":[{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"}]},{"provide":{"__symbolic":"reference","module":"./drivers/memoryDriver.provider","name":"MemoryDriver"},"useFactory":{"__symbolic":"reference","name":"memoryDriverFactory"},"deps":[{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"}]},{"__symbolic":"reference","name":"cacheOptions"},{"__symbolic":"reference","module":"./asyncCache.provider","name":"AsyncCache"}]},"defaults":[{"provide":{"__symbolic":"reference","module":"./asyncCacheOptions.provider","name":"AsyncCacheOptions"},"useFactory":{"__symbolic":"reference","name":"cacheOptionFactory"}}]}}}}} |
@@ -5,3 +5,3 @@ export * from './asyncCache.module'; | ||
export * from './drivers/memoryDriver.provider'; | ||
export { AsyncCacheOptionsInterface as AsyncCacheOptions } from './asyncCacheOptions.provider'; | ||
export { AsyncCacheOptions } from './asyncCacheOptions.provider'; | ||
export * from './asyncCache.provider'; |
@@ -5,3 +5,4 @@ export * from './asyncCache.module'; | ||
export * from './drivers/memoryDriver.provider'; | ||
export { AsyncCacheOptions } from './asyncCacheOptions.provider'; | ||
export * from './asyncCache.provider'; | ||
//# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./asyncCache.module"},{"from":"./drivers/cacheDriver.interface"},{"from":"./drivers/localStorageDriver.provider"},{"from":"./drivers/memoryDriver.provider"},{"from":"./asyncCacheOptions.provider","export":[{"name":"AsyncCacheOptionsInterface","as":"AsyncCacheOptions"}]},{"from":"./asyncCache.provider"}]} | ||
{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./asyncCache.module"},{"from":"./drivers/cacheDriver.interface"},{"from":"./drivers/localStorageDriver.provider"},{"from":"./drivers/memoryDriver.provider"},{"from":"./asyncCacheOptions.provider","export":["AsyncCacheOptions"]},{"from":"./asyncCache.provider"}]} |
@@ -66,3 +66,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
var asyncCacheOptions_provider_1 = __webpack_require__(5); | ||
exports.AsyncCacheOptions = asyncCacheOptions_provider_1.AsyncCacheOptionsInterface; | ||
exports.AsyncCacheOptions = asyncCacheOptions_provider_1.AsyncCacheOptions; | ||
__export(__webpack_require__(6)); | ||
@@ -91,3 +91,2 @@ | ||
var asyncCache_pipe_1 = __webpack_require__(14); | ||
exports.ASYNC_CACHE_USER_DEFAULTS = new core_1.OpaqueToken('ASYNC_CACHE_USER_DEFAULTS'); | ||
function memoryDriverFactory(options) { | ||
@@ -97,3 +96,2 @@ return options.driver instanceof memoryDriver_provider_1.MemoryDriver ? options.driver : new memoryDriver_provider_1.MemoryDriver(); | ||
exports.memoryDriverFactory = memoryDriverFactory; | ||
; | ||
function localStorageDriverFactory(options) { | ||
@@ -103,12 +101,14 @@ return options.driver instanceof localStorageDriver_provider_1.LocalStorageDriver ? options.driver : new localStorageDriver_provider_1.LocalStorageDriver(); | ||
exports.localStorageDriverFactory = localStorageDriverFactory; | ||
; | ||
function cacheOptionDefaultsFactory(userDefaults) { | ||
return new asyncCacheOptions_provider_1.AsyncCacheOptions(userDefaults); | ||
function cacheOptionFactory() { | ||
return new asyncCacheOptions_provider_1.AsyncCacheOptions(); | ||
} | ||
exports.cacheOptionDefaultsFactory = cacheOptionDefaultsFactory; | ||
; | ||
exports.cacheOptionFactory = cacheOptionFactory; | ||
var AsyncCacheModule = (function () { | ||
function AsyncCacheModule() { | ||
} | ||
AsyncCacheModule.forRoot = function (userDefaults) { | ||
AsyncCacheModule.forRoot = function (cacheOptions) { | ||
if (cacheOptions === void 0) { cacheOptions = { | ||
provide: asyncCacheOptions_provider_1.AsyncCacheOptions, | ||
useFactory: cacheOptionFactory | ||
}; } | ||
return { | ||
@@ -120,7 +120,3 @@ ngModule: AsyncCacheModule, | ||
provide: memoryDriver_provider_1.MemoryDriver, useFactory: memoryDriverFactory, deps: [asyncCacheOptions_provider_1.AsyncCacheOptions] | ||
}, { | ||
provide: exports.ASYNC_CACHE_USER_DEFAULTS, useValue: userDefaults | ||
}, { | ||
provide: asyncCacheOptions_provider_1.AsyncCacheOptions, useFactory: cacheOptionDefaultsFactory, deps: [exports.ASYNC_CACHE_USER_DEFAULTS] | ||
}, asyncCache_provider_1.AsyncCache] | ||
}, cacheOptions, asyncCache_provider_1.AsyncCache] | ||
}; | ||
@@ -127,0 +123,0 @@ }; |
{ | ||
"name": "angular-async-cache", | ||
"version": "0.1.2", | ||
"version": "0.2.0", | ||
"description": "A simple utility to help with caching of promises and observables to enable an easy offline first approach in angular 2.0+ apps", | ||
@@ -5,0 +5,0 @@ "main": "./dist/umd/angular-async-cache.js", |
@@ -33,4 +33,11 @@ # angular async cache | ||
import { Http } from '@angular/http'; | ||
import { AsyncCache, LocalStorageDriver, MemoryDriver, AsyncCacheModule } from 'angular-async-cache'; | ||
import { AsyncCache, LocalStorageDriver, MemoryDriver, AsyncCacheModule, AsyncCacheOptions } from 'angular-async-cache'; | ||
export function asyncCacheOptionsFactory() { | ||
return new AsyncCacheOptions({ | ||
driver: new LocalStorageDriver(), // default cache driver to use. Default in memory. You can also roll your own by implementing the CacheDriver interface | ||
fromCacheAndReplay: true // this is the special sauce - first emit the data from localstorage, then re-fetch the live data from the API and emit a second time. The async pipe will then re-render and update the UI | ||
}); | ||
} | ||
// declare in your module | ||
@@ -40,4 +47,4 @@ @NgModule({ | ||
AsyncCacheModule.forRoot({ | ||
driver: new LocalStorageDriver(), // default cache driver to use. Default in memory. You can also roll your own by implementing the CacheDriver interface | ||
fromCacheAndReplay: true // this is the special sauce - first emit the data from localstorage, then re-fetch the live data from the API and emit a second time. The async pipe will then re-render and update the UI | ||
provide: AsyncCacheOptions, | ||
useFactory: asyncCacheOptionsFactory | ||
}) | ||
@@ -44,0 +51,0 @@ ] |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
133
80940
677