Open
Description
Hi! 👋
I was getting following error while doing build
./node_modules/.pnpm/[email protected]/node_modules/immer/src/core/immerClass.ts:181:8
Type error: 'patch' is possibly 'undefined'.
179 | for (i = patches.length - 1; i >= 0; i--) {
180 | const patch = patches[i]
> 181 | if (patch.path.length === 0 && patch.op === "replace") {
| ^
182 | base = patch.value
183 | break
184 | }
ELIFECYCLE Command failed with exit code 1.
Error: Command "pnpm build" exited with 1
Here is the diff that solved my problem:
diff --git a/node_modules/immer/src/core/immerClass.ts b/node_modules/immer/src/core/immerClass.ts
index f827361..37bb8c9 100644
--- a/node_modules/immer/src/core/immerClass.ts
+++ b/node_modules/immer/src/core/immerClass.ts
@@ -1,30 +1,30 @@
import {
- IProduceWithPatches,
+ DRAFT_STATE,
+ Draft,
+ Drafted,
IProduce,
+ IProduceWithPatches,
ImmerState,
- Drafted,
- isDraftable,
- processResult,
- Patch,
+ NOTHING,
Objectish,
- DRAFT_STATE,
- Draft,
+ Patch,
PatchListener,
- isDraft,
- isMap,
- isSet,
createProxyProxy,
- getPlugin,
+ current,
die,
enterScope,
- revokeScope,
- leaveScope,
- usePatchesInScope,
- getCurrentScope,
- NOTHING,
freeze,
- current
-} from "../internal"
+ getCurrentScope,
+ getPlugin,
+ isDraft,
+ isDraftable,
+ isMap,
+ isSet,
+ leaveScope,
+ processResult,
+ revokeScope,
+ usePatchesInScope
+} from "../internal";
interface ProducersFns {
produce: IProduce
@@ -178,7 +178,7 @@ export class Immer implements ProducersFns {
let i: number
for (i = patches.length - 1; i >= 0; i--) {
const patch = patches[i]
- if (patch.path.length === 0 && patch.op === "replace") {
+ if (patch?.path?.length === 0 && patch?.op === "replace") {
base = patch.value
break
}
diff --git a/node_modules/immer/src/utils/common.ts b/node_modules/immer/src/utils/common.ts
index 692157b..8db10ba 100644
--- a/node_modules/immer/src/utils/common.ts
+++ b/node_modules/immer/src/utils/common.ts
@@ -1,14 +1,14 @@
import {
- DRAFT_STATE,
- DRAFTABLE,
- Objectish,
- Drafted,
- AnyObject,
AnyMap,
+ AnyObject,
AnySet,
- ImmerState,
ArchType,
die,
+ DRAFT_STATE,
+ DRAFTABLE,
+ Drafted,
+ ImmerState,
+ Objectish,
StrictMode
} from "../internal"
@@ -160,14 +160,14 @@ export function shallowCopy(base: any, strict: StrictMode) {
for (let i = 0; i < keys.length; i++) {
const key: any = keys[i]
const desc = descriptors[key]
- if (desc.writable === false) {
+ if (desc?.writable === false) {
desc.writable = true
desc.configurable = true
}
// like object.assign, we will read any _own_, get/set accessors. This helps in dealing
// with libraries that trap values, like mobx or vue
// unlike object.assign, non-enumerables will be copied as well
- if (desc.get || desc.set)
+ if (desc?.get || desc?.set)
descriptors[key] = {
configurable: true,
writable: true, // could live with !!desc.set as well here...
This issue body was partially generated by patch-package.
Metadata
Metadata
Assignees
Labels
No labels
Activity