effector-storage 5.0.1 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +95 -21
  2. package/async-storage/index.cjs +1 -1
  3. package/async-storage/index.cjs.d.ts +12 -5
  4. package/async-storage/index.cjs.map +1 -1
  5. package/async-storage/index.d.ts +12 -5
  6. package/async-storage/index.js +1 -1
  7. package/async-storage/index.js.flow +21 -4
  8. package/async-storage/index.js.map +1 -1
  9. package/async-storage/package.json +1 -0
  10. package/core/index.cjs +2 -0
  11. package/core/index.cjs.d.ts +90 -0
  12. package/core/index.cjs.map +1 -0
  13. package/core/index.d.ts +90 -0
  14. package/core/index.js +2 -0
  15. package/core/index.js.flow +113 -0
  16. package/core/index.js.map +1 -0
  17. package/core/package.json +8 -0
  18. package/index.cjs +1 -1
  19. package/index.cjs.d.ts +54 -12
  20. package/index.cjs.map +1 -1
  21. package/index.d.ts +54 -12
  22. package/index.js +1 -1
  23. package/index.js.flow +61 -10
  24. package/index.js.map +1 -1
  25. package/local/index.cjs +1 -1
  26. package/local/index.cjs.d.ts +45 -15
  27. package/local/index.cjs.map +1 -1
  28. package/local/index.d.ts +45 -15
  29. package/local/index.js +1 -1
  30. package/local/index.js.flow +53 -13
  31. package/local/index.js.map +1 -1
  32. package/local/package.json +1 -0
  33. package/log/index.cjs +2 -0
  34. package/log/index.cjs.d.ts +19 -0
  35. package/log/index.cjs.map +1 -0
  36. package/log/index.d.ts +19 -0
  37. package/log/index.js +2 -0
  38. package/log/index.js.flow +31 -0
  39. package/log/index.js.map +1 -0
  40. package/log/package.json +8 -0
  41. package/memory/index.cjs +1 -1
  42. package/memory/index.cjs.d.ts +42 -9
  43. package/memory/index.cjs.map +1 -1
  44. package/memory/index.d.ts +42 -9
  45. package/memory/index.js +1 -1
  46. package/memory/index.js.flow +45 -6
  47. package/memory/index.js.map +1 -1
  48. package/memory/package.json +1 -0
  49. package/nil/index.cjs +1 -1
  50. package/nil/index.cjs.d.ts +16 -6
  51. package/nil/index.cjs.map +1 -1
  52. package/nil/index.d.ts +16 -6
  53. package/nil/index.js +1 -1
  54. package/nil/index.js.flow +24 -4
  55. package/nil/index.js.map +1 -1
  56. package/nil/package.json +1 -0
  57. package/package.json +20 -4
  58. package/query/index.cjs +1 -1
  59. package/query/index.cjs.d.ts +50 -22
  60. package/query/index.cjs.map +1 -1
  61. package/query/index.d.ts +50 -22
  62. package/query/index.js +1 -1
  63. package/query/index.js.flow +54 -15
  64. package/query/index.js.map +1 -1
  65. package/query/package.json +1 -0
  66. package/rn/async/index.cjs +1 -1
  67. package/rn/async/index.cjs.d.ts +40 -13
  68. package/rn/async/index.cjs.map +1 -1
  69. package/rn/async/index.d.ts +40 -13
  70. package/rn/async/index.js +1 -1
  71. package/rn/async/index.js.flow +48 -11
  72. package/rn/async/index.js.map +1 -1
  73. package/rn/async/package.json +1 -0
  74. package/rn/encrypted/index.cjs +1 -1
  75. package/rn/encrypted/index.cjs.d.ts +40 -13
  76. package/rn/encrypted/index.cjs.map +1 -1
  77. package/rn/encrypted/index.d.ts +40 -13
  78. package/rn/encrypted/index.js +1 -1
  79. package/rn/encrypted/index.js.flow +50 -11
  80. package/rn/encrypted/index.js.map +1 -1
  81. package/rn/encrypted/package.json +1 -0
  82. package/session/index.cjs +1 -1
  83. package/session/index.cjs.d.ts +45 -15
  84. package/session/index.cjs.map +1 -1
  85. package/session/index.d.ts +45 -15
  86. package/session/index.js +1 -1
  87. package/session/index.js.flow +53 -13
  88. package/session/index.js.map +1 -1
  89. package/session/package.json +1 -0
  90. package/storage/index.cjs +1 -1
  91. package/storage/index.cjs.d.ts +17 -6
  92. package/storage/index.cjs.map +1 -1
  93. package/storage/index.d.ts +17 -6
  94. package/storage/index.js +1 -1
  95. package/storage/index.js.flow +24 -5
  96. package/storage/index.js.map +1 -1
  97. package/storage/package.json +1 -0
  98. package/tools/index.cjs +2 -0
  99. package/tools/index.cjs.d.ts +125 -0
  100. package/tools/index.cjs.map +1 -0
  101. package/tools/index.d.ts +125 -0
  102. package/tools/index.js +2 -0
  103. package/tools/index.js.flow +101 -0
  104. package/tools/index.js.map +1 -0
  105. package/tools/package.json +8 -0
@@ -2,25 +2,36 @@ import { Unit, Store, Event, Effect, Subscription } from 'effector'
2
2
 
3
3
  interface StorageAdapter {
4
4
  <State>(key: string, update: (raw?: any) => any): {
5
- set(value: State): void
6
- get(value?: any): State | Promise<State>
5
+ get(raw?: any, ctx?: any): State | Promise<State | undefined> | undefined
6
+ set(value: State, ctx?: any): void
7
7
  }
8
8
  keyArea?: any
9
+ noop?: boolean
9
10
  }
