Skip to content

Commit

Permalink
Remove use of eval in dev
Browse files Browse the repository at this point in the history
This violates Codesandbox' CSP which does not permit unsafe-eval.
Instead, just use window to get the current global.

Fixes #6611
  • Loading branch information
mjackson committed Mar 9, 2019
1 parent 15cd05e commit 4736cfe
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions packages/react-router/modules/index.js
@@ -1,22 +1,24 @@
if (__DEV__) {
const global = (1, eval)("this");
const key = "__react_router_build__";
const buildNames = { cjs: "CommonJS", esm: "ES modules", umd: "UMD" };
if (typeof window !== "undefined") {
const global = window;
const key = "__react_router_build__";
const buildNames = { cjs: "CommonJS", esm: "ES modules", umd: "UMD" };

if (global[key] && global[key] !== process.env.BUILD_FORMAT) {
const initialBuildName = buildNames[global[key]];
const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];
if (global[key] && global[key] !== process.env.BUILD_FORMAT) {
const initialBuildName = buildNames[global[key]];
const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];

// TODO: Add link to article that explains in detail how to avoid
// loading 2 different builds.
throw new Error(
`You are loading the ${secondaryBuildName} build of React Router ` +
`on a page that is already running the ${initialBuildName} ` +
`build, so things won't work right.`
);
}
// TODO: Add link to article that explains in detail how to avoid
// loading 2 different builds.
throw new Error(
`You are loading the ${secondaryBuildName} build of React Router ` +
`on a page that is already running the ${initialBuildName} ` +
`build, so things won't work right.`
);
}

global[key] = process.env.BUILD_FORMAT;
global[key] = process.env.BUILD_FORMAT;
}
}

export { default as MemoryRouter } from "./MemoryRouter";
Expand Down

0 comments on commit 4736cfe

Please sign in to comment.