diff --git a/redux-localstorage-debounce/redux-localstorage-debounce-tests.ts b/redux-localstorage-debounce/redux-localstorage-debounce-tests.ts new file mode 100644 index 0000000000..2d060cb768 --- /dev/null +++ b/redux-localstorage-debounce/redux-localstorage-debounce-tests.ts @@ -0,0 +1,29 @@ +// Redux Localstorage Filter Test +// ================================================================================ +/// +/// +/// + +// Imports +// -------------------------------------------------------------------------------- +import { compose } from "redux" +import { + default as persistState +} from "redux-localstorage" +import * as adapter from "redux-localstorage/lib/adapters/localStorage" +import { default as debounce } from "redux-localstorage-debounce" + +const storageWait = compose( + debounce(100) +)(adapter(window.localStorage)) +const enhancerWait = persistState(storageWait, "test") + +const storageMax = compose( + debounce(100, 200) +)(adapter(window.localStorage)) +const enhancerMax = persistState(storageMax, "test") + +const storageOpts = compose( + debounce(100, { maxWait : 200, foo : "bar" }) +)(adapter(window.localStorage)) +const enhancerOpts = persistState(storageOpts, "test") diff --git a/redux-localstorage-debounce/redux-localstorage-debounce.d.ts b/redux-localstorage-debounce/redux-localstorage-debounce.d.ts new file mode 100644 index 0000000000..ff3483c4e1 --- /dev/null +++ b/redux-localstorage-debounce/redux-localstorage-debounce.d.ts @@ -0,0 +1,23 @@ +// Type definitions for redux-localstorage-debounce v0.1.0 +// Project: https://github.com/elgerlambert/redux-localstorage-debounce +// Definitions by: Karol Janyst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// + +declare namespace ReduxLocalStorage { + + namespace Debounce { + interface DebounceOptions { + maxWait?: number + [key: string]: any + } + function debounce (wait: number, options?: number | DebounceOptions): (adapter: StorageAdapter) => StorageAdapter + } + +} + +declare module "redux-localstorage-debounce" { + export default ReduxLocalStorage.Debounce.debounce +} diff --git a/redux-localstorage-filter/redux-localstorage-filter-tests.ts b/redux-localstorage-filter/redux-localstorage-filter-tests.ts new file mode 100644 index 0000000000..83172ef0c1 --- /dev/null +++ b/redux-localstorage-filter/redux-localstorage-filter-tests.ts @@ -0,0 +1,24 @@ +// Redux Localstorage Filter Test +// ================================================================================ +/// +/// +/// + +// Imports +// -------------------------------------------------------------------------------- +import { compose } from "redux" +import { + default as persistState +} from "redux-localstorage" +import * as adapter from "redux-localstorage/lib/adapters/localStorage" +import { default as filter } from "redux-localstorage-filter" + +const storageSingle = compose( + filter("foo") +)(adapter(window.localStorage)) +const enhancerSingle = persistState(storageSingle, "test") + +const storageMulti = compose( + filter(["foo", "bar"]) +)(adapter(window.localStorage)) +const enhancerMulti = persistState(storageMulti, "test") diff --git a/redux-localstorage-filter/redux-localstorage-filter.d.ts b/redux-localstorage-filter/redux-localstorage-filter.d.ts new file mode 100644 index 0000000000..3bc1a51a93 --- /dev/null +++ b/redux-localstorage-filter/redux-localstorage-filter.d.ts @@ -0,0 +1,27 @@ +// Type definitions for redux-localstorage-filter v0.1.1 +// Project: https://github.com/elgerlambert/redux-localstorage-filter +// Definitions by: Karol Janyst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// + +declare namespace ReduxLocalStorage { + + namespace Filter { + function getSubset (obj: any, paths: Array): any + function filter (paths?: string | Array): (adapter: StorageAdapter) => StorageAdapter + } + +} + +declare module "redux-localstorage-filter" { + import getSubset = ReduxLocalStorage.Filter.getSubset + + export { + getSubset + } + + export default ReduxLocalStorage.Filter.filter + +} diff --git a/redux-localstorage/redux-localstorage-tests.ts b/redux-localstorage/redux-localstorage-tests.ts new file mode 100644 index 0000000000..f1a4393f7b --- /dev/null +++ b/redux-localstorage/redux-localstorage-tests.ts @@ -0,0 +1,40 @@ +// Redux Localstorage Test +// ================================================================================ +/// +/// + +// Imports +// -------------------------------------------------------------------------------- +import { compose, combineReducers, createStore } from "redux" +import { + default as persistState, + mergePersistedState, + actionTypes +} from "redux-localstorage" +import * as adapterAsyncStorage from "redux-localstorage/lib/adapters/AsyncStorage" +import * as adapterLocalStorage from "redux-localstorage/lib/adapters/localStorage" +import * as adapterSessionStorage from "redux-localstorage/lib/adapters/sessionStorage" + +const AsyncStorage: any = {} + +const rootReducer: Redux.Reducer = (state: any, action: any) => state + +const reducer = compose( + mergePersistedState() +)(rootReducer) + +const storageAsyncStorage = adapterAsyncStorage(AsyncStorage) +const storageLocalStorage = adapterLocalStorage(window.localStorage) +const storageSessionStorage = adapterSessionStorage(window.sessionStorage) + +const createStoreAsyncStorage = compose( + persistState(storageAsyncStorage, "foo") +)(createStore)(reducer) + +const createStoreLocalStorage = compose( + persistState(storageLocalStorage, "foo") +)(createStore)(reducer) + +const createStoreSessionStorage = compose( + persistState(storageSessionStorage, "foo") +)(createStore)(reducer) diff --git a/redux-localstorage/redux-localstorage.d.ts b/redux-localstorage/redux-localstorage.d.ts new file mode 100644 index 0000000000..aeeb940aab --- /dev/null +++ b/redux-localstorage/redux-localstorage.d.ts @@ -0,0 +1,67 @@ +// Type definitions for redux-localstorage v1.0.0-rc4 +// Project: https://github.com/elgerlambert/redux-localstorage +// Definitions by: Karol Janyst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace ReduxLocalStorage { + + interface ActionTypes { + INIT: string + } + + interface AdapterCallback { + (err?: any, result?: A): void + } + + interface StorageAdapter { + 0: A + put(key: string, value: any, callback: AdapterCallback): void + get(key: string, callback: AdapterCallback): void + del(key: string, callback: AdapterCallback): void + } + + interface StorageAdapterCreator { + (storage: A): StorageAdapter + } + + interface StorageAdapterEnhancer {} + + function mergePersistedState (merge?: (initialState: A1, persistentState: A2) => A1 & A2): (next: Redux.Reducer) => Redux.Reducer + + function persistState (storage?: StorageAdapter, key?: string, callback?: Function): Redux.GenericStoreEnhancer + +} + +declare module "redux-localstorage/lib/adapters/AsyncStorage" { + const adapterCreator: ReduxLocalStorage.StorageAdapterCreator + export = adapterCreator +} + +declare module "redux-localstorage/lib/adapters/localStorage" { + const adapterCreator: ReduxLocalStorage.StorageAdapterCreator + export = adapterCreator +} + +declare module "redux-localstorage/lib/adapters/sessionStorage" { + const adapterCreator: ReduxLocalStorage.StorageAdapterCreator + export = adapterCreator +} + +declare module "redux-localstorage" { + import mergePersistedState = ReduxLocalStorage.mergePersistedState + + const actionTypes: ReduxLocalStorage.ActionTypes + + export type StorageAdapterEnhancer = ReduxLocalStorage.StorageAdapterEnhancer + + export { + mergePersistedState, + actionTypes + } + + export default ReduxLocalStorage.persistState +} + +