10
- declare type Done<State> = {
11
+ interface StorageAdapterFactory<AdapterConfig> {
12
+ (config?: AdapterConfig): StorageAdapter
13
+ factory: true
14
+ }
15
+ type Contract<Data> =
16
+ | ((raw: unknown) => raw is Data)
17
+ | {
18
+ isData: (raw: unknown) => raw is Data
19
+ getErrorMessages: (raw: unknown) => string[]
20
+ }
21
+ type Done<State> = {
11
22
  key: string
12
23
  keyPrefix: string
13
24
  operation: 'set' | 'get'
14
25
  value: State
15
26
  }
16
- declare type Fail<Err> = {
27
+ type Fail<Err> = {
17
28
  key: string
18
29
  keyPrefix: string
19
30
  operation: 'set' | 'get'
20
31
  error: Err
21
32
  value?: any
22
33
  }
23
- declare type Finally<State, Err> =
34
+ type Finally<State, Err> =
24
35
  | (Done<State> & {
25
36
  status: 'done'
26
37
  })
@@ -28,7 +39,10 @@ declare type Finally<State, Err> =
28
39
  status: 'fail'
29
40
  })
30
41
  interface ConfigPersist$1 {
42
+ pickup?: Unit<any>
43
+ context?: Unit<any>
31
44
  keyPrefix?: string
45
+ contract?: Contract<any>
32
46
  }
