diff --git a/redux-localstorage-debounce/index.d.ts b/redux-localstorage-debounce/index.d.ts new file mode 100644 index 0000000000..5cdc5bbd40 --- /dev/null +++ b/redux-localstorage-debounce/index.d.ts @@ -0,0 +1,12 @@ +// Type definitions for redux-localstorage-debounce 0.1 +// Project: https://github.com/elgerlambert/redux-localstorage-debounce +// Definitions by: Karol Janyst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { StorageAdapter } from "redux-localstorage"; + +interface DebounceOptions { + maxWait?: number; + [key: string]: any; +} +export default function debounce(wait: number, options?: number | DebounceOptions): (adapter: StorageAdapter) => StorageAdapter; diff --git a/redux-localstorage-debounce/package.json b/redux-localstorage-debounce/package.json new file mode 100644 index 0000000000..6cfd8dc05c --- /dev/null +++ b/redux-localstorage-debounce/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "redux": "^3.6.0" + } +} \ No newline at end of file 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..bb15d77121 --- /dev/null +++ b/redux-localstorage-debounce/redux-localstorage-debounce-tests.ts @@ -0,0 +1,21 @@ +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/tsconfig.json b/redux-localstorage-debounce/tsconfig.json new file mode 100644 index 0000000000..3d9a2cc37b --- /dev/null +++ b/redux-localstorage-debounce/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "redux-localstorage-debounce-tests.ts" + ] +} \ No newline at end of file diff --git a/redux-localstorage-debounce/tslint.json b/redux-localstorage-debounce/tslint.json new file mode 100644 index 0000000000..2221e40e4a --- /dev/null +++ b/redux-localstorage-debounce/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" } \ No newline at end of file diff --git a/redux-localstorage-filter/index.d.ts b/redux-localstorage-filter/index.d.ts new file mode 100644 index 0000000000..17a0c376ff --- /dev/null +++ b/redux-localstorage-filter/index.d.ts @@ -0,0 +1,9 @@ +// Type definitions for redux-localstorage-filter 0.1 +// Project: https://github.com/elgerlambert/redux-localstorage-filter +// Definitions by: Karol Janyst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { StorageAdapter } from "redux-localstorage"; + +export function getSubset (obj: any, paths: string[]): any; +export default function filter (paths?: string | string[]): (adapter: StorageAdapter) => StorageAdapter; diff --git a/redux-localstorage-filter/package.json b/redux-localstorage-filter/package.json new file mode 100644 index 0000000000..6cfd8dc05c --- /dev/null +++ b/redux-localstorage-filter/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "redux": "^3.6.0" + } +} \ No newline at end of file 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..83939ea310 --- /dev/null +++ b/redux-localstorage-filter/redux-localstorage-filter-tests.ts @@ -0,0 +1,16 @@ +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/tsconfig.json b/redux-localstorage-filter/tsconfig.json new file mode 100644 index 0000000000..05831de9b1 --- /dev/null +++ b/redux-localstorage-filter/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "redux-localstorage-filter-tests.ts" + ] +} \ No newline at end of file diff --git a/redux-localstorage-filter/tslint.json b/redux-localstorage-filter/tslint.json new file mode 100644 index 0000000000..2221e40e4a --- /dev/null +++ b/redux-localstorage-filter/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" } \ No newline at end of file diff --git a/redux-localstorage/index.d.ts b/redux-localstorage/index.d.ts new file mode 100644 index 0000000000..b0922a9279 --- /dev/null +++ b/redux-localstorage/index.d.ts @@ -0,0 +1,29 @@ +// Type definitions for redux-localstorage 1.0 +// Project: https://github.com/elgerlambert/redux-localstorage +// Definitions by: Karol Janyst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import * as Redux from "redux"; + +export interface ActionTypes { + INIT: string; +} + +export type AdapterCallback = (err?: any, result?: A) => void; + +export interface StorageAdapter { + 0: A; + put(key: string, value: any, callback: AdapterCallback): void; + get(key: string, callback: AdapterCallback): void; + del(key: string, callback: AdapterCallback): void; +} + +export type StorageAdapterCreator = (storage: A) => StorageAdapter; + +export interface StorageAdapterEnhancer {} + +export function mergePersistedState (merge?: (initialState: A1, persistentState: A2) => A1 & A2): (next: Redux.Reducer) => Redux.Reducer; + +export default function persistState (storage?: StorageAdapter, key?: string, callback?: Function): Redux.GenericStoreEnhancer; + +export const actionTypes: ActionTypes; diff --git a/redux-localstorage/lib/adapters/AsyncStorage.d.ts b/redux-localstorage/lib/adapters/AsyncStorage.d.ts new file mode 100644 index 0000000000..f917bcc1d0 --- /dev/null +++ b/redux-localstorage/lib/adapters/AsyncStorage.d.ts @@ -0,0 +1,3 @@ +import { StorageAdapterCreator } from "redux-localstorage"; +declare const adapterCreator: StorageAdapterCreator; +export = adapterCreator; diff --git a/redux-localstorage/lib/adapters/localStorage.d.ts b/redux-localstorage/lib/adapters/localStorage.d.ts new file mode 100644 index 0000000000..65fad8d445 --- /dev/null +++ b/redux-localstorage/lib/adapters/localStorage.d.ts @@ -0,0 +1,3 @@ +import { StorageAdapterCreator } from "redux-localstorage"; +declare const adapterCreator: StorageAdapterCreator; +export = adapterCreator; diff --git a/redux-localstorage/lib/adapters/sessionStorage.d.ts b/redux-localstorage/lib/adapters/sessionStorage.d.ts new file mode 100644 index 0000000000..65fad8d445 --- /dev/null +++ b/redux-localstorage/lib/adapters/sessionStorage.d.ts @@ -0,0 +1,3 @@ +import { StorageAdapterCreator } from "redux-localstorage"; +declare const adapterCreator: StorageAdapterCreator; +export = adapterCreator; diff --git a/redux-localstorage/package.json b/redux-localstorage/package.json new file mode 100644 index 0000000000..e52256ea90 --- /dev/null +++ b/redux-localstorage/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "redux": "^3.6.0" + } +} \ No newline at end of file diff --git a/redux-localstorage/redux-localstorage-tests.ts b/redux-localstorage/redux-localstorage-tests.ts new file mode 100644 index 0000000000..4c647c8410 --- /dev/null +++ b/redux-localstorage/redux-localstorage-tests.ts @@ -0,0 +1,35 @@ +// Imports +// -------------------------------------------------------------------------------- +import { Reducer, 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: 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/tsconfig.json b/redux-localstorage/tsconfig.json new file mode 100644 index 0000000000..41c01c51d5 --- /dev/null +++ b/redux-localstorage/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "redux-localstorage-tests.ts" + ] +} \ No newline at end of file diff --git a/redux-localstorage/tslint.json b/redux-localstorage/tslint.json new file mode 100644 index 0000000000..e050abdce9 --- /dev/null +++ b/redux-localstorage/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "../tslint.json", + "rules": { + "forbidden-types": false, + "no-empty-interface": false + } +} \ No newline at end of file