mirror of
				https://github.com/reduxjs/redux-devtools.git
				synced 2025-10-26 05:31:16 +03:00 
			
		
		
		
	Fixes type for serialize option (#1112)
* Fixes type for serialize option * Create gold-chairs-rescue.md * Update gold-chairs-rescue.md Co-authored-by: Nathan Bierema <nbierema@gmail.com>
This commit is contained in:
		
							parent
							
								
									db1fcd12c0
								
							
						
					
					
						commit
						6cf1865f55
					
				
							
								
								
									
										5
									
								
								.changeset/gold-chairs-rescue.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.changeset/gold-chairs-rescue.md
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | --- | ||||||
|  | '@redux-devtools/extension': patch | ||||||
|  | --- | ||||||
|  | 
 | ||||||
|  | Fix type for serialize option | ||||||
|  | @ -29,7 +29,8 @@ | ||||||
|     "prepublish": "pnpm run type-check && pnpm run lint" |     "prepublish": "pnpm run type-check && pnpm run lint" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@babel/runtime": "^7.18.3" |     "@babel/runtime": "^7.18.3", | ||||||
|  |     "immutable": "^4.0.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@babel/cli": "^7.17.10", |     "@babel/cli": "^7.17.10", | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | import Immutable from 'immutable'; | ||||||
| import { Action, ActionCreator, compose, StoreEnhancer } from 'redux'; | import { Action, ActionCreator, compose, StoreEnhancer } from 'redux'; | ||||||
| 
 | 
 | ||||||
| export interface EnhancerOptions { | export interface EnhancerOptions { | ||||||
|  | @ -25,26 +26,58 @@ export interface EnhancerOptions { | ||||||
|    */ |    */ | ||||||
|   maxAge?: number; |   maxAge?: number; | ||||||
|   /** |   /** | ||||||
|    * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode). |    * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you | ||||||
|    * - `false` - will handle also circular references. |    * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver` | ||||||
|    * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions. |    * functions. | ||||||
|    * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys. |  | ||||||
|    *   For each of them you can indicate if to include (by setting as `true`). |  | ||||||
|    *   For `function` key you can also specify a custom function which handles serialization. |  | ||||||
|    *   See [`jsan`](https://github.com/kolodny/jsan) for more details.
 |  | ||||||
|    */ |    */ | ||||||
|   serialize?: |   serialize?: | ||||||
|     | boolean |     | boolean | ||||||
|     | { |     | { | ||||||
|         date?: boolean; |         /** | ||||||
|         regex?: boolean; |          * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode). | ||||||
|         undefined?: boolean; |          * - `false` - will handle also circular references. | ||||||
|         error?: boolean; |          * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions. | ||||||
|         symbol?: boolean; |          * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys. | ||||||
|         map?: boolean; |          *   For each of them you can indicate if to include (by setting as `true`). | ||||||
|         set?: boolean; |          *   For `function` key you can also specify a custom function which handles serialization. | ||||||
|         // eslint-disable-next-line @typescript-eslint/ban-types
 |          *   See [`jsan`](https://github.com/kolodny/jsan) for more details.
 | ||||||
|         function?: boolean | Function; |          */ | ||||||
|  |         options?: | ||||||
|  |           | undefined | ||||||
|  |           | boolean | ||||||
|  |           | { | ||||||
|  |               date?: true; | ||||||
|  |               regex?: true; | ||||||
|  |               undefined?: true; | ||||||
|  |               error?: true; | ||||||
|  |               symbol?: true; | ||||||
|  |               map?: true; | ||||||
|  |               set?: true; | ||||||
|  |               function?: true | ((fn: (...args: any[]) => any) => string); | ||||||
|  |             }; | ||||||
|  |         /** | ||||||
|  |          * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.
 | ||||||
|  |          * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)
 | ||||||
|  |          * key. So you can deserialize it back while importing or persisting data. | ||||||
|  |          * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):
 | ||||||
|  |          */ | ||||||
|  |         replacer?: (key: string, value: unknown) => any; | ||||||
|  |         /** | ||||||
|  |          * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)
 | ||||||
|  |          * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)
 | ||||||
|  |          * as an example on how to serialize special data types and get them back. | ||||||
|  |          */ | ||||||
|  |         reviver?: (key: string, value: unknown) => any; | ||||||
|  |         /** | ||||||
|  |          * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).
 | ||||||
|  |          * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back. | ||||||
|  |          * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`. | ||||||
|  |          */ | ||||||
|  |         immutable?: typeof Immutable; | ||||||
|  |         /** | ||||||
|  |          * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting... | ||||||
|  |          */ | ||||||
|  |         refs?: Immutable.Record.Factory<any>[]; | ||||||
|       }; |       }; | ||||||
|   /** |   /** | ||||||
|    * function which takes `action` object and id number as arguments, and should return `action` object back. |    * function which takes `action` object and id number as arguments, and should return `action` object back. | ||||||
|  |  | ||||||
|  | @ -1157,11 +1157,13 @@ importers: | ||||||
|       '@typescript-eslint/parser': ^5.29.0 |       '@typescript-eslint/parser': ^5.29.0 | ||||||
|       eslint: ^8.18.0 |       eslint: ^8.18.0 | ||||||
|       eslint-config-prettier: ^8.5.0 |       eslint-config-prettier: ^8.5.0 | ||||||
|  |       immutable: ^4.0.0 | ||||||
|       redux: ^4.2.0 |       redux: ^4.2.0 | ||||||
|       rimraf: ^3.0.2 |       rimraf: ^3.0.2 | ||||||
|       typescript: ~4.7.4 |       typescript: ~4.7.4 | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@babel/runtime': 7.18.3 |       '@babel/runtime': 7.18.3 | ||||||
|  |       immutable: 4.1.0 | ||||||
|     devDependencies: |     devDependencies: | ||||||
|       '@babel/cli': 7.17.10_@babel+core@7.18.5 |       '@babel/cli': 7.17.10_@babel+core@7.18.5 | ||||||
|       '@babel/core': 7.18.5 |       '@babel/core': 7.18.5 | ||||||
|  | @ -5778,7 +5780,7 @@ packages: | ||||||
|       strict-event-emitter: 0.2.4 |       strict-event-emitter: 0.2.4 | ||||||
|       uuid: 8.3.2 |       uuid: 8.3.2 | ||||||
|     optionalDependencies: |     optionalDependencies: | ||||||
|       msw: 0.42.3_typescript@4.7.4 |       msw: 0.43.0_typescript@4.7.4 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - encoding |       - encoding | ||||||
|       - supports-color |       - supports-color | ||||||
|  | @ -16438,6 +16440,44 @@ packages: | ||||||
|       - supports-color |       - supports-color | ||||||
|     dev: false |     dev: false | ||||||
| 
 | 
 | ||||||
|  |   /msw/0.43.0_typescript@4.7.4: | ||||||
|  |     resolution: {integrity: sha512-XJylZP0qW3D5WUGWh9FFefJEl3MGG4y1I+/8a833d0eedm6B+GaPm6wPVZNcnlS2YVTagvEgShVJ7ZtY66tTRQ==} | ||||||
|  |     engines: {node: '>=14'} | ||||||
|  |     hasBin: true | ||||||
|  |     requiresBuild: true | ||||||
|  |     peerDependencies: | ||||||
|  |       typescript: '>= 4.2.x <= 4.7.x' | ||||||
|  |     peerDependenciesMeta: | ||||||
|  |       typescript: | ||||||
|  |         optional: true | ||||||
|  |     dependencies: | ||||||
|  |       '@mswjs/cookies': 0.2.1 | ||||||
|  |       '@mswjs/interceptors': 0.16.6 | ||||||
|  |       '@open-draft/until': 1.0.3 | ||||||
|  |       '@types/cookie': 0.4.1 | ||||||
|  |       '@types/js-levenshtein': 1.1.1 | ||||||
|  |       chalk: 4.1.1 | ||||||
|  |       chokidar: 3.5.3 | ||||||
|  |       cookie: 0.4.2 | ||||||
|  |       graphql: 16.5.0 | ||||||
|  |       headers-polyfill: 3.0.7 | ||||||
|  |       inquirer: 8.2.4 | ||||||
|  |       is-node-process: 1.0.1 | ||||||
|  |       js-levenshtein: 1.1.6 | ||||||
|  |       node-fetch: 2.6.7 | ||||||
|  |       outvariant: 1.3.0 | ||||||
|  |       path-to-regexp: 6.2.1 | ||||||
|  |       statuses: 2.0.1 | ||||||
|  |       strict-event-emitter: 0.2.4 | ||||||
|  |       type-fest: 1.4.0 | ||||||
|  |       typescript: 4.7.4 | ||||||
|  |       yargs: 17.5.1 | ||||||
|  |     transitivePeerDependencies: | ||||||
|  |       - encoding | ||||||
|  |       - supports-color | ||||||
|  |     dev: false | ||||||
|  |     optional: true | ||||||
|  | 
 | ||||||
|   /multicast-dns/7.2.5: |   /multicast-dns/7.2.5: | ||||||
|     resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} |     resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} | ||||||
|     hasBin: true |     hasBin: true | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user