CI Build issue patch - 'patch' is possibly 'undefined'.
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- build-system, ci-cd
Línea de trabajo
Comienza con el fallo de compilación de pnpm informado en immer/src/core/immerClass.ts:181 y las líneas relacionadas de immer/src/utils/common.ts que se muestran en el parche. Comprueba cómo gestiona el repositorio esta dependencia y verifica la compilación después de cualquier corrección a nivel de dependencia; se considera completado cuando pnpm build termina sin los errores de TypeScript informados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 29k
- Forks
- 905
- Merge medio
- 3 d 16 h
- PR fusionados (30 d)
- 22
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de immerjs/immer
-
Shrinking an array with `length =` and growing it back loses the patches for the truncated indicesPosiblemente ocupada @RClaudiuM la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 4 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 4 días
-
Docs: Chinese (zh-CN) website translation is outdated vs English docsQuizá libre de nuevo @lijiayou0728 la tomó hace 91 días y no hay ningún pull request abierto. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
immerjs/immer#1242 · 5 comentarios ·
Los mantenedores suelen responder en 4 días
-
Branding Drafts on Type levelAbiertoquestion
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 4 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
immerjs/immer#1217 · 1 comentario ·
Los mantenedores suelen responder en 4 días
Todos los issues de immerjs/immer
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Automattic/node-canvas#2633 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
capricorn86/happy-dom#2594 ·
Los mantenedores suelen responder en 1 día
-
Decoding tag 1 (epoch date) with an 8-byte integer throws "Cannot mix BigInt and other types"Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
microsoft/monaco-editor#5575 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día