Skip to content

Commit 3eeb331

Browse files
authored
fix: revert earlier fix (#990) for recursive types (#1014)
* Add failing test * Revert #990
1 parent a810960 commit 3eeb331

File tree

5 files changed

+15
-45
lines changed

5 files changed

+15
-45
lines changed

__tests__/produce.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,3 +769,17 @@ it("infers async curried", async () => {
769769
assert(n, _ as ROState) // yay!
770770
}
771771
}
772+
773+
it("allows for mixed property value types", () => {
774+
type TestReadonlyObject = {
775+
readonly testObjectOrNull: {readonly testProperty: number} | null
776+
}
777+
778+
const input: TestReadonlyObject = {testObjectOrNull: null}
779+
780+
produce(input, draft => {
781+
if (draft.testObjectOrNull) {
782+
draft.testObjectOrNull.testProperty = 5
783+
}
784+
})
785+
})

__tests__/types/type-externals.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@
9999
"spec.ts": "^1.1.0",
100100
"ts-jest": "^25.2.0",
101101
"tsdx": "^0.12.3",
102-
"type-plus": "^4.15.2",
103102
"typescript": "^4.2.3"
104103
}
105104
}

src/types/types-external.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ export type IfAvailable<T, Fallback = void> =
3030
*/
3131
type WeakReferences = IfAvailable<WeakMap<any, any>> | IfAvailable<WeakSet<any>>
3232

33-
export type WritableDraft<T> = {
34-
-readonly [K in keyof T]: T[K] extends object ? Draft<T[K]> : T[K]
35-
}
33+
export type WritableDraft<T> = {-readonly [K in keyof T]: Draft<T[K]>}
3634

3735
/** Convert a readonly type into a mutable type, if possible */
3836
export type Draft<T> = T extends PrimitiveType

yarn.lock

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1791,11 +1791,6 @@ acorn@^7.1.0:
17911791
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
17921792
integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
17931793

1794-
acorn@^8.8.0:
1795-
version "8.8.1"
1796-
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
1797-
integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
1798-
17991794
agent-base@4, agent-base@^4.3.0:
18001795
version "4.3.0"
18011796
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
@@ -5859,11 +5854,6 @@ is-buffer@^1.1.5:
58595854
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
58605855
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
58615856

5862-
is-buffer@^2.0.5:
5863-
version "2.0.5"
5864-
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
5865-
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
5866-
58675857
is-callable@^1.1.4, is-callable@^1.2.0:
58685858
version "1.2.0"
58695859
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
@@ -11265,15 +11255,6 @@ terser@^4.1.2, terser@^4.6.2:
1126511255
source-map "~0.6.1"
1126611256
source-map-support "~0.5.12"
1126711257

11268-
tersify@^3.10.2:
11269-
version "3.10.5"
11270-
resolved "https://registry.yarnpkg.com/tersify/-/tersify-3.10.5.tgz#eb2b230e7725481129b7fa349f2ce2683bd8a9ec"
11271-
integrity sha512-dLgsTbGVH/6Z+KU4d+NqMmsMFRwRmTFNxsl5vKGkUmaSQ0TTAwnv+Hck5S8Pdn5bcZSyjR3aTvvetJ7ZUs+ZYg==
11272-
dependencies:
11273-
acorn "^8.8.0"
11274-
is-buffer "^2.0.5"
11275-
unpartial "^1.0.0"
11276-
1127711258
test-exclude@^5.2.3:
1127811259
version "5.2.3"
1127911260
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
@@ -11626,14 +11607,6 @@ type-fest@^0.8.1:
1162611607
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
1162711608
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
1162811609

11629-
type-plus@^4.15.2:
11630-
version "4.15.2"
11631-
resolved "https://registry.yarnpkg.com/type-plus/-/type-plus-4.15.2.tgz#2d97273bde0c921845ae70a0d1cef075a7c0cfc1"
11632-
integrity sha512-5hEzFXMHOK/p5hVhNmgy7CIxUjTIK9a/NOw0pDbc4tb7LXm9JLwLEH0QdGWU5fGPp5l05rtPZfjdSOPqfAyX9w==
11633-
dependencies:
11634-
tersify "^3.10.2"
11635-
unpartial "^1.0.3"
11636-
1163711610
typedarray-to-buffer@^3.1.5:
1163811611
version "3.1.5"
1163911612
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
@@ -11752,11 +11725,6 @@ universalify@^2.0.0:
1175211725
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
1175311726
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
1175411727

11755-
unpartial@^1.0.0, unpartial@^1.0.3:
11756-
version "1.0.4"
11757-
resolved "https://registry.yarnpkg.com/unpartial/-/unpartial-1.0.4.tgz#56490ed475105110cee61890a80c5da394741833"
11758-
integrity sha512-xY8319WOQcRDRVFWvTty2YJXKvM8XRPehqWZUd7k/BatpbuitI4Jd+2xlwjTZbZScSvT75TnUsUmy5uwFa3o0g==
11759-
1176011728
unpipe@~1.0.0:
1176111729
version "1.0.0"
1176211730
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"

0 commit comments

Comments
 (0)