33
47
  interface ConfigCommon<State, Err = Error> {
34
48
  clock?: Unit<any>
@@ -36,8 +50,10 @@ interface ConfigCommon<State, Err = Error> {
36
50
  fail?: Unit<Fail<Err>>
37
51
  finally?: Unit<Finally<State, Err>>
38
52
  pickup?: Unit<any>
53
+ context?: Unit<any>
39
54
  key?: string
40
55
  keyPrefix?: string
56
+ contract?: Contract<State | undefined>
41
57
  }
42
58
  interface ConfigJustStore<State> {
43
59
  store: Store<State>
@@ -46,27 +62,38 @@ interface ConfigJustSourceTarget<State> {
46
62
  source: Store<State> | Event<State> | Effect<State, any, any>
47
63
  target: Store<State> | Event<State> | Effect<State, any, any>
48
64
  }
65
+ interface ConfigStore$1<State, Err = Error>
66
+ extends ConfigCommon<State, Err>,
67
+ ConfigJustStore<State> {}
68
+ interface ConfigSourceTarget$1<State, Err = Error>
69
+ extends ConfigCommon<State, Err>,
70
+ ConfigJustSourceTarget<State> {}
49
71
 
50
72
  interface ConfigPersist extends ConfigPersist$1 {
51
- sync?: boolean
73
+ sync?: boolean | 'force'
74
+ timeout?: number
52
75
  }
53
- interface AdapterConfig {
54
- sync?: boolean
76
+ interface LocalStorageConfig {
77
+ sync?: boolean | 'force'
55
78
  serialize?: (value: any) => string
56
79
  deserialize?: (value: string) => any
80
+ timeout?: number
81
+ def?: any
57
82
  }
58
83
  interface ConfigStore<State, Err = Error>
59
- extends AdapterConfig,
60
- ConfigCommon<State, Err>,
61
- ConfigJustStore<State> {}
84
+ extends LocalStorageConfig,
85
+ ConfigStore$1<State, Err> {}
62
86
  interface ConfigSourceTarget<State, Err = Error>
63
- extends AdapterConfig,
64
- ConfigCommon<State, Err>,
65
- ConfigJustSourceTarget<State> {}
87
+ extends LocalStorageConfig,
88
+ ConfigSourceTarget$1<State, Err> {}
66
89
  interface Persist {
67
90
  <State, Err = Error>(config: ConfigSourceTarget<State, Err>): Subscription
68
91
  <State, Err = Error>(config: ConfigStore<State, Err>): Subscription
69
92
  }
93
+ declare function local(config?: LocalStorageConfig): StorageAdapter
94
+ declare namespace local {
95
+ var factory: true
96
+ }
70
97
  /**
71
98
  * Creates custom partially applied `persist`
72
99
  * with predefined `localStorage` adapter
@@ -78,15 +105,18 @@ declare function createPersist(defaults?: ConfigPersist): Persist
78
105
  declare const persist: Persist
79
106
 
80
107
  export {
81
- AdapterConfig,
82
108
  ConfigPersist,
83
109
  ConfigSourceTarget,
84
110
  ConfigStore,
111
+ Contract,
85
112
  Done,
86
113
  Fail,
87
114
  Finally,
115
+ LocalStorageConfig,
88
116
  Persist,
89
117
  StorageAdapter,
118
+ StorageAdapterFactory,
90
119
  createPersist,
120
+ local,
91
121
  persist,
92
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/local/index.ts"],"sourcesContent":["import type { Subscription } from 'effector'\nimport type {\n ConfigPersist as BaseConfigPersist,\n ConfigCommon,\n ConfigJustStore,\n ConfigJustSourceTarget,\n} from '../types'\nimport { persist as base } from '../persist'\nimport { nil } from '../nil'\nimport { storage } from '../storage'\n\nexport type { Done, Fail, Finally, StorageAdapter } from '../types'\n\nexport interface ConfigPersist extends BaseConfigPersist {\n sync?: boolean\n}\n\nexport interface AdapterConfig {\n sync?: boolean\n serialize?: (value: any) => string\n deserialize?: (value: string) => any\n}\n\nexport interface ConfigStore<State, Err = Error>\n extends AdapterConfig,\n ConfigCommon<State, Err>,\n ConfigJustStore<State> {}\n\nexport interface ConfigSourceTarget<State, Err = Error>\n extends AdapterConfig,\n ConfigCommon<State, Err>,\n ConfigJustSourceTarget<State> {}\n\nexport interface Persist {\n <State, Err = Error>(config: ConfigSourceTarget<State, Err>): Subscription\n <State, Err = Error>(config: ConfigStore<State, Err>): Subscription\n}\n\n/**\n * Function, checking if `localStorage` exists and accessible\n */\nfunction supports() {\n try {\n return typeof localStorage !== 'undefined'\n } catch (error) {\n return false // should somehow return error instance?\n }\n}\n\n/**\n * Creates custom partially applied `persist`\n * with predefined `localStorage` adapter\n */\nexport function createPersist(defaults?: ConfigPersist): Persist {\n return (config) =>\n base({\n adapter: supports()\n ? storage({\n storage: localStorage,\n sync: true,\n ...defaults,\n ...config,\n })\n : nil('local'),\n ...defaults,\n ...config,\n })\n}\n\n/**\n * Default partially applied `persist`\n */\nexport const persist = createPersist()\n"],"names":["supports","localStorage","error","createPersist","defaults","config","base","adapter","storage","sync","nil","persist"],"mappings":"2GAyCA,SAASA,IACP,IACE,MAA+B,oBAAjBC,YAGf,CAFC,MAAOC,GACP,OAAO,CACR,CACF,CAMM,SAASC,EAAcC,GAC5B,OAAQC,GACNC,EAAAA,QAAK,CACHC,QAASP,IACLQ,UAAQ,CACNA,QAASP,aACTQ,MAAM,KACHL,KACAC,IAELK,EAAGA,IAAC,YACLN,KACAC,GAER,CAKYM,IAAAA,EAAUR"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/local/index.ts"],"sourcesContent":["import type { Subscription } from 'effector'\nimport type {\n ConfigPersist as BaseConfigPersist,\n ConfigStore as BaseConfigStore,\n ConfigSourceTarget as BaseConfigSourceTarget,\n StorageAdapter,\n} from '../types'\nimport { persist as base } from '../core'\nimport { nil } from '../nil'\nimport { storage } from '../storage'\n\nexport type {\n Contract,\n Done,\n Fail,\n Finally,\n StorageAdapter,\n StorageAdapterFactory,\n} from '../types'\n\nexport interface ConfigPersist extends BaseConfigPersist {\n sync?: boolean | 'force'\n timeout?: number\n}\n\nexport interface LocalStorageConfig {\n sync?: boolean | 'force'\n serialize?: (value: any) => string\n deserialize?: (value: string) => any\n timeout?: number\n def?: any\n}\n\nexport interface ConfigStore<State, Err = Error>\n extends LocalStorageConfig,\n BaseConfigStore<State, Err> {}\n\nexport interface ConfigSourceTarget<State, Err = Error>\n extends LocalStorageConfig,\n BaseConfigSourceTarget<State, Err> {}\n\nexport interface Persist {\n <State, Err = Error>(config: ConfigSourceTarget<State, Err>): Subscription\n <State, Err = Error>(config: ConfigStore<State, Err>): Subscription\n}\n\n/**\n * Function, checking if `localStorage` exists\n */\nfunction supports() {\n try {\n return typeof localStorage !== 'undefined'\n } catch (error) {\n // accessing `localStorage` could throw an exception only in one case -\n // when `localStorage` IS supported, but blocked by security policies\n return true\n }\n}\n\n/**\n * Creates `localStorage` adapter\n */\nlocal.factory = true as const\nexport function local(config?: LocalStorageConfig): StorageAdapter {\n return supports()\n ? storage({\n storage: () => localStorage,\n sync: true,\n ...config,\n })\n : nil({ keyArea: 'local' })\n}\n\n/**\n * Creates custom partially applied `persist`\n * with predefined `localStorage` adapter\n */\nexport function createPersist(defaults?: ConfigPersist): Persist {\n return (config) =>\n base({\n adapter: local,\n ...defaults,\n ...config,\n })\n}\n\n/**\n * Default partially applied `persist`\n */\nexport const persist = createPersist()\n"],"names":["local","config","localStorage","error","supports","storage","sync","nil","keyArea","createPersist","defaults","base","adapter","factory","persist"],"mappings":"gHA+DO,SAASA,EAAMC,GACpB,OAfF,WACE,IACE,MAA+B,oBAAjBC,YACf,CAAC,MAAOC,GAGP,OAAO,CACT,CACF,CAOSC,GACHC,UAAQ,CACNA,QAASA,IAAMH,aACfI,MAAM,KACHL,IAELM,EAAAA,IAAI,CAAEC,QAAS,SACrB,CAMO,SAASC,EAAcC,GAC5B,OAAQT,GACNU,EAAAA,QAAK,CACHC,QAASZ,KACNU,KACAT,GAET,CAtBAD,EAAMa,SAAU,EA2BHC,IAAAA,EAAUL"}
package/local/index.d.ts CHANGED
@@ -2,25 +2,36 @@ import { Unit, Store, Event, Effect, Subscription } from 'effector'
2
2
 
3
3
  interface StorageAdapter {
4
4
  <State>(key: string, update: (raw?: any) => any): {
5
- set(value: State): void
6
- get(value?: any): State | Promise<State>
5
+ get(raw?: any, ctx?: any): State | Promise<State | undefined> | undefined
6
+ set(value: State, ctx?: any): void
7
7
  }
8
8
  keyArea?: any
9
+ noop?: boolean
9
10
  }
10
- declare type Done<State> = {
11
+ interface StorageAdapterFactory<AdapterConfig> {
12
+ (config?: AdapterConfig): StorageAdapter
13
+ factory: true
14
+ }
15
+ type Contract<Data> =
16
+ | ((raw: unknown) => raw is Data)
17
+ | {
18
+ isData: (raw: unknown) => raw is Data
19
+ getErrorMessages: (raw: unknown) => string[]
20
+ }
21
+ type Done<State> = {
11
22
  key: string
12
23
  keyPrefix: string
13
24
  operation: 'set' | 'get'
14
25
  value: State
15
26
  }
16
- declare type Fail<Err> = {
27
+ type Fail<Err> = {
17
28
  key: string
18
29
  keyPrefix: string
19
30
  operation: 'set' | 'get'
20
31
  error: Err
21
32
  value?: any
22
33
  }
23
- declare type Finally<State, Err> =
34
+ type Finally<State, Err> =
24
35
  | (Done<State> & {
25
36
  status: 'done'
26
37
  })
@@ -28,7 +39,10 @@ declare type Finally<State, Err> =
28
39
  status: 'fail'
29
40
  })
30
41
  interface ConfigPersist$1 {
42
+ pickup?: Unit<any>
43
+ context?: Unit<any>
31
44
  keyPrefix?: string
45
+ contract?: Contract<any>
32
46
  }
33
47
  interface ConfigCommon<State, Err = Error> {
34
48
  clock?: Unit<any>
@@ -36,8 +50,10 @@ interface ConfigCommon<State, Err = Error> {
36
50
  fail?: Unit<Fail<Err>>
37
51
  finally?: Unit<Finally<State, Err>>
38
52
  pickup?: Unit<any>
53
+ context?: Unit<any>
39
54
  key?: string
40
55
  keyPrefix?: string
56
+ contract?: Contract<State | undefined>
41
57
  }
42
58
  interface ConfigJustStore<State> {
43
59
  store: Store<State>
@@ -46,27 +62,38 @@ interface ConfigJustSourceTarget<State> {
46
62
  source: Store<State> | Event<State> | Effect<State, any, any>
47
63
  target: Store<State> | Event<State> | Effect<State, any, any>
48
64
  }
65
+ interface ConfigStore$1<State, Err = Error>
66
+ extends ConfigCommon<State, Err>,
67
+ ConfigJustStore<State> {}
68
+ interface ConfigSourceTarget$1<State, Err = Error>
69
+ extends ConfigCommon<State, Err>,
70
+ ConfigJustSourceTarget<State> {}
49
71
 
50
72
  interface ConfigPersist extends ConfigPersist$1 {
51
- sync?: boolean
73
+ sync?: boolean | 'force'
74
+ timeout?: number
52
75
  }
53
- interface AdapterConfig {
54
- sync?: boolean
76
+ interface LocalStorageConfig {
77
+ sync?: boolean | 'force'
55
78
  serialize?: (value: any) => string
56
79
  deserialize?: (value: string) => any
80
+ timeout?: number
81
+ def?: any
57
82
  }
58
83
  interface ConfigStore<State, Err = Error>
59
- extends AdapterConfig,
60
- ConfigCommon<State, Err>,
61
- ConfigJustStore<State> {}
84
+ extends LocalStorageConfig,
85
+ ConfigStore$1<State, Err> {}
62
86
  interface ConfigSourceTarget<State, Err = Error>
63
- extends AdapterConfig,
64
- ConfigCommon<State, Err>,
65
- ConfigJustSourceTarget<State> {}
87
+ extends LocalStorageConfig,
88
+ ConfigSourceTarget$1<State, Err> {}
66
89
  interface Persist {
67
90
  <State, Err = Error>(config: ConfigSourceTarget<State, Err>): Subscription
68
91
  <State, Err = Error>(config: ConfigStore<State, Err>): Subscription
69
92
  }
93
+ declare function local(config?: LocalStorageConfig): StorageAdapter
94
+ declare namespace local {
95
+ var factory: true
96
+ }
70
97
  /**
71
98
  * Creates custom partially applied `persist`
72
99
  * with predefined `localStorage` adapter
@@ -78,15 +105,18 @@ declare function createPersist(defaults?: ConfigPersist): Persist
78
105
  declare const persist: Persist
79
106
 
80
107
  export {
81
- AdapterConfig,
82
108
  ConfigPersist,
83
109
  ConfigSourceTarget,
84
110
  ConfigStore,
111
+ Contract,
85
112
  Done,
86
113
  Fail,
87
114
  Finally,
115
+ LocalStorageConfig,
88
116
  Persist,
89
117
  StorageAdapter,
118
+ StorageAdapterFactory,
90
119
  createPersist,
120
+ local,
91
121
  persist,
92
122
  }
package/local/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{persist as r}from"../index.js";import{nil as t}from"../nil/index.js";import{storage as o}from"../storage/index.js";function e(){try{return"undefined"!=typeof localStorage}catch(r){return!1}}function n(n){return a=>r({adapter:e()?o({storage:localStorage,sync:!0,...n,...a}):t("local"),...n,...a})}var a=n();export{n as createPersist,a as persist};
1
+ import{persist as r}from"../core/index.js";import{nil as t}from"../nil/index.js";import{storage as e}from"../storage/index.js";function o(r){return function(){try{return"undefined"!=typeof localStorage}catch(r){return!0}}()?e({storage:()=>localStorage,sync:!0,...r}):t({keyArea:"local"})}function n(t){return e=>r({adapter:o,...t,...e})}o.factory=!0;var a=n();export{n as createPersist,o as local,a as persist};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Flowtype definitions for index
3
3
  * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.20.1
4
+ * Flowgen v1.21.0
5
5
  * @flow
6
6
  */
7
7
 
@@ -11,12 +11,24 @@ declare interface StorageAdapter {
11
11
  key: string,
12
12
  update: (raw?: any) => any
13
13
  ): {
14
- set(value: State): void,
15
- get(value?: any): State | Promise<State>,
14
+ get(raw?: any, ctx?: any): State | Promise<State | void> | void,
15
+ set(value: State, ctx?: any): void,
16
16
  ...
17
17
  };
18
18
  keyArea?: any;
19
+ noop?: boolean;
19
20
  }
21
+ declare interface StorageAdapterFactory<AdapterConfig> {
22
+ (config?: AdapterConfig): StorageAdapter;
23
+ factory: true;
24
+ }
25
+ declare type Contract<Data> =
26
+ | ((raw: mixed) => boolean)
27
+ | {
28
+ isData: (raw: mixed) => boolean,
29
+ getErrorMessages: (raw: mixed) => string[],
30
+ ...
31
+ }
20
32
  declare type Done<State> = {
21
33
  key: string,
22
34
  keyPrefix: string,
@@ -48,7 +60,10 @@ declare type Finally<State, Err> =
48
60
  },
49
61
  }
50
62
  declare interface ConfigPersist$1 {
63
+ pickup?: Unit<any>;
64
+ context?: Unit<any>;
51
65
  keyPrefix?: string;
66
+ contract?: Contract<any>;
52
67
  }
53
68
  declare interface ConfigCommon<State, Err = Error> {
54
69
  clock?: Unit<any>;
@@ -56,8 +71,10 @@ declare interface ConfigCommon<State, Err = Error> {
56
71
  fail?: Unit<Fail<Err>>;
57
72
  finally?: Unit<Finally<State, Err>>;
58
73
  pickup?: Unit<any>;
74
+ context?: Unit<any>;
59
75
  key?: string;
60
76
  keyPrefix?: string;
77
+ contract?: Contract<State | void>;
61
78
  }
62
79
  declare interface ConfigJustStore<State> {
63
80
  store: Store<State>;
@@ -66,37 +83,60 @@ declare interface ConfigJustSourceTarget<State> {
66
83
  source: Store<State> | Event<State> | Effect<State, any, any>;
67
84
  target: Store<State> | Event<State> | Effect<State, any, any>;
68
85
  }
86
+ declare type ConfigStore$1<State, Err = Error> = { ... } & ConfigCommon<
87
+ State,
88
+ Err
89
+ > &
90
+ ConfigJustStore<State>
91
+ declare type ConfigSourceTarget$1<State, Err = Error> = { ... } & ConfigCommon<
92
+ State,
93
+ Err
94
+ > &
95
+ ConfigJustSourceTarget<State>
69
96
  declare type ConfigPersist = {
70
- sync?: boolean,
97
+ sync?: boolean | 'force',
98
+ timeout?: number,
71
99
  ...
72
100
  } & ConfigPersist$1
73
- declare interface AdapterConfig {
74
- sync?: boolean;
101
+ declare interface LocalStorageConfig {
102
+ sync?: boolean | 'force';
75
103
  serialize?: (value: any) => string;
76
104
  deserialize?: (value: string) => any;
105
+ timeout?: number;
106
+ def?: any;
77
107
  }
78
- declare type ConfigStore<State, Err = Error> = { ... } & AdapterConfig &
79
- ConfigCommon<State, Err> &
80
- ConfigJustStore<State>
81
- declare type ConfigSourceTarget<State, Err = Error> = { ... } & AdapterConfig &
82
- ConfigCommon<State, Err> &
83
- ConfigJustSourceTarget<State>
108
+ declare type ConfigStore<State, Err = Error> = { ... } & LocalStorageConfig &
109
+ ConfigStore$1<State, Err>
110
+ declare type ConfigSourceTarget<State, Err = Error> = {
111
+ ...
112
+ } & LocalStorageConfig &
113
+ ConfigSourceTarget$1<State, Err>
84
114
  declare interface Persist {
85
115
  <State, Err>(config: ConfigSourceTarget<State, Err>): Subscription;
86
116
  <State, Err>(config: ConfigStore<State, Err>): Subscription;
87
117
  }
118
+ declare var local: typeof npm$namespace$local
119
+
120
+ declare var npm$namespace$local: {|
121
+ (config?: LocalStorageConfig): StorageAdapter,
122
+ factory: typeof local$factory,
123
+ |}
124
+ declare var local$factory: true
88
125
  declare function createPersist(defaults?: ConfigPersist): Persist
89
126
  declare var persist: Persist
90
127
  declare export {
91
- AdapterConfig,
92
128
  ConfigPersist,
93
129
  ConfigSourceTarget,
94
130
  ConfigStore,
131
+ Contract,
95
132
  Done,
96
133
  Fail,
97
134
  Finally,
135
+ LocalStorageConfig,
98
136
  Persist,
99
137
  StorageAdapter,
138
+ StorageAdapterFactory,
100
139
  createPersist,
140
+ local,
101
141
  persist,
102
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/local/index.ts"],"sourcesContent":["import type { Subscription } from 'effector'\nimport type {\n ConfigPersist as BaseConfigPersist,\n ConfigCommon,\n ConfigJustStore,\n ConfigJustSourceTarget,\n} from '../types'\nimport { persist as base } from '../persist'\nimport { nil } from '../nil'\nimport { storage } from '../storage'\n\nexport type { Done, Fail, Finally, StorageAdapter } from '../types'\n\nexport interface ConfigPersist extends BaseConfigPersist {\n sync?: boolean\n}\n\nexport interface AdapterConfig {\n sync?: boolean\n serialize?: (value: any) => string\n deserialize?: (value: string) => any\n}\n\nexport interface ConfigStore<State, Err = Error>\n extends AdapterConfig,\n ConfigCommon<State, Err>,\n ConfigJustStore<State> {}\n\nexport interface ConfigSourceTarget<State, Err = Error>\n extends AdapterConfig,\n ConfigCommon<State, Err>,\n ConfigJustSourceTarget<State> {}\n\nexport interface Persist {\n <State, Err = Error>(config: ConfigSourceTarget<State, Err>): Subscription\n <State, Err = Error>(config: ConfigStore<State, Err>): Subscription\n}\n\n/**\n * Function, checking if `localStorage` exists and accessible\n */\nfunction supports() {\n try {\n return typeof localStorage !== 'undefined'\n } catch (error) {\n return false // should somehow return error instance?\n }\n}\n\n/**\n * Creates custom partially applied `persist`\n * with predefined `localStorage` adapter\n */\nexport function createPersist(defaults?: ConfigPersist): Persist {\n return (config) =>\n base({\n adapter: supports()\n ? storage({\n storage: localStorage,\n sync: true,\n ...defaults,\n ...config,\n })\n : nil('local'),\n ...defaults,\n ...config,\n })\n}\n\n/**\n * Default partially applied `persist`\n */\nexport const persist = createPersist()\n"],"names":["supports","localStorage","error","createPersist","defaults","config","base","adapter","storage","sync","nil","persist"],"mappings":"0HAyCA,SAASA,IACP,IACE,MAA+B,oBAAjBC,YAGf,CAFC,MAAOC,GACP,OAAO,CACR,CACF,CAMM,SAASC,EAAcC,GAC5B,OAAQC,GACNC,EAAK,CACHC,QAASP,IACLQ,EAAQ,CACNA,QAASP,aACTQ,MAAM,KACHL,KACAC,IAELK,EAAI,YACLN,KACAC,GAER,CAKYM,IAAAA,EAAUR"}
1
+ {"version":3,"file":"index.js","sources":["../../src/local/index.ts"],"sourcesContent":["import type { Subscription } from 'effector'\nimport type {\n ConfigPersist as BaseConfigPersist,\n ConfigStore as BaseConfigStore,\n ConfigSourceTarget as BaseConfigSourceTarget,\n StorageAdapter,\n} from '../types'\nimport { persist as base } from '../core'\nimport { nil } from '../nil'\nimport { storage } from '../storage'\n\nexport type {\n Contract,\n Done,\n Fail,\n Finally,\n StorageAdapter,\n StorageAdapterFactory,\n} from '../types'\n\nexport interface ConfigPersist extends BaseConfigPersist {\n sync?: boolean | 'force'\n timeout?: number\n}\n\nexport interface LocalStorageConfig {\n sync?: boolean | 'force'\n serialize?: (value: any) => string\n deserialize?: (value: string) => any\n timeout?: number\n def?: any\n}\n\nexport interface ConfigStore<State, Err = Error>\n extends LocalStorageConfig,\n BaseConfigStore<State, Err> {}\n\nexport interface ConfigSourceTarget<State, Err = Error>\n extends LocalStorageConfig,\n BaseConfigSourceTarget<State, Err> {}\n\nexport interface Persist {\n <State, Err = Error>(config: ConfigSourceTarget<State, Err>): Subscription\n <State, Err = Error>(config: ConfigStore<State, Err>): Subscription\n}\n\n/**\n * Function, checking if `localStorage` exists\n */\nfunction supports() {\n try {\n return typeof localStorage !== 'undefined'\n } catch (error) {\n // accessing `localStorage` could throw an exception only in one case -\n // when `localStorage` IS supported, but blocked by security policies\n return true\n }\n}\n\n/**\n * Creates `localStorage` adapter\n */\nlocal.factory = true as const\nexport function local(config?: LocalStorageConfig): StorageAdapter {\n return supports()\n ? storage({\n storage: () => localStorage,\n sync: true,\n ...config,\n })\n : nil({ keyArea: 'local' })\n}\n\n/**\n * Creates custom partially applied `persist`\n * with predefined `localStorage` adapter\n */\nexport function createPersist(defaults?: ConfigPersist): Persist {\n return (config) =>\n base({\n adapter: local,\n ...defaults,\n ...config,\n })\n}\n\n/**\n * Default partially applied `persist`\n */\nexport const persist = createPersist()\n"],"names":["local","config","localStorage","error","supports","storage","sync","nil","keyArea","createPersist","defaults","base","adapter","factory","persist"],"mappings":"+HA+DO,SAASA,EAAMC,GACpB,OAfF,WACE,IACE,MAA+B,oBAAjBC,YACf,CAAC,MAAOC,GAGP,OAAO,CACT,CACF,CAOSC,GACHC,EAAQ,CACNA,QAASA,IAAMH,aACfI,MAAM,KACHL,IAELM,EAAI,CAAEC,QAAS,SACrB,CAMO,SAASC,EAAcC,GAC5B,OAAQT,GACNU,EAAK,CACHC,QAASZ,KACNU,KACAT,GAET,CAtBAD,EAAMa,SAAU,EA2BHC,IAAAA,EAAUL"}
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "type": "module",
3
+ "sideEffects": false,
3
4
  "main": "index.cjs",
4
5
  "module": "index.js",
5
6
  "react-native": "index.js",
package/log/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";function e({keyArea:e="",logger:o=console.log}={}){var t=e=>({set(t){o(`[log adapter] set value "${t}" with key "${e}"`)},get(){o(`[log adapter] get value for key "${e}"`)}});return t.keyArea=e,t.noop=!0,t}e.factory=!0,exports.log=e;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,19 @@
1
+ interface StorageAdapter {
2
+ <State>(key: string, update: (raw?: any) => any): {
3
+ get(raw?: any, ctx?: any): State | Promise<State | undefined> | undefined
4
+ set(value: State, ctx?: any): void
5
+ }
6
+ keyArea?: any
7
+ noop?: boolean
8
+ }
9
+
10
+ interface LogConfig {
11
+ keyArea?: any
12
+ logger?: (msg: string) => void
13
+ }
14
+ declare function log({ keyArea, logger }?: LogConfig): StorageAdapter
15
+ declare namespace log {
16
+ var factory: true
17
+ }
18
+
19
+ export { LogConfig, log }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/log/index.ts"],"sourcesContent":["import type { StorageAdapter } from '../types'\n\nexport interface LogConfig {\n keyArea?: any\n logger?: (msg: string) => void\n}\n\n/**\n * Log adapter\n * Does nothing, like `nil` adapter, but print messages\n */\nlog.factory = true as const\nexport function log({\n keyArea = '',\n logger = console.log,\n}: LogConfig = {}): StorageAdapter {\n const adapter: StorageAdapter = (key: string) =>\n <any>{\n set(value: any) {\n logger(`[log adapter] set value \"${value}\" with key \"${key}\"`)\n },\n get() {\n logger(`[log adapter] get value for key \"${key}\"`)\n },\n }\n\n adapter.keyArea = keyArea\n adapter.noop = true\n return adapter\n}\n"],"names":["log","keyArea","logger","console","adapter","key","set","value","get","noop","factory"],"mappings":"aAYO,SAASA,GAAIC,QAClBA,EAAU,GAAEC,OACZA,EAASC,QAAQH,KACJ,IACb,IAAMI,EAA2BC,IAC1B,CACHC,IAAIC,GACFL,EAAQ,4BAA2BK,gBAAoBF,KACxD,EACDG,MACEN,EAAQ,oCAAmCG,KAC7C,IAKJ,OAFAD,EAAQH,QAAUA,EAClBG,EAAQK,MAAO,EACRL,CACT,CAlBAJ,EAAIU,SAAU"}
package/log/index.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ interface StorageAdapter {
2
+ <State>(key: string, update: (raw?: any) => any): {
3
+ get(raw?: any, ctx?: any): State | Promise<State | undefined> | undefined
4
+ set(value: State, ctx?: any): void
5
+ }
6
+ keyArea?: any
7
+ noop?: boolean
8
+ }
9
+
10
+ interface LogConfig {
11
+ keyArea?: any
12
+ logger?: (msg: string) => void
13
+ }
14
+ declare function log({ keyArea, logger }?: LogConfig): StorageAdapter
15
+ declare namespace log {
16
+ var factory: true
17
+ }
18
+
19
+ export { LogConfig, log }
package/log/index.js ADDED
@@ -0,0 +1,2 @@
1
+ function e({keyArea:e="",logger:o=console.log}={}){var r=e=>({set(r){o(`[log adapter] set value "${r}" with key "${e}"`)},get(){o(`[log adapter] get value for key "${e}"`)}});return r.keyArea=e,r.noop=!0,r}e.factory=!0;export{e as log};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Flowtype definitions for index
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.21.0
5
+ * @flow
6
+ */
7
+
8
+ declare interface StorageAdapter {
9
+ <State>(
10
+ key: string,
11
+ update: (raw?: any) => any
12
+ ): {
13
+ get(raw?: any, ctx?: any): State | Promise<State | void> | void,
14
+ set(value: State, ctx?: any): void,
15
+ ...
16
+ };
17
+ keyArea?: any;
18
+ noop?: boolean;
19
+ }
20
+ declare interface LogConfig {
21
+ keyArea?: any;
22
+ logger?: (msg: string) => void;
23
+ }
24
+ declare var log: typeof npm$namespace$log
25
+
26
+ declare var npm$namespace$log: {|
27
+ (x?: LogConfig): StorageAdapter,
28
+ factory: typeof log$factory,
29
+ |}
30
+ declare var log$factory: true
31
+ declare export { LogConfig, log }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/log/index.ts"],"sourcesContent":["import type { StorageAdapter } from '../types'\n\nexport interface LogConfig {\n keyArea?: any\n logger?: (msg: string) => void\n}\n\n/**\n * Log adapter\n * Does nothing, like `nil` adapter, but print messages\n */\nlog.factory = true as const\nexport function log({\n keyArea = '',\n logger = console.log,\n}: LogConfig = {}): StorageAdapter {\n const adapter: StorageAdapter = (key: string) =>\n <any>{\n set(value: any) {\n logger(`[log adapter] set value \"${value}\" with key \"${key}\"`)\n },\n get() {\n logger(`[log adapter] get value for key \"${key}\"`)\n },\n }\n\n adapter.keyArea = keyArea\n adapter.noop = true\n return adapter\n}\n"],"names":["log","keyArea","logger","console","adapter","key","set","value","get","noop","factory"],"mappings":"AAYO,SAASA,GAAIC,QAClBA,EAAU,GAAEC,OACZA,EAASC,QAAQH,KACJ,IACb,IAAMI,EAA2BC,IAC1B,CACHC,IAAIC,GACFL,EAAQ,4BAA2BK,gBAAoBF,KACxD,EACDG,MACEN,EAAQ,oCAAmCG,KAC7C,IAKJ,OAFAD,EAAQH,QAAUA,EAClBG,EAAQK,MAAO,EACRL,CACT,CAlBAJ,EAAIU,SAAU"}
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "module",
3
+ "sideEffects": false,
4
+ "main": "index.cjs",
5
+ "module": "index.js",
6
+ "react-native": "index.js",
7
+ "types": "index.d.ts"
8
+ }
package/memory/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../index.cjs"),t=new Map,r=e=>({get:()=>t.get(e),set:r=>t.set(e,r)});function s(t){return s=>e.persist({adapter:r,...t,...s})}var i=s();exports.createPersist=s,exports.persist=i;
1
+ "use strict";var e=require("../core/index.cjs"),r=new Map;function t({area:e=r}={}){var t=r=>({get:()=>e.get(r),set:t=>e.set(r,t)});return t.keyArea=e,t}function s(r){return s=>e.persist({adapter:t(),...r,...s})}t.factory=!0;var a=s();exports.createPersist=s,exports.memory=t,exports.persist=a;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -2,33 +2,47 @@ import { Unit, Store, Event, Effect, Subscription } from 'effector'
2
2
 
3
3
  interface StorageAdapter {
4
4
  <State>(key: string, update: (raw?: any) => any): {
5
- set(value: State): void
6
- get(value?: any): State | Promise<State>
5
+ get(raw?: any, ctx?: any): State | Promise<State | undefined> | undefined
6
+ set(value: State, ctx?: any): void
7
7
  }
8
8
  keyArea?: any
9
+ noop?: boolean
9
10
  }
10
- declare type Done<State> = {
11
+ interface StorageAdapterFactory<AdapterConfig> {
12
+ (config?: AdapterConfig): StorageAdapter
13
+ factory: true
14
+ }
15
+ type Contract<Data> =
16
+ | ((raw: unknown) => raw is Data)
17
+ | {
18
+ isData: (raw: unknown) => raw is Data
19
+ getErrorMessages: (raw: unknown) => string[]
20
+ }
21
+ type Done<State> = {
11
22
  key: string
12
23
  keyPrefix: string
13
24
  operation: 'set' | 'get'
14
25
  value: State
15
26
  }
16
- declare type Fail<Err> = {
27
+ type Fail<Err> = {
17
28
  key: string
18
29
  keyPrefix: string
19
30
  operation: 'set' | 'get'
20
31
  error: Err
21
32
  value?: any
22
33
  }
23
- declare type Finally<State, Err> =
34
+ type Finally<State, Err> =
24
35
  | (Done<State> & {
25
36
  status: 'done'
26
37
  })
27
38
  | (Fail<Err> & {
28
39
  status: 'fail'
29
40
  })
30
- interface ConfigPersist {
41
+ interface ConfigPersist$1 {
42
+ pickup?: Unit<any>
43
+ context?: Unit<any>
31
44
  keyPrefix?: string
45
+ contract?: Contract<any>
32
46
  }
33
47
  interface ConfigCommon<State, Err = Error> {
34
48
  clock?: Unit<any>
@@ -36,8 +50,10 @@ interface ConfigCommon<State, Err = Error> {
36
50
  fail?: Unit<Fail<Err>>
37
51
  finally?: Unit<Finally<State, Err>>
38
52
  pickup?: Unit<any>
53
+ context?: Unit<any>
39
54
  key?: string
40
55
  keyPrefix?: string
56
+ contract?: Contract<State | undefined>
41
57
  }
42
58
  interface ConfigJustStore<State> {
43
59
  store: Store<State>
@@ -46,17 +62,30 @@ interface ConfigJustSourceTarget<State> {
46
62
  source: Store<State> | Event<State> | Effect<State, any, any>
47
63
  target: Store<State> | Event<State> | Effect<State, any, any>
48
64
  }
49
-
50
- interface ConfigStore<State, Err = Error>
65
+ interface ConfigStore$1<State, Err = Error>
51
66
  extends ConfigCommon<State, Err>,
52
67
  ConfigJustStore<State> {}
53
- interface ConfigSourceTarget<State, Err = Error>
68
+ interface ConfigSourceTarget$1<State, Err = Error>
54
69
  extends ConfigCommon<State, Err>,
55
70
  ConfigJustSourceTarget<State> {}
71
+
72
+ interface MemoryConfig {
73
+ area?: Map<string, any>
74
+ }
75
+ declare function adapter({ area }?: MemoryConfig): StorageAdapter
76
+ declare namespace adapter {
77
+ var factory: true
78
+ }
79
+
80
+ interface ConfigPersist extends ConfigPersist$1 {}
81
+ interface ConfigStore<State, Err = Error> extends ConfigStore$1<State, Err> {}
82
+ interface ConfigSourceTarget<State, Err = Error>
83
+ extends ConfigSourceTarget$1<State, Err> {}
56
84
  interface Persist {
57
85
  <State, Err = Error>(config: ConfigSourceTarget<State, Err>): Subscription
58
86
  <State, Err = Error>(config: ConfigStore<State, Err>): Subscription
59
87
  }
88
+
60
89
  /**
61
90
  * Creates custom partially applied `persist`
62
91
  * with predefined `memory` adapter
@@ -71,11 +100,15 @@ export {
71
100
  ConfigPersist,
72
101
  ConfigSourceTarget,
73
102
  ConfigStore,
103
+ Contract,
74
104
  Done,
75
105
  Fail,
76
106
  Finally,
107
+ MemoryConfig,
77
108
  Persist,
78
109
  StorageAdapter,
110
+ StorageAdapterFactory,
79
111
  createPersist,
112
+ adapter as memory,
80
113
  persist,
81
114
  }