Procházet zdrojové kódy

fix: check if process is defined before using so it works in browser (#4497)

* refactor: use isTestEnv() utils where applicable

* check if process is defined
Aakansha Doshi před 3 roky
rodič
revize
11396a21de
3 změnil soubory, kde provedl 7 přidání a 7 odebrání
  1. 2 2
      src/element/newElement.ts
  2. 2 2
      src/random.ts
  3. 3 3
      src/utils.ts

+ 2 - 2
src/element/newElement.ts

@@ -13,7 +13,7 @@ import {
   FontFamilyValues,
   ExcalidrawRectangleElement,
 } from "../element/types";
-import { getFontString, getUpdatedTimestamp } from "../utils";
+import { getFontString, getUpdatedTimestamp, isTestEnv } from "../utils";
 import { randomInteger, randomId } from "../random";
 import { mutateElement, newElementWith } from "./mutateElement";
 import { getNewGroupIdsForDuplication } from "../groups";
@@ -369,7 +369,7 @@ export const duplicateElement = <TElement extends Mutable<ExcalidrawElement>>(
   overrides?: Partial<TElement>,
 ): TElement => {
   let copy: TElement = deepCopyElement(element);
-  if (process.env.NODE_ENV === "test") {
+  if (isTestEnv()) {
     copy.id = `${copy.id}_copy`;
     // `window.h` may not be defined in some unit tests
     if (

+ 2 - 2
src/random.ts

@@ -1,5 +1,6 @@
 import { Random } from "roughjs/bin/math";
 import { nanoid } from "nanoid";
+import { isTestEnv } from "./utils";
 
 let random = new Random(Date.now());
 let testIdBase = 0;
@@ -11,5 +12,4 @@ export const reseed = (seed: number) => {
   testIdBase = 0;
 };
 
-export const randomId = () =>
-  process.env.NODE_ENV === "test" ? `id${testIdBase++}` : nanoid();
+export const randomId = () => (isTestEnv() ? `id${testIdBase++}` : nanoid());

+ 3 - 3
src/utils.ts

@@ -443,8 +443,7 @@ export const bytesToHexString = (bytes: Uint8Array) => {
     .join("");
 };
 
-export const getUpdatedTimestamp = () =>
-  process.env.NODE_ENV === "test" ? 1 : Date.now();
+export const getUpdatedTimestamp = () => (isTestEnv() ? 1 : Date.now());
 
 /**
  * Transforms array of objects containing `id` attribute,
@@ -459,4 +458,5 @@ export const arrayToMap = <T extends { id: string } | string>(
   }, new Map());
 };
 
-export const isTestEnv = () => process?.env?.NODE_ENV === "test";
+export const isTestEnv = () =>
+  typeof process !== "undefined" && process.env?.NODE_ENV === "test";