diff --git a/.changeset/big-humans-sleep.md b/.changeset/big-humans-sleep.md new file mode 100644 index 0000000000..d06c87ad38 --- /dev/null +++ b/.changeset/big-humans-sleep.md @@ -0,0 +1,5 @@ +--- +"@wagmi/core": patch +--- + +Made `serialize` and `deserialize` types more permissive. diff --git a/packages/core/src/createStorage.test-d.ts b/packages/core/src/createStorage.test-d.ts index 0761cccda9..6bb4c7f300 100644 --- a/packages/core/src/createStorage.test-d.ts +++ b/packages/core/src/createStorage.test-d.ts @@ -60,3 +60,15 @@ test('setItem', () => { // @ts-expect-error incorrect argument type storage.setItem('recentConnectorId', 1n) }) + +test('serialize/deserialize types', () => { + createStorage({ + deserialize(value) { + return value + }, + serialize(value) { + return value + }, + storage: localStorage, + }) +}) diff --git a/packages/core/src/createStorage.ts b/packages/core/src/createStorage.ts index 5667e8ee89..06854c0b55 100644 --- a/packages/core/src/createStorage.ts +++ b/packages/core/src/createStorage.ts @@ -41,9 +41,9 @@ export type BaseStorage = { } export type CreateStorageParameters = { - deserialize?: ((value: string) => T) | undefined + deserialize?: ((value: string) => type | unknown) | undefined key?: string | undefined - serialize?: ((value: T) => string) | undefined + serialize?: ((value: type | any) => string) | undefined storage?: Compute | undefined }