aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-08-20 13:17:57 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-08-20 13:17:57 -0700
commit5db15b6ec7cd41cc15214f4448b064f4dd11f974 (patch)
tree4dff15a434b069e17c8cb16cca1a20e8a015212f
parentf1d3aade3b408ead1c1459eb9e0d90e90290d687 (diff)
downloadbun-5db15b6ec7cd41cc15214f4448b064f4dd11f974.tar.gz
bun-5db15b6ec7cd41cc15214f4448b064f4dd11f974.tar.zst
bun-5db15b6ec7cd41cc15214f4448b064f4dd11f974.zip
demos -> examples
Former-commit-id: 19a5d395bd41b0a0b854cdf749eb96149f91cbe1
-rw-r--r--demos/css-stress-test/dotenv-load-check.ts6
-rw-r--r--demos/css-stress-test/nextjs-framework.tsx15
-rw-r--r--demos/css-stress-test/public1/index.html10
-rw-r--r--demos/css-stress-test/public1/src/components/button.tsx26
-rw-r--r--demos/css-stress-test/public1/src/index.tsx59
-rw-r--r--demos/css-stress-test/react-out/src/components/button.tsx26
-rw-r--r--demos/css-stress-test/routes/[dynamic-dir]/[id].js2
-rw-r--r--demos/css-stress-test/routes/[dynamic-dir]/static-child.tsx2
-rw-r--r--demos/css-stress-test/routes/hello/2nd-level.jsx2
-rw-r--r--demos/css-stress-test/routes/hi1.js2
-rw-r--r--demos/hello-next/bun-framework-next/route-loader.ts395
-rw-r--r--demos/hello-next/components/Title.tsx3
-rw-r--r--examples/css-stress-test/index.html (renamed from demos/css-stress-test/index.html)0
-rw-r--r--examples/css-stress-test/inject.js (renamed from demos/css-stress-test/inject.js)0
-rw-r--r--examples/css-stress-test/next-env.d.ts (renamed from demos/css-stress-test/next-env.d.ts)0
-rw-r--r--examples/css-stress-test/package.json (renamed from demos/css-stress-test/package.json)0
-rw-r--r--examples/css-stress-test/pages/[id]/boom.tsx (renamed from demos/css-stress-test/pages/[id]/boom.tsx)0
-rw-r--r--examples/css-stress-test/pages/_app.tsx (renamed from demos/css-stress-test/pages/_app.tsx)0
-rw-r--r--examples/css-stress-test/pages/index.tsx (renamed from demos/css-stress-test/pages/index.tsx)0
-rw-r--r--examples/css-stress-test/pages/plain/nested.tsx (renamed from demos/css-stress-test/pages/plain/nested.tsx)0
-rw-r--r--examples/css-stress-test/pages/two.tsx (renamed from demos/css-stress-test/pages/two.tsx)0
-rw-r--r--examples/css-stress-test/react-inject.js (renamed from demos/css-stress-test/react-inject.js)0
-rw-r--r--examples/css-stress-test/snowpack.config.js (renamed from demos/css-stress-test/snowpack.config.js)0
-rw-r--r--examples/css-stress-test/src/button.css (renamed from demos/css-stress-test/src/button.css)0
-rw-r--r--examples/css-stress-test/src/button.tsx (renamed from demos/css-stress-test/src/button.tsx)0
-rw-r--r--examples/css-stress-test/src/colors.css (renamed from demos/css-stress-test/src/colors.css)0
-rw-r--r--examples/css-stress-test/src/colors2.css (renamed from demos/css-stress-test/src/colors2.css)0
-rw-r--r--examples/css-stress-test/src/components/button.tsx (renamed from demos/css-stress-test/src/components/button.tsx)0
-rw-r--r--examples/css-stress-test/src/components/new-comp.tsx (renamed from demos/css-stress-test/src/components/new-comp.tsx)0
-rw-r--r--examples/css-stress-test/src/font.css (renamed from demos/css-stress-test/src/font.css)0
-rw-r--r--examples/css-stress-test/src/index.css (renamed from demos/css-stress-test/src/index.css)0
-rw-r--r--examples/css-stress-test/src/index.tsx (renamed from demos/css-stress-test/src/index.tsx)0
-rw-r--r--examples/css-stress-test/src/main.tsx (renamed from demos/css-stress-test/src/main.tsx)0
-rw-r--r--examples/css-stress-test/test-pnpm.js (renamed from demos/css-stress-test/test-pnpm.js)0
-rw-r--r--examples/css-stress-test/tsconfig.json (renamed from demos/css-stress-test/tsconfig.json)0
-rw-r--r--examples/css-stress-test/vite.config.js (renamed from demos/css-stress-test/vite.config.js)0
-rw-r--r--examples/hello-next/.eslintrc.json (renamed from demos/hello-next/.eslintrc.json)0
-rw-r--r--examples/hello-next/.gitignore (renamed from demos/hello-next/.gitignore)0
-rw-r--r--examples/hello-next/README.md (renamed from demos/hello-next/README.md)0
-rw-r--r--examples/hello-next/bun-framework-next/client.development.tsx (renamed from demos/hello-next/bun-framework-next/client.development.tsx)2
-rw-r--r--examples/hello-next/bun-framework-next/index.js (renamed from demos/hello-next/bun-framework-next/index.js)0
-rw-r--r--examples/hello-next/bun-framework-next/next-server.tsx (renamed from demos/hello-next/bun-framework-next/next-server.tsx)0
-rw-r--r--examples/hello-next/bun-framework-next/package.json (renamed from demos/hello-next/bun-framework-next/package.json)0
-rw-r--r--examples/hello-next/bun-framework-next/page-loader.ts (renamed from demos/hello-next/bun-framework-next/page-loader.ts)13
-rw-r--r--examples/hello-next/bun-framework-next/render.tsx (renamed from demos/hello-next/bun-framework-next/render.tsx)0
-rw-r--r--examples/hello-next/bun-framework-next/renderDocument.tsx (renamed from demos/hello-next/bun-framework-next/renderDocument.tsx)4
-rw-r--r--examples/hello-next/bun-framework-next/route-loader.ts (renamed from demos/hello-next/bun-framework-next/server.production.tsx)0
-rw-r--r--examples/hello-next/bun-framework-next/server.development.tsx (renamed from demos/hello-next/bun-framework-next/server.development.tsx)0
-rw-r--r--examples/hello-next/bun-framework-next/server.production.tsx0
-rw-r--r--examples/hello-next/bun-framework-next/tsconfig.json (renamed from demos/hello-next/bun-framework-next/tsconfig.json)0
-rw-r--r--examples/hello-next/components/Title.tsx9
-rw-r--r--examples/hello-next/components/subtitle.tsx3
-rw-r--r--examples/hello-next/next-env.d.ts (renamed from demos/hello-next/next-env.d.ts)0
-rw-r--r--examples/hello-next/next.config.js (renamed from demos/hello-next/next.config.js)0
-rw-r--r--examples/hello-next/package.json (renamed from demos/hello-next/package.json)0
-rw-r--r--examples/hello-next/pages/_app.tsx (renamed from demos/hello-next/pages/_app.tsx)0
-rw-r--r--examples/hello-next/pages/api/hello.tsx (renamed from demos/hello-next/pages/api/hello.tsx)0
-rw-r--r--examples/hello-next/pages/foo/bar/third.tsx (renamed from demos/hello-next/pages/foo/bar/third.tsx)0
-rw-r--r--examples/hello-next/pages/index.tsx (renamed from demos/hello-next/pages/index.tsx)0
-rw-r--r--examples/hello-next/pages/posts/[id].tsx (renamed from demos/hello-next/pages/posts/[id].tsx)0
-rw-r--r--examples/hello-next/pages/second.tsx (renamed from demos/hello-next/pages/second.tsx)0
-rw-r--r--examples/hello-next/public/favicon.ico (renamed from demos/hello-next/public/favicon.ico)bin25931 -> 25931 bytes
-rw-r--r--examples/hello-next/public/vercel.svg (renamed from demos/hello-next/public/vercel.svg)0
-rw-r--r--examples/hello-next/styles/Home.module.css (renamed from demos/hello-next/styles/Home.module.css)0
-rw-r--r--examples/hello-next/styles/globals.css (renamed from demos/hello-next/styles/globals.css)0
-rw-r--r--examples/hello-next/tsconfig.json (renamed from demos/hello-next/tsconfig.json)0
-rw-r--r--examples/lotta-modules/index.js638
-rw-r--r--examples/lotta-modules/package.json11
-rw-r--r--examples/react-fast-refresh-test/package.json (renamed from demos/react-fast-refresh-test/package.json)0
-rw-r--r--examples/react-fast-refresh-test/public/index.html (renamed from demos/react-fast-refresh-test/public/index.html)0
-rw-r--r--examples/react-fast-refresh-test/src/button.css (renamed from demos/react-fast-refresh-test/src/button.css)0
-rw-r--r--examples/react-fast-refresh-test/src/colors.css (renamed from demos/react-fast-refresh-test/src/colors.css)0
-rw-r--r--examples/react-fast-refresh-test/src/components/RenderCounter.tsx (renamed from demos/react-fast-refresh-test/src/components/RenderCounter.tsx)0
-rw-r--r--examples/react-fast-refresh-test/src/components/app.tsx (renamed from demos/react-fast-refresh-test/src/components/app.tsx)0
-rw-r--r--examples/react-fast-refresh-test/src/components/button.tsx (renamed from demos/react-fast-refresh-test/src/components/button.tsx)0
-rw-r--r--examples/react-fast-refresh-test/src/font.css (renamed from demos/react-fast-refresh-test/src/font.css)0
-rw-r--r--examples/react-fast-refresh-test/src/index.css (renamed from demos/react-fast-refresh-test/src/index.css)0
-rw-r--r--examples/react-fast-refresh-test/src/index.tsx (renamed from demos/react-fast-refresh-test/src/index.tsx)0
-rw-r--r--examples/react-fast-refresh-test/src/main.tsx (renamed from demos/react-fast-refresh-test/src/main.tsx)0
-rw-r--r--examples/react-fast-refresh-test/tsconfig.json (renamed from demos/react-fast-refresh-test/tsconfig.json)0
80 files changed, 674 insertions, 554 deletions
diff --git a/demos/css-stress-test/dotenv-load-check.ts b/demos/css-stress-test/dotenv-load-check.ts
deleted file mode 100644
index fb035ee07..000000000
--- a/demos/css-stress-test/dotenv-load-check.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-console.log(
- "process.env.__NEXT_TRAILING_SLASH is set to",
- process.env.__NEXT_TRAILING_SLASH ? true : false
-);
-
-console.log("SO_MANY_DOT_ENVS is:", SO_MANY_DOT_ENVS);
diff --git a/demos/css-stress-test/nextjs-framework.tsx b/demos/css-stress-test/nextjs-framework.tsx
deleted file mode 100644
index 40aa52ba4..000000000
--- a/demos/css-stress-test/nextjs-framework.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import { renderNextJSPage } from "bun-nextjs/server";
-
-addEventListener("fetch", (event: FetchEvent) => {
- const AppComponent = module.requireFirst(
- "pages/_app",
- "bun-nextjs/pages/_app"
- );
- const Document = module.requireFirst(
- "pages/_document",
- "bun-nextjs/pages/_document"
- );
-});
-
-// typescript isolated modules
-export {};
diff --git a/demos/css-stress-test/public1/index.html b/demos/css-stress-test/public1/index.html
deleted file mode 100644
index 3c1d7465f..000000000
--- a/demos/css-stress-test/public1/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <link rel="stylesheet" href="/src/index.css" />
- <script async src="/src/index.tsx" type="module"></script>
- </head>
- <body>
- <div id="reactroot"></div>
- </body>
-</html>
diff --git a/demos/css-stress-test/public1/src/components/button.tsx b/demos/css-stress-test/public1/src/components/button.tsx
deleted file mode 100644
index bf30db5e7..000000000
--- a/demos/css-stress-test/public1/src/components/button.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import * as jsx_dev_runtime_runtime from "http://localhost:8000node_modules/react/jsx-dev-runtime.js";
-var jsxDEV = require( jsx_dev_runtime_runtime).jsxDEV, __jsxFilename = "src/components/button.tsx";
-
-import {
- __require as require
-} from "http://localhost:8000__runtime.js";
-import * as ttp_localhost_8000node_modules_module from "http://localhost:8000node_modules/react/index.js";
-var React = require(ttp_localhost_8000node_modules_module);
-export const Button = ({ label, label2, onClick }) => jsxDEV("div", {
- className: "Button",
- onClick,
- children: [jsxDEV("div", {
- className: "Button-label",
- children: [
- label,
- "111"
- ]
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 133
- }, this)]
-}, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 86
-}, this);
-
diff --git a/demos/css-stress-test/public1/src/index.tsx b/demos/css-stress-test/public1/src/index.tsx
deleted file mode 100644
index 9b7b60b88..000000000
--- a/demos/css-stress-test/public1/src/index.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import * as jsx_dev_runtime_runtime from "http://localhost:8000node_modules/react/jsx-dev-runtime.js";
-import * as React_dot_jsx from "http://localhost:8000node_modules/react/jsx-dev-runtime.js";
-var jsxDEV = require( jsx_dev_runtime_runtime).jsxDEV, __jsxFilename = "src/index.tsx", Fragment = require( React_dot_jsx).Fragment;
-
-import {
- __require as require
-} from "http://localhost:8000__runtime.js";
-import * as ttp_localhost_8000node_modules_module from "http://localhost:8000node_modules/react-dom/index.js";
-var ReactDOM = require(ttp_localhost_8000node_modules_module);
-import { Button} from "http://localhost:8000src/components/button.js";
-const Base = ({}) => {
- return jsxDEV("main", {
- children: [
- jsxDEV("h1", {
- children: ["I am the page"]
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 132
- }, this),
- jsxDEV("h3", {
- className: "bacon",
- children: ["Here is some text"]
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 161
- }, this),
- jsxDEV( Fragment, {
- children: ["Fragmen!t"]
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 212
- }, this),
- jsxDEV(Button, {
- label: "Do not click.",
- onClick: () => alert("I told u not to click!"),
- children: []
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 234
- }, this)
- ]
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 119
- }, this);
-
-};
-
-function startReact() {
- ReactDOM.render( jsxDEV( Base, {
- children: []
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 408
- }, this), document.querySelector("#reactroot"));
-}
-globalThis.addEventListener("DOMContentLoaded", () => {
- startReact();
-});
diff --git a/demos/css-stress-test/react-out/src/components/button.tsx b/demos/css-stress-test/react-out/src/components/button.tsx
deleted file mode 100644
index 49e7de365..000000000
--- a/demos/css-stress-test/react-out/src/components/button.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import * as _jsx_dev_runtime_runtime from "../../node_modules/react/jsx-dev-runtime.js";
-var jsxDEV = require( _jsx_dev_runtime_runtime).jsxDEV, __jsxFilename = "src/components/button.tsx";
-
-import {
- __require as require
-} from "../../__runtime.js";
-import * as node_modules_module from "../../node_modules/react/index.js";
-var React = require(node_modules_module);
-export const Button = ({ label, label2, onClick }) => jsxDEV("div", {
- className: "Button",
- onClick,
- children: [jsxDEV("div", {
- className: "Button-label",
- children: [
- label,
- "111"
- ]
- }, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 133
- }, this)]
-}, undefined, true, {
- fileName: __jsxFilename,
- lineNumber: 86
-}, this);
-
diff --git a/demos/css-stress-test/routes/[dynamic-dir]/[id].js b/demos/css-stress-test/routes/[dynamic-dir]/[id].js
deleted file mode 100644
index 78ae72c40..000000000
--- a/demos/css-stress-test/routes/[dynamic-dir]/[id].js
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Button } from "../../src/components/button.tsx";
-console.log("hi1.js", Button.name);
diff --git a/demos/css-stress-test/routes/[dynamic-dir]/static-child.tsx b/demos/css-stress-test/routes/[dynamic-dir]/static-child.tsx
deleted file mode 100644
index 78ae72c40..000000000
--- a/demos/css-stress-test/routes/[dynamic-dir]/static-child.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Button } from "../../src/components/button.tsx";
-console.log("hi1.js", Button.name);
diff --git a/demos/css-stress-test/routes/hello/2nd-level.jsx b/demos/css-stress-test/routes/hello/2nd-level.jsx
deleted file mode 100644
index 78ae72c40..000000000
--- a/demos/css-stress-test/routes/hello/2nd-level.jsx
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Button } from "../../src/components/button.tsx";
-console.log("hi1.js", Button.name);
diff --git a/demos/css-stress-test/routes/hi1.js b/demos/css-stress-test/routes/hi1.js
deleted file mode 100644
index c9e9b2d06..000000000
--- a/demos/css-stress-test/routes/hi1.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Button } from "../src/components/button.tsx";
-console.log("hi1.js", Button.name);
diff --git a/demos/hello-next/bun-framework-next/route-loader.ts b/demos/hello-next/bun-framework-next/route-loader.ts
deleted file mode 100644
index 75012f82d..000000000
--- a/demos/hello-next/bun-framework-next/route-loader.ts
+++ /dev/null
@@ -1,395 +0,0 @@
-<<<<<<< Updated upstream
-import { ComponentType } from "react";
-// import { ClientBuildManifest } from "../build/webpack/plugins/build-manifest-plugin";
-import getAssetPathFromRoute from "next/dist/shared/lib/router/utils/get-asset-path-from-route";
-// import { requestIdleCallback } from "./request-idle-callback";
-
-const requestIdleCallback = window.requestAnimationFrame;
-
-// 3.8s was arbitrarily chosen as it's what https://web.dev/interactive
-// considers as "Good" time-to-interactive. We must assume something went
-// wrong beyond this point, and then fall-back to a full page transition to
-// show the user something of value.
-const MS_MAX_IDLE_DELAY = 3800;
-
-declare global {
- interface Window {
- __BUILD_MANIFEST?: ClientBuildManifest;
- __BUILD_MANIFEST_CB?: Function;
- }
-}
-
-export interface LoadedEntrypointSuccess {
- component: ComponentType;
- exports: any;
-}
-export interface LoadedEntrypointFailure {
- error: unknown;
-}
-export type RouteEntrypoint = LoadedEntrypointSuccess | LoadedEntrypointFailure;
-
-export interface RouteStyleSheet {
- href: string;
- content: string;
-}
-
-export interface LoadedRouteSuccess extends LoadedEntrypointSuccess {
- styles: RouteStyleSheet[];
-}
-export interface LoadedRouteFailure {
- error: unknown;
-}
-export type RouteLoaderEntry = LoadedRouteSuccess | LoadedRouteFailure;
-
-export type Future<V> = {
- resolve: (entrypoint: V) => void;
- future: Promise<V>;
-};
-function withFuture<T>(
- key: string,
- map: Map<string, Future<T> | T>,
- generator?: () => Promise<T>
-): Promise<T> {
- let entry: Future<T> | T | undefined = map.get(key);
- console.log({ entry });
- if (entry) {
- if ("future" in entry) {
- return entry.future;
- }
- return Promise.resolve(entry);
- }
-
- let resolver: (entrypoint: T) => void;
- const prom: Promise<T> = new Promise<T>((resolve) => {
- resolver = resolve;
- });
- map.set(key, (entry = { resolve: resolver!, future: prom }));
-
- return generator
- ? // eslint-disable-next-line no-sequences
- generator().then((value) => (resolver(value), value))
- : prom;
-}
-
-export interface RouteLoader {
- whenEntrypoint(route: string): Promise<RouteEntrypoint>;
- onEntrypoint(route: string, execute: () => unknown): void;
- loadRoute(route: string, prefetch?: boolean): Promise<RouteLoaderEntry>;
- prefetch(route: string): Promise<void>;
-}
-
-function hasPrefetch(link?: HTMLLinkElement): boolean {
- try {
- link = document.createElement("link");
- return (
- // detect IE11 since it supports prefetch but isn't detected
- // with relList.support
- (!!window.MSInputMethodContext && !!(document as any).documentMode) ||
- link.relList.supports("prefetch")
- );
- } catch {
- return false;
- }
-}
-
-const canPrefetch: boolean = hasPrefetch();
-
-function prefetchViaDom(
- href: string,
- as: string,
- link?: HTMLLinkElement
-): Promise<any> {
- return new Promise<void>((res, rej) => {
- if (document.querySelector(`link[rel="prefetch"][href^="${href}"]`)) {
- return res();
- }
-
- link = document.createElement("link");
-
- // The order of property assignment here is intentional:
- if (as) link!.as = as;
- link!.rel = `prefetch`;
- link!.crossOrigin = process.env.__NEXT_CROSS_ORIGIN!;
- link!.onload = res as any;
- link!.onerror = rej;
-
- // `href` should always be last:
- link!.href = href;
-
- document.head.appendChild(link);
- });
-}
-
-const ASSET_LOAD_ERROR = Symbol("ASSET_LOAD_ERROR");
-// TODO: unexport
-export function markAssetError(err: Error): Error {
- return Object.defineProperty(err, ASSET_LOAD_ERROR, {});
-}
-
-export function isAssetError(err?: Error): boolean | undefined {
- return err && ASSET_LOAD_ERROR in err;
-}
-
-function appendScript(
- src: string,
- script?: HTMLScriptElement
-): Promise<unknown> {
- return new Promise((resolve, reject) => {
- script = document.createElement("script");
-
- // The order of property assignment here is intentional.
- // 1. Setup success/failure hooks in case the browser synchronously
- // executes when `src` is set.
- script.onload = resolve;
- script.onerror = () =>
- reject(markAssetError(new Error(`Failed to load script: ${src}`)));
-
- // Bun: Add type module so we can utilize import/export
- script.type = "module";
-
- // 2. Configure the cross-origin attribute before setting `src` in case the
- // browser begins to fetch.
- script.crossOrigin = process.env.__NEXT_CROSS_ORIGIN!;
-
- // 3. Finally, set the source and inject into the DOM in case the child
- // must be appended for fetching to start.
- script.src = src;
- document.body.appendChild(script);
- });
-}
-
-// We wait for pages to be built in dev before we start the route transition
-// timeout to prevent an un-necessary hard navigation in development.
-let devBuildPromise: Promise<void> | undefined;
-let devBuildResolve: (() => void) | undefined;
-
-if (process.env.NODE_ENV === "development") {
- // const { addMessageListener } = require("./dev/error-overlay/eventsource");
- // addMessageListener((event: any) => {
- // // This is the heartbeat event
- // if (event.data === "\uD83D\uDC93") {
- // return;
- // }
- // const obj =
- // typeof event === "string" ? { action: event } : JSON.parse(event.data);
- // switch (obj.action) {
- // case "built":
- // case "sync":
- // if (devBuildResolve) {
- // devBuildResolve();
- // devBuildResolve = undefined;
- // }
- // break;
- // default:
- // break;
- // }
- // });
-}
-
-// Resolve a promise that times out after given amount of milliseconds.
-function resolvePromiseWithTimeout<T>(
- p: Promise<T>,
- ms: number,
- err: Error
-): Promise<T> {
- return new Promise((resolve, reject) => {
- let cancelled = false;
-
- p.then((r) => {
- // Resolved, cancel the timeout
- cancelled = true;
- resolve(r);
- }).catch(reject);
-
- // We wrap these checks separately for better dead-code elimination in
- // production bundles.
- if (process.env.NODE_ENV === "development") {
- (devBuildPromise || Promise.resolve()).then(() => {
- requestIdleCallback(() =>
- setTimeout(() => {
- if (!cancelled) {
- reject(err);
- }
- }, ms)
- );
- });
- }
-
- if (process.env.NODE_ENV !== "development") {
- requestIdleCallback(() =>
- setTimeout(() => {
- if (!cancelled) {
- reject(err);
- }
- }, ms)
- );
- }
- });
-}
-
-interface RouteFiles {
- scripts: string[];
- css: string[];
-}
-function getFilesForRoute(
- assetPrefix: string,
- route: string
-): Promise<RouteFiles> {
- return Promise.resolve({
- scripts: [
- encodeURI(
- globalThis.__NEXT_DATA.pages[route].filter((k) => !k.endsWith(".css"))
- ),
- ],
- // Styles are handled by `style-loader` in development:
- css: [],
- });
-}
-
-export default function createRouteLoader(assetPrefix: string): RouteLoader {
- const entrypoints: Map<string, Future<RouteEntrypoint> | RouteEntrypoint> =
- new Map();
- const loadedScripts: Map<string, Promise<unknown>> = new Map();
- const styleSheets: Map<string, Promise<RouteStyleSheet>> = new Map();
- const routes: Map<string, Future<RouteLoaderEntry> | RouteLoaderEntry> =
- new Map();
-
- function maybeExecuteScript(src: string): Promise<unknown> {
- debugger;
-
- let prom: Promise<unknown> | undefined = loadedScripts.get(src);
- if (prom) {
- return prom;
- }
-
- // Skip executing script if it's already in the DOM:
- if (document.querySelector(`script[src^="${src}"]`)) {
- return Promise.resolve();
- }
-
- loadedScripts.set(src, (prom = appendScript(src)));
- return prom;
- }
-
- function fetchStyleSheet(href: string): Promise<RouteStyleSheet> {
- let prom: Promise<RouteStyleSheet> | undefined = styleSheets.get(href);
- if (prom) {
- return prom;
- }
-
- styleSheets.set(
- href,
- (prom = fetch(href)
- .then((res) => {
- if (!res.ok) {
- throw new Error(`Failed to load stylesheet: ${href}`);
- }
- return res.text().then((text) => ({ href: href, content: text }));
- })
- .catch((err) => {
- throw markAssetError(err);
- }))
- );
- return prom;
- }
-
- return {
- whenEntrypoint(route: string) {
- return withFuture(route, entrypoints);
- },
- onEntrypoint(route: string, execute: () => unknown) {
- Promise.resolve(execute)
- .then((fn) => fn())
- .then(
- (exports: any) => ({
- component: (exports && exports.default) || exports,
- exports: exports,
- }),
- (err) => ({ error: err })
- )
- .then((input: RouteEntrypoint) => {
- const old = entrypoints.get(route);
- entrypoints.set(route, input);
- if (old && "resolve" in old) old.resolve(input);
- });
- },
- loadRoute(route: string, prefetch?: boolean) {
- return withFuture<RouteLoaderEntry>(route, routes, () => {
- if (process.env.NODE_ENV === "development") {
- devBuildPromise = new Promise<void>((resolve) => {
- devBuildResolve = resolve;
- });
- }
- debugger;
- return resolvePromiseWithTimeout(
- getFilesForRoute(assetPrefix, route)
- .then(({ scripts, css }) => {
- return Promise.all([
- entrypoints.has(route)
- ? []
- : Promise.all(scripts.map(maybeExecuteScript)),
- Promise.all(css.map(fetchStyleSheet)),
- ] as const);
- })
- .then((res) => {
- debugger;
- console.log({ res });
- return this.whenEntrypoint(route).then((entrypoint) => {
- debugger;
- return {
- entrypoint,
- styles: res[1],
- };
- });
- }),
- MS_MAX_IDLE_DELAY,
- markAssetError(new Error(`Route did not complete loading: ${route}`))
- )
- .then(({ entrypoint, styles }) => {
- debugger;
- const res: RouteLoaderEntry = Object.assign<
- { styles: RouteStyleSheet[] },
- RouteEntrypoint
- >({ styles: styles! }, entrypoint);
- return "error" in entrypoint ? entrypoint : res;
- })
- .catch((err) => {
- if (prefetch) {
- // we don't want to cache errors during prefetch
- throw err;
- }
- return { error: err };
- });
- });
- },
- prefetch(route: string): Promise<void> {
- // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
- // License: Apache 2.0
- let cn;
- if ((cn = (navigator as any).connection)) {
- // Don't prefetch if using 2G or if Save-Data is enabled.
- if (cn.saveData || /2g/.test(cn.effectiveType))
- return Promise.resolve();
- }
- return getFilesForRoute(assetPrefix, route)
- .then((output) =>
- Promise.all(
- canPrefetch
- ? output.scripts.map((script) => prefetchViaDom(script, "script"))
- : []
- )
- )
- .then(() => {
- requestIdleCallback(() =>
- this.loadRoute(route, true).catch(() => {})
- );
- })
- .catch(
- // swallow prefetch errors
- () => {}
- );
- },
- };
-}
-=======
->>>>>>> Stashed changes
diff --git a/demos/hello-next/components/Title.tsx b/demos/hello-next/components/Title.tsx
deleted file mode 100644
index 10636164f..000000000
--- a/demos/hello-next/components/Title.tsx
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function Title() {
- return <h1>Hello</h1>;
-}
diff --git a/demos/css-stress-test/index.html b/examples/css-stress-test/index.html
index 8717aa333..8717aa333 100644
--- a/demos/css-stress-test/index.html
+++ b/examples/css-stress-test/index.html
diff --git a/demos/css-stress-test/inject.js b/examples/css-stress-test/inject.js
index 5328bab03..5328bab03 100644
--- a/demos/css-stress-test/inject.js
+++ b/examples/css-stress-test/inject.js
diff --git a/demos/css-stress-test/next-env.d.ts b/examples/css-stress-test/next-env.d.ts
index 9bc3dd46b..9bc3dd46b 100644
--- a/demos/css-stress-test/next-env.d.ts
+++ b/examples/css-stress-test/next-env.d.ts
diff --git a/demos/css-stress-test/package.json b/examples/css-stress-test/package.json
index e45f6d1f2..e45f6d1f2 100644
--- a/demos/css-stress-test/package.json
+++ b/examples/css-stress-test/package.json
diff --git a/demos/css-stress-test/pages/[id]/boom.tsx b/examples/css-stress-test/pages/[id]/boom.tsx
index 1553592e4..1553592e4 100644
--- a/demos/css-stress-test/pages/[id]/boom.tsx
+++ b/examples/css-stress-test/pages/[id]/boom.tsx
diff --git a/demos/css-stress-test/pages/_app.tsx b/examples/css-stress-test/pages/_app.tsx
index 43d6a776a..43d6a776a 100644
--- a/demos/css-stress-test/pages/_app.tsx
+++ b/examples/css-stress-test/pages/_app.tsx
diff --git a/demos/css-stress-test/pages/index.tsx b/examples/css-stress-test/pages/index.tsx
index 95d190f81..95d190f81 100644
--- a/demos/css-stress-test/pages/index.tsx
+++ b/examples/css-stress-test/pages/index.tsx
diff --git a/demos/css-stress-test/pages/plain/nested.tsx b/examples/css-stress-test/pages/plain/nested.tsx
index 23c7607f1..23c7607f1 100644
--- a/demos/css-stress-test/pages/plain/nested.tsx
+++ b/examples/css-stress-test/pages/plain/nested.tsx
diff --git a/demos/css-stress-test/pages/two.tsx b/examples/css-stress-test/pages/two.tsx
index 248385591..248385591 100644
--- a/demos/css-stress-test/pages/two.tsx
+++ b/examples/css-stress-test/pages/two.tsx
diff --git a/demos/css-stress-test/react-inject.js b/examples/css-stress-test/react-inject.js
index 199dbaa80..199dbaa80 100644
--- a/demos/css-stress-test/react-inject.js
+++ b/examples/css-stress-test/react-inject.js
diff --git a/demos/css-stress-test/snowpack.config.js b/examples/css-stress-test/snowpack.config.js
index cf580b9f9..cf580b9f9 100644
--- a/demos/css-stress-test/snowpack.config.js
+++ b/examples/css-stress-test/snowpack.config.js
diff --git a/demos/css-stress-test/src/button.css b/examples/css-stress-test/src/button.css
index 60db46096..60db46096 100644
--- a/demos/css-stress-test/src/button.css
+++ b/examples/css-stress-test/src/button.css
diff --git a/demos/css-stress-test/src/button.tsx b/examples/css-stress-test/src/button.tsx
index 42207a6ca..42207a6ca 100644
--- a/demos/css-stress-test/src/button.tsx
+++ b/examples/css-stress-test/src/button.tsx
diff --git a/demos/css-stress-test/src/colors.css b/examples/css-stress-test/src/colors.css
index 71d54c25c..71d54c25c 100644
--- a/demos/css-stress-test/src/colors.css
+++ b/examples/css-stress-test/src/colors.css
diff --git a/demos/css-stress-test/src/colors2.css b/examples/css-stress-test/src/colors2.css
index ba280df46..ba280df46 100644
--- a/demos/css-stress-test/src/colors2.css
+++ b/examples/css-stress-test/src/colors2.css
diff --git a/demos/css-stress-test/src/components/button.tsx b/examples/css-stress-test/src/components/button.tsx
index 7d7b6623e..7d7b6623e 100644
--- a/demos/css-stress-test/src/components/button.tsx
+++ b/examples/css-stress-test/src/components/button.tsx
diff --git a/demos/css-stress-test/src/components/new-comp.tsx b/examples/css-stress-test/src/components/new-comp.tsx
index f09c64a54..f09c64a54 100644
--- a/demos/css-stress-test/src/components/new-comp.tsx
+++ b/examples/css-stress-test/src/components/new-comp.tsx
diff --git a/demos/css-stress-test/src/font.css b/examples/css-stress-test/src/font.css
index 758eb6680..758eb6680 100644
--- a/demos/css-stress-test/src/font.css
+++ b/examples/css-stress-test/src/font.css
diff --git a/demos/css-stress-test/src/index.css b/examples/css-stress-test/src/index.css
index 6054d6b5d..6054d6b5d 100644
--- a/demos/css-stress-test/src/index.css
+++ b/examples/css-stress-test/src/index.css
diff --git a/demos/css-stress-test/src/index.tsx b/examples/css-stress-test/src/index.tsx
index 4c288c3cc..4c288c3cc 100644
--- a/demos/css-stress-test/src/index.tsx
+++ b/examples/css-stress-test/src/index.tsx
diff --git a/demos/css-stress-test/src/main.tsx b/examples/css-stress-test/src/main.tsx
index 556f3d3b7..556f3d3b7 100644
--- a/demos/css-stress-test/src/main.tsx
+++ b/examples/css-stress-test/src/main.tsx
diff --git a/demos/css-stress-test/test-pnpm.js b/examples/css-stress-test/test-pnpm.js
index a0a27e463..a0a27e463 100644
--- a/demos/css-stress-test/test-pnpm.js
+++ b/examples/css-stress-test/test-pnpm.js
diff --git a/demos/css-stress-test/tsconfig.json b/examples/css-stress-test/tsconfig.json
index 679268d71..679268d71 100644
--- a/demos/css-stress-test/tsconfig.json
+++ b/examples/css-stress-test/tsconfig.json
diff --git a/demos/css-stress-test/vite.config.js b/examples/css-stress-test/vite.config.js
index e78089128..e78089128 100644
--- a/demos/css-stress-test/vite.config.js
+++ b/examples/css-stress-test/vite.config.js
diff --git a/demos/hello-next/.eslintrc.json b/examples/hello-next/.eslintrc.json
index bffb357a7..bffb357a7 100644
--- a/demos/hello-next/.eslintrc.json
+++ b/examples/hello-next/.eslintrc.json
diff --git a/demos/hello-next/.gitignore b/examples/hello-next/.gitignore
index 1437c53f7..1437c53f7 100644
--- a/demos/hello-next/.gitignore
+++ b/examples/hello-next/.gitignore
diff --git a/demos/hello-next/README.md b/examples/hello-next/README.md
index b12f3e33e..b12f3e33e 100644
--- a/demos/hello-next/README.md
+++ b/examples/hello-next/README.md
diff --git a/demos/hello-next/bun-framework-next/client.development.tsx b/examples/hello-next/bun-framework-next/client.development.tsx
index 86a908bd3..a4ef9bf96 100644
--- a/demos/hello-next/bun-framework-next/client.development.tsx
+++ b/examples/hello-next/bun-framework-next/client.development.tsx
@@ -304,7 +304,6 @@ function TopLevelRender({ App, Component, props, scroll }) {
}
export function render(props) {
-
ReactDOM.render(
<TopLevelRender {...props} />,
document.querySelector("#__next")
@@ -312,7 +311,6 @@ export function render(props) {
}
export function renderError(e) {
- debugger;
ReactDOM.render(
<AppContainer>
<App Component={<div>UH OH!!!!</div>} pageProps={data.props}></App>
diff --git a/demos/hello-next/bun-framework-next/index.js b/examples/hello-next/bun-framework-next/index.js
index 10adb5205..10adb5205 100644
--- a/demos/hello-next/bun-framework-next/index.js
+++ b/examples/hello-next/bun-framework-next/index.js
diff --git a/demos/hello-next/bun-framework-next/next-server.tsx b/examples/hello-next/bun-framework-next/next-server.tsx
index e69de29bb..e69de29bb 100644
--- a/demos/hello-next/bun-framework-next/next-server.tsx
+++ b/examples/hello-next/bun-framework-next/next-server.tsx
diff --git a/demos/hello-next/bun-framework-next/package.json b/examples/hello-next/bun-framework-next/package.json
index 9f12a57a3..9f12a57a3 100644
--- a/demos/hello-next/bun-framework-next/package.json
+++ b/examples/hello-next/bun-framework-next/package.json
diff --git a/demos/hello-next/bun-framework-next/page-loader.ts b/examples/hello-next/bun-framework-next/page-loader.ts
index 1d802b41e..03ee3e5ed 100644
--- a/demos/hello-next/bun-framework-next/page-loader.ts
+++ b/examples/hello-next/bun-framework-next/page-loader.ts
@@ -60,9 +60,18 @@ export default class PageLoader extends NextPageLoader {
cssQueue = [];
onImportCSS = (event) => {
- this.cssQueue.push(insertStyleSheet(event.detail));
+ this.cssQueue.push(
+ insertStyleSheet(event.detail).then(
+ () => {},
+ () => {}
+ )
+ );
};
+ prefetch(route) {
+ return Promise.resolve({});
+ }
+
async loadPage(route: string): Promise<GoodPageCache> {
const assets =
this.pages[route] || this.pages[getAssetPathFromRoute(route)];
@@ -98,7 +107,7 @@ export default class PageLoader extends NextPageLoader {
this.cssQueue.length = 0;
}
- document.removeEventListener("onimportcss", this.onImportCSS);
+
return {
page: res.default,
mod: res,
diff --git a/demos/hello-next/bun-framework-next/render.tsx b/examples/hello-next/bun-framework-next/render.tsx
index e69de29bb..e69de29bb 100644
--- a/demos/hello-next/bun-framework-next/render.tsx
+++ b/examples/hello-next/bun-framework-next/render.tsx
diff --git a/demos/hello-next/bun-framework-next/renderDocument.tsx b/examples/hello-next/bun-framework-next/renderDocument.tsx
index 7daec0005..67c89efc2 100644
--- a/demos/hello-next/bun-framework-next/renderDocument.tsx
+++ b/examples/hello-next/bun-framework-next/renderDocument.tsx
@@ -426,8 +426,8 @@ export async function render({
}
let head: JSX.Element[] = [
- // <meta charSet="utf-8" />,
- // <meta name="viewport" content="width=device-width" />,
+ <meta charSet="utf-8" />,
+ <meta name="viewport" content="width=device-width" />,
];
const nextExport = isAutoExport || isFallback;
diff --git a/demos/hello-next/bun-framework-next/server.production.tsx b/examples/hello-next/bun-framework-next/route-loader.ts
index e69de29bb..e69de29bb 100644
--- a/demos/hello-next/bun-framework-next/server.production.tsx
+++ b/examples/hello-next/bun-framework-next/route-loader.ts
diff --git a/demos/hello-next/bun-framework-next/server.development.tsx b/examples/hello-next/bun-framework-next/server.development.tsx
index 82caf0ab7..82caf0ab7 100644
--- a/demos/hello-next/bun-framework-next/server.development.tsx
+++ b/examples/hello-next/bun-framework-next/server.development.tsx
diff --git a/examples/hello-next/bun-framework-next/server.production.tsx b/examples/hello-next/bun-framework-next/server.production.tsx
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/examples/hello-next/bun-framework-next/server.production.tsx
diff --git a/demos/hello-next/bun-framework-next/tsconfig.json b/examples/hello-next/bun-framework-next/tsconfig.json
index 679268d71..679268d71 100644
--- a/demos/hello-next/bun-framework-next/tsconfig.json
+++ b/examples/hello-next/bun-framework-next/tsconfig.json
diff --git a/examples/hello-next/components/Title.tsx b/examples/hello-next/components/Title.tsx
new file mode 100644
index 000000000..c8f1a935f
--- /dev/null
+++ b/examples/hello-next/components/Title.tsx
@@ -0,0 +1,9 @@
+import Hey from "./subtitle";
+
+export default function Title() {
+ return (
+ <h1>
+ Hello <Hey></Hey>
+ </h1>
+ );
+}
diff --git a/examples/hello-next/components/subtitle.tsx b/examples/hello-next/components/subtitle.tsx
new file mode 100644
index 000000000..347d97a4d
--- /dev/null
+++ b/examples/hello-next/components/subtitle.tsx
@@ -0,0 +1,3 @@
+export default function Hey() {
+ return <div>!!yep</div>;
+}
diff --git a/demos/hello-next/next-env.d.ts b/examples/hello-next/next-env.d.ts
index 9bc3dd46b..9bc3dd46b 100644
--- a/demos/hello-next/next-env.d.ts
+++ b/examples/hello-next/next-env.d.ts
diff --git a/demos/hello-next/next.config.js b/examples/hello-next/next.config.js
index 0d6071006..0d6071006 100644
--- a/demos/hello-next/next.config.js
+++ b/examples/hello-next/next.config.js
diff --git a/demos/hello-next/package.json b/examples/hello-next/package.json
index fd803c98a..fd803c98a 100644
--- a/demos/hello-next/package.json
+++ b/examples/hello-next/package.json
diff --git a/demos/hello-next/pages/_app.tsx b/examples/hello-next/pages/_app.tsx
index 2fc3e0700..2fc3e0700 100644
--- a/demos/hello-next/pages/_app.tsx
+++ b/examples/hello-next/pages/_app.tsx
diff --git a/demos/hello-next/pages/api/hello.tsx b/examples/hello-next/pages/api/hello.tsx
index df63de88f..df63de88f 100644
--- a/demos/hello-next/pages/api/hello.tsx
+++ b/examples/hello-next/pages/api/hello.tsx
diff --git a/demos/hello-next/pages/foo/bar/third.tsx b/examples/hello-next/pages/foo/bar/third.tsx
index e1df24bc1..e1df24bc1 100644
--- a/demos/hello-next/pages/foo/bar/third.tsx
+++ b/examples/hello-next/pages/foo/bar/third.tsx
diff --git a/demos/hello-next/pages/index.tsx b/examples/hello-next/pages/index.tsx
index b87c67a84..b87c67a84 100644
--- a/demos/hello-next/pages/index.tsx
+++ b/examples/hello-next/pages/index.tsx
diff --git a/demos/hello-next/pages/posts/[id].tsx b/examples/hello-next/pages/posts/[id].tsx
index 48413669c..48413669c 100644
--- a/demos/hello-next/pages/posts/[id].tsx
+++ b/examples/hello-next/pages/posts/[id].tsx
diff --git a/demos/hello-next/pages/second.tsx b/examples/hello-next/pages/second.tsx
index 0e7b5a5cf..0e7b5a5cf 100644
--- a/demos/hello-next/pages/second.tsx
+++ b/examples/hello-next/pages/second.tsx
diff --git a/demos/hello-next/public/favicon.ico b/examples/hello-next/public/favicon.ico
index 718d6fea4..718d6fea4 100644
--- a/demos/hello-next/public/favicon.ico
+++ b/examples/hello-next/public/favicon.ico
Binary files differ
diff --git a/demos/hello-next/public/vercel.svg b/examples/hello-next/public/vercel.svg
index fbf0e25a6..fbf0e25a6 100644
--- a/demos/hello-next/public/vercel.svg
+++ b/examples/hello-next/public/vercel.svg
diff --git a/demos/hello-next/styles/Home.module.css b/examples/hello-next/styles/Home.module.css
index 35454bb74..35454bb74 100644
--- a/demos/hello-next/styles/Home.module.css
+++ b/examples/hello-next/styles/Home.module.css
diff --git a/demos/hello-next/styles/globals.css b/examples/hello-next/styles/globals.css
index e5e2dcc23..e5e2dcc23 100644
--- a/demos/hello-next/styles/globals.css
+++ b/examples/hello-next/styles/globals.css
diff --git a/demos/hello-next/tsconfig.json b/examples/hello-next/tsconfig.json
index 679268d71..679268d71 100644
--- a/demos/hello-next/tsconfig.json
+++ b/examples/hello-next/tsconfig.json
diff --git a/examples/lotta-modules/index.js b/examples/lotta-modules/index.js
new file mode 100644
index 000000000..12c99a7a7
--- /dev/null
+++ b/examples/lotta-modules/index.js
@@ -0,0 +1,638 @@
+import "lodash/_DataView.js";
+import "lodash/_Hash.js";
+import "lodash/_LazyWrapper.js";
+import "lodash/_ListCache.js";
+import "lodash/_LodashWrapper.js";
+import "lodash/_Map.js";
+import "lodash/_MapCache.js";
+import "lodash/_Promise.js";
+import "lodash/_Set.js";
+import "lodash/_SetCache.js";
+import "lodash/_Stack.js";
+import "lodash/_Symbol.js";
+import "lodash/_Uint8Array.js";
+import "lodash/_WeakMap.js";
+import "lodash/_apply.js";
+import "lodash/_arrayAggregator.js";
+import "lodash/_arrayEach.js";
+import "lodash/_arrayEachRight.js";
+import "lodash/_arrayEvery.js";
+import "lodash/_arrayFilter.js";
+import "lodash/_arrayIncludes.js";
+import "lodash/_arrayIncludesWith.js";
+import "lodash/_arrayLikeKeys.js";
+import "lodash/_arrayMap.js";
+import "lodash/_arrayPush.js";
+import "lodash/_arrayReduce.js";
+import "lodash/_arrayReduceRight.js";
+import "lodash/_arraySample.js";
+import "lodash/_arraySampleSize.js";
+import "lodash/_arrayShuffle.js";
+import "lodash/_arraySome.js";
+import "lodash/_asciiSize.js";
+import "lodash/_asciiToArray.js";
+import "lodash/_asciiWords.js";
+import "lodash/_assignMergeValue.js";
+import "lodash/_assignValue.js";
+import "lodash/_assocIndexOf.js";
+import "lodash/_baseAggregator.js";
+import "lodash/_baseAssign.js";
+import "lodash/_baseAssignIn.js";
+import "lodash/_baseAssignValue.js";
+import "lodash/_baseAt.js";
+import "lodash/_baseClamp.js";
+import "lodash/_baseClone.js";
+import "lodash/_baseConforms.js";
+import "lodash/_baseConformsTo.js";
+import "lodash/_baseCreate.js";
+import "lodash/_baseDelay.js";
+import "lodash/_baseDifference.js";
+import "lodash/_baseEach.js";
+import "lodash/_baseEachRight.js";
+import "lodash/_baseEvery.js";
+import "lodash/_baseExtremum.js";
+import "lodash/_baseFill.js";
+import "lodash/_baseFilter.js";
+import "lodash/_baseFindIndex.js";
+import "lodash/_baseFindKey.js";
+import "lodash/_baseFlatten.js";
+import "lodash/_baseFor.js";
+import "lodash/_baseForOwn.js";
+import "lodash/_baseForOwnRight.js";
+import "lodash/_baseForRight.js";
+import "lodash/_baseFunctions.js";
+import "lodash/_baseGet.js";
+import "lodash/_baseGetAllKeys.js";
+import "lodash/_baseGetTag.js";
+import "lodash/_baseGt.js";
+import "lodash/_baseHas.js";
+import "lodash/_baseHasIn.js";
+import "lodash/_baseInRange.js";
+import "lodash/_baseIndexOf.js";
+import "lodash/_baseIndexOfWith.js";
+import "lodash/_baseIntersection.js";
+import "lodash/_baseInverter.js";
+import "lodash/_baseInvoke.js";
+import "lodash/_baseIsArguments.js";
+import "lodash/_baseIsArrayBuffer.js";
+import "lodash/_baseIsDate.js";
+import "lodash/_baseIsEqual.js";
+import "lodash/_baseIsEqualDeep.js";
+import "lodash/_baseIsMap.js";
+import "lodash/_baseIsMatch.js";
+import "lodash/_baseIsNaN.js";
+import "lodash/_baseIsNative.js";
+import "lodash/_baseIsRegExp.js";
+import "lodash/_baseIsSet.js";
+import "lodash/_baseIsTypedArray.js";
+import "lodash/_baseIteratee.js";
+import "lodash/_baseKeys.js";
+import "lodash/_baseKeysIn.js";
+import "lodash/_baseLodash.js";
+import "lodash/_baseLt.js";
+import "lodash/_baseMap.js";
+import "lodash/_baseMatches.js";
+import "lodash/_baseMatchesProperty.js";
+import "lodash/_baseMean.js";
+import "lodash/_baseMerge.js";
+import "lodash/_baseMergeDeep.js";
+import "lodash/_baseNth.js";
+import "lodash/_baseOrderBy.js";
+import "lodash/_basePick.js";
+import "lodash/_basePickBy.js";
+import "lodash/_baseProperty.js";
+import "lodash/_basePropertyDeep.js";
+import "lodash/_basePropertyOf.js";
+import "lodash/_basePullAll.js";
+import "lodash/_basePullAt.js";
+import "lodash/_baseRandom.js";
+import "lodash/_baseRange.js";
+import "lodash/_baseReduce.js";
+import "lodash/_baseRepeat.js";
+import "lodash/_baseRest.js";
+import "lodash/_baseSample.js";
+import "lodash/_baseSampleSize.js";
+import "lodash/_baseSet.js";
+import "lodash/_baseSetData.js";
+import "lodash/_baseSetToString.js";
+import "lodash/_baseShuffle.js";
+import "lodash/_baseSlice.js";
+import "lodash/_baseSome.js";
+import "lodash/_baseSortBy.js";
+import "lodash/_baseSortedIndex.js";
+import "lodash/_baseSortedIndexBy.js";
+import "lodash/_baseSortedUniq.js";
+import "lodash/_baseSum.js";
+import "lodash/_baseTimes.js";
+import "lodash/_baseToNumber.js";
+import "lodash/_baseToPairs.js";
+import "lodash/_baseToString.js";
+import "lodash/_baseTrim.js";
+import "lodash/_baseUnary.js";
+import "lodash/_baseUniq.js";
+import "lodash/_baseUnset.js";
+import "lodash/_baseUpdate.js";
+import "lodash/_baseValues.js";
+import "lodash/_baseWhile.js";
+import "lodash/_baseWrapperValue.js";
+import "lodash/_baseXor.js";
+import "lodash/_baseZipObject.js";
+import "lodash/_cacheHas.js";
+import "lodash/_castArrayLikeObject.js";
+import "lodash/_castFunction.js";
+import "lodash/_castPath.js";
+import "lodash/_castRest.js";
+import "lodash/_castSlice.js";
+import "lodash/_charsEndIndex.js";
+import "lodash/_charsStartIndex.js";
+import "lodash/_cloneArrayBuffer.js";
+import "lodash/_cloneBuffer.js";
+import "lodash/_cloneDataView.js";
+import "lodash/_cloneRegExp.js";
+import "lodash/_cloneSymbol.js";
+import "lodash/_cloneTypedArray.js";
+import "lodash/_compareAscending.js";
+import "lodash/_compareMultiple.js";
+import "lodash/_composeArgs.js";
+import "lodash/_composeArgsRight.js";
+import "lodash/_copyArray.js";
+import "lodash/_copyObject.js";
+import "lodash/_copySymbols.js";
+import "lodash/_copySymbolsIn.js";
+import "lodash/_coreJsData.js";
+import "lodash/_countHolders.js";
+import "lodash/_createAggregator.js";
+import "lodash/_createAssigner.js";
+import "lodash/_createBaseEach.js";
+import "lodash/_createBaseFor.js";
+import "lodash/_createBind.js";
+import "lodash/_createCaseFirst.js";
+import "lodash/_createCompounder.js";
+import "lodash/_createCtor.js";
+import "lodash/_createCurry.js";
+import "lodash/_createFind.js";
+import "lodash/_createFlow.js";
+import "lodash/_createHybrid.js";
+import "lodash/_createInverter.js";
+import "lodash/_createMathOperation.js";
+import "lodash/_createOver.js";
+import "lodash/_createPadding.js";
+import "lodash/_createPartial.js";
+import "lodash/_createRange.js";
+import "lodash/_createRecurry.js";
+import "lodash/_createRelationalOperation.js";
+import "lodash/_createRound.js";
+import "lodash/_createSet.js";
+import "lodash/_createToPairs.js";
+import "lodash/_createWrap.js";
+import "lodash/_customDefaultsAssignIn.js";
+import "lodash/_customDefaultsMerge.js";
+import "lodash/_customOmitClone.js";
+import "lodash/_deburrLetter.js";
+import "lodash/_defineProperty.js";
+import "lodash/_equalArrays.js";
+import "lodash/_equalByTag.js";
+import "lodash/_equalObjects.js";
+import "lodash/_escapeHtmlChar.js";
+import "lodash/_escapeStringChar.js";
+import "lodash/_flatRest.js";
+import "lodash/_freeGlobal.js";
+import "lodash/_getAllKeys.js";
+import "lodash/_getAllKeysIn.js";
+import "lodash/_getData.js";
+import "lodash/_getFuncName.js";
+import "lodash/_getHolder.js";
+import "lodash/_getMapData.js";
+import "lodash/_getMatchData.js";
+import "lodash/_getNative.js";
+import "lodash/_getPrototype.js";
+import "lodash/_getRawTag.js";
+import "lodash/_getSymbols.js";
+import "lodash/_getSymbolsIn.js";
+import "lodash/_getTag.js";
+import "lodash/_getValue.js";
+import "lodash/_getView.js";
+import "lodash/_getWrapDetails.js";
+import "lodash/_hasPath.js";
+import "lodash/_hasUnicode.js";
+import "lodash/_hasUnicodeWord.js";
+import "lodash/_hashClear.js";
+import "lodash/_hashDelete.js";
+import "lodash/_hashGet.js";
+import "lodash/_hashHas.js";
+import "lodash/_hashSet.js";
+import "lodash/_initCloneArray.js";
+import "lodash/_initCloneByTag.js";
+import "lodash/_initCloneObject.js";
+import "lodash/_insertWrapDetails.js";
+import "lodash/_isFlattenable.js";
+import "lodash/_isIndex.js";
+import "lodash/_isIterateeCall.js";
+import "lodash/_isKey.js";
+import "lodash/_isKeyable.js";
+import "lodash/_isLaziable.js";
+import "lodash/_isMaskable.js";
+import "lodash/_isMasked.js";
+import "lodash/_isPrototype.js";
+import "lodash/_isStrictComparable.js";
+import "lodash/_iteratorToArray.js";
+import "lodash/_lazyClone.js";
+import "lodash/_lazyReverse.js";
+import "lodash/_lazyValue.js";
+import "lodash/_listCacheClear.js";
+import "lodash/_listCacheDelete.js";
+import "lodash/_listCacheGet.js";
+import "lodash/_listCacheHas.js";
+import "lodash/_listCacheSet.js";
+import "lodash/_mapCacheClear.js";
+import "lodash/_mapCacheDelete.js";
+import "lodash/_mapCacheGet.js";
+import "lodash/_mapCacheHas.js";
+import "lodash/_mapCacheSet.js";
+import "lodash/_mapToArray.js";
+import "lodash/_matchesStrictComparable.js";
+import "lodash/_memoizeCapped.js";
+import "lodash/_mergeData.js";
+import "lodash/_metaMap.js";
+import "lodash/_nativeCreate.js";
+import "lodash/_nativeKeys.js";
+import "lodash/_nativeKeysIn.js";
+import "lodash/_nodeUtil.js";
+import "lodash/_objectToString.js";
+import "lodash/_overArg.js";
+import "lodash/_overRest.js";
+import "lodash/_parent.js";
+import "lodash/_reEscape.js";
+import "lodash/_reEvaluate.js";
+import "lodash/_reInterpolate.js";
+import "lodash/_realNames.js";
+import "lodash/_reorder.js";
+import "lodash/_replaceHolders.js";
+import "lodash/_root.js";
+import "lodash/_safeGet.js";
+import "lodash/_setCacheAdd.js";
+import "lodash/_setCacheHas.js";
+import "lodash/_setData.js";
+import "lodash/_setToArray.js";
+import "lodash/_setToPairs.js";
+import "lodash/_setToString.js";
+import "lodash/_setWrapToString.js";
+import "lodash/_shortOut.js";
+import "lodash/_shuffleSelf.js";
+import "lodash/_stackClear.js";
+import "lodash/_stackDelete.js";
+import "lodash/_stackGet.js";
+import "lodash/_stackHas.js";
+import "lodash/_stackSet.js";
+import "lodash/_strictIndexOf.js";
+import "lodash/_strictLastIndexOf.js";
+import "lodash/_stringSize.js";
+import "lodash/_stringToArray.js";
+import "lodash/_stringToPath.js";
+import "lodash/_toKey.js";
+import "lodash/_toSource.js";
+import "lodash/_trimmedEndIndex.js";
+import "lodash/_unescapeHtmlChar.js";
+import "lodash/_unicodeSize.js";
+import "lodash/_unicodeToArray.js";
+import "lodash/_unicodeWords.js";
+import "lodash/_updateWrapDetails.js";
+import "lodash/_wrapperClone.js";
+import "lodash/add.js";
+import "lodash/after.js";
+import "lodash/array.js";
+import "lodash/ary.js";
+import "lodash/assign.js";
+import "lodash/assignIn.js";
+import "lodash/assignInWith.js";
+import "lodash/assignWith.js";
+import "lodash/at.js";
+import "lodash/attempt.js";
+import "lodash/before.js";
+import "lodash/bind.js";
+import "lodash/bindAll.js";
+import "lodash/bindKey.js";
+import "lodash/camelCase.js";
+import "lodash/capitalize.js";
+import "lodash/castArray.js";
+import "lodash/ceil.js";
+import "lodash/chain.js";
+import "lodash/chunk.js";
+import "lodash/clamp.js";
+import "lodash/clone.js";
+import "lodash/cloneDeep.js";
+import "lodash/cloneDeepWith.js";
+import "lodash/cloneWith.js";
+import "lodash/collection.js";
+import "lodash/commit.js";
+import "lodash/compact.js";
+import "lodash/concat.js";
+import "lodash/cond.js";
+import "lodash/conforms.js";
+import "lodash/conformsTo.js";
+import "lodash/constant.js";
+import "lodash/core.js";
+import "lodash/core.min.js";
+import "lodash/countBy.js";
+import "lodash/create.js";
+import "lodash/curry.js";
+import "lodash/curryRight.js";
+import "lodash/date.js";
+import "lodash/debounce.js";
+import "lodash/deburr.js";
+import "lodash/defaultTo.js";
+import "lodash/defaults.js";
+import "lodash/defaultsDeep.js";
+import "lodash/defer.js";
+import "lodash/delay.js";
+import "lodash/difference.js";
+import "lodash/differenceBy.js";
+import "lodash/differenceWith.js";
+import "lodash/divide.js";
+import "lodash/drop.js";
+import "lodash/dropRight.js";
+import "lodash/dropRightWhile.js";
+import "lodash/dropWhile.js";
+import "lodash/each.js";
+import "lodash/eachRight.js";
+import "lodash/endsWith.js";
+import "lodash/entries.js";
+import "lodash/entriesIn.js";
+import "lodash/eq.js";
+import "lodash/escape.js";
+import "lodash/escapeRegExp.js";
+import "lodash/every.js";
+import "lodash/extend.js";
+import "lodash/extendWith.js";
+import "lodash/fill.js";
+import "lodash/filter.js";
+import "lodash/find.js";
+import "lodash/findIndex.js";
+import "lodash/findKey.js";
+import "lodash/findLast.js";
+import "lodash/findLastIndex.js";
+import "lodash/findLastKey.js";
+import "lodash/first.js";
+import "lodash/flatMap.js";
+import "lodash/flatMapDeep.js";
+import "lodash/flatMapDepth.js";
+import "lodash/flatten.js";
+import "lodash/flattenDeep.js";
+import "lodash/flattenDepth.js";
+import "lodash/flip.js";
+import "lodash/floor.js";
+import "lodash/flow.js";
+import "lodash/flowRight.js";
+import "lodash/forEach.js";
+import "lodash/forEachRight.js";
+import "lodash/forIn.js";
+import "lodash/forInRight.js";
+import "lodash/forOwn.js";
+import "lodash/forOwnRight.js";
+import "lodash/fp";
+import "lodash/fp.js";
+import "lodash/fromPairs.js";
+import "lodash/function.js";
+import "lodash/functions.js";
+import "lodash/functionsIn.js";
+import "lodash/get.js";
+import "lodash/groupBy.js";
+import "lodash/gt.js";
+import "lodash/gte.js";
+import "lodash/has.js";
+import "lodash/hasIn.js";
+import "lodash/head.js";
+import "lodash/identity.js";
+import "lodash/inRange.js";
+import "lodash/includes.js";
+import "lodash/index.js";
+import "lodash/indexOf.js";
+import "lodash/initial.js";
+import "lodash/intersection.js";
+import "lodash/intersectionBy.js";
+import "lodash/intersectionWith.js";
+import "lodash/invert.js";
+import "lodash/invertBy.js";
+import "lodash/invoke.js";
+import "lodash/invokeMap.js";
+import "lodash/isArguments.js";
+import "lodash/isArray.js";
+import "lodash/isArrayBuffer.js";
+import "lodash/isArrayLike.js";
+import "lodash/isArrayLikeObject.js";
+import "lodash/isBoolean.js";
+import "lodash/isBuffer.js";
+import "lodash/isDate.js";
+import "lodash/isElement.js";
+import "lodash/isEmpty.js";
+import "lodash/isEqual.js";
+import "lodash/isEqualWith.js";
+import "lodash/isError.js";
+import "lodash/isFinite.js";
+import "lodash/isFunction.js";
+import "lodash/isInteger.js";
+import "lodash/isLength.js";
+import "lodash/isMap.js";
+import "lodash/isMatch.js";
+import "lodash/isMatchWith.js";
+import "lodash/isNaN.js";
+import "lodash/isNative.js";
+import "lodash/isNil.js";
+import "lodash/isNull.js";
+import "lodash/isNumber.js";
+import "lodash/isObject.js";
+import "lodash/isObjectLike.js";
+import "lodash/isPlainObject.js";
+import "lodash/isRegExp.js";
+import "lodash/isSafeInteger.js";
+import "lodash/isSet.js";
+import "lodash/isString.js";
+import "lodash/isSymbol.js";
+import "lodash/isTypedArray.js";
+import "lodash/isUndefined.js";
+import "lodash/isWeakMap.js";
+import "lodash/isWeakSet.js";
+import "lodash/iteratee.js";
+import "lodash/join.js";
+import "lodash/kebabCase.js";
+import "lodash/keyBy.js";
+import "lodash/keys.js";
+import "lodash/keysIn.js";
+import "lodash/lang.js";
+import "lodash/last.js";
+import "lodash/lastIndexOf.js";
+import "lodash/lodash.js";
+import "lodash/lodash.min.js";
+import "lodash/lowerCase.js";
+import "lodash/lowerFirst.js";
+import "lodash/lt.js";
+import "lodash/lte.js";
+import "lodash/map.js";
+import "lodash/mapKeys.js";
+import "lodash/mapValues.js";
+import "lodash/matches.js";
+import "lodash/matchesProperty.js";
+import "lodash/math.js";
+import "lodash/max.js";
+import "lodash/maxBy.js";
+import "lodash/mean.js";
+import "lodash/meanBy.js";
+import "lodash/memoize.js";
+import "lodash/merge.js";
+import "lodash/mergeWith.js";
+import "lodash/method.js";
+import "lodash/methodOf.js";
+import "lodash/min.js";
+import "lodash/minBy.js";
+import "lodash/mixin.js";
+import "lodash/multiply.js";
+import "lodash/negate.js";
+import "lodash/next.js";
+import "lodash/noop.js";
+import "lodash/now.js";
+import "lodash/nth.js";
+import "lodash/nthArg.js";
+import "lodash/number.js";
+import "lodash/object.js";
+import "lodash/omit.js";
+import "lodash/omitBy.js";
+import "lodash/once.js";
+import "lodash/orderBy.js";
+import "lodash/over.js";
+import "lodash/overArgs.js";
+import "lodash/overEvery.js";
+import "lodash/overSome.js";
+import "lodash/pad.js";
+import "lodash/padEnd.js";
+import "lodash/padStart.js";
+import "lodash/parseInt.js";
+import "lodash/partial.js";
+import "lodash/partialRight.js";
+import "lodash/partition.js";
+import "lodash/pick.js";
+import "lodash/pickBy.js";
+import "lodash/plant.js";
+import "lodash/property.js";
+import "lodash/propertyOf.js";
+import "lodash/pull.js";
+import "lodash/pullAll.js";
+import "lodash/pullAllBy.js";
+import "lodash/pullAllWith.js";
+import "lodash/pullAt.js";
+import "lodash/random.js";
+import "lodash/range.js";
+import "lodash/rangeRight.js";
+import "lodash/rearg.js";
+import "lodash/reduce.js";
+import "lodash/reduceRight.js";
+import "lodash/reject.js";
+import "lodash/remove.js";
+import "lodash/repeat.js";
+import "lodash/replace.js";
+import "lodash/rest.js";
+import "lodash/result.js";
+import "lodash/reverse.js";
+import "lodash/round.js";
+import "lodash/sample.js";
+import "lodash/sampleSize.js";
+import "lodash/seq.js";
+import "lodash/set.js";
+import "lodash/setWith.js";
+import "lodash/shuffle.js";
+import "lodash/size.js";
+import "lodash/slice.js";
+import "lodash/snakeCase.js";
+import "lodash/some.js";
+import "lodash/sortBy.js";
+import "lodash/sortedIndex.js";
+import "lodash/sortedIndexBy.js";
+import "lodash/sortedIndexOf.js";
+import "lodash/sortedLastIndex.js";
+import "lodash/sortedLastIndexBy.js";
+import "lodash/sortedLastIndexOf.js";
+import "lodash/sortedUniq.js";
+import "lodash/sortedUniqBy.js";
+import "lodash/split.js";
+import "lodash/spread.js";
+import "lodash/startCase.js";
+import "lodash/startsWith.js";
+import "lodash/string.js";
+import "lodash/stubArray.js";
+import "lodash/stubFalse.js";
+import "lodash/stubObject.js";
+import "lodash/stubString.js";
+import "lodash/stubTrue.js";
+import "lodash/subtract.js";
+import "lodash/sum.js";
+import "lodash/sumBy.js";
+import "lodash/tail.js";
+import "lodash/take.js";
+import "lodash/takeRight.js";
+import "lodash/takeRightWhile.js";
+import "lodash/takeWhile.js";
+import "lodash/tap.js";
+import "lodash/template.js";
+import "lodash/templateSettings.js";
+import "lodash/throttle.js";
+import "lodash/thru.js";
+import "lodash/times.js";
+import "lodash/toArray.js";
+import "lodash/toFinite.js";
+import "lodash/toInteger.js";
+import "lodash/toIterator.js";
+import "lodash/toJSON.js";
+import "lodash/toLength.js";
+import "lodash/toLower.js";
+import "lodash/toNumber.js";
+import "lodash/toPairs.js";
+import "lodash/toPairsIn.js";
+import "lodash/toPath.js";
+import "lodash/toPlainObject.js";
+import "lodash/toSafeInteger.js";
+import "lodash/toString.js";
+import "lodash/toUpper.js";
+import "lodash/transform.js";
+import "lodash/trim.js";
+import "lodash/trimEnd.js";
+import "lodash/trimStart.js";
+import "lodash/truncate.js";
+import "lodash/unary.js";
+import "lodash/unescape.js";
+import "lodash/union.js";
+import "lodash/unionBy.js";
+import "lodash/unionWith.js";
+import "lodash/uniq.js";
+import "lodash/uniqBy.js";
+import "lodash/uniqWith.js";
+import "lodash/uniqueId.js";
+import "lodash/unset.js";
+import "lodash/unzip.js";
+import "lodash/unzipWith.js";
+import "lodash/update.js";
+import "lodash/updateWith.js";
+import "lodash/upperCase.js";
+import "lodash/upperFirst.js";
+import "lodash/util.js";
+import "lodash/value.js";
+import "lodash/valueOf.js";
+import "lodash/values.js";
+import "lodash/valuesIn.js";
+import "lodash/without.js";
+import "lodash/words.js";
+import "lodash/wrap.js";
+import "lodash/wrapperAt.js";
+import "lodash/wrapperChain.js";
+import "lodash/wrapperLodash.js";
+import "lodash/wrapperReverse.js";
+import "lodash/wrapperValue.js";
+import "lodash/xor.js";
+import "lodash/xorBy.js";
+import "lodash/xorWith.js";
+import "lodash/zip.js";
+import "lodash/zipObject.js";
+import "lodash/zipObjectDeep.js";
+import "lodash/zipWith.js";
+import "lodash";
+
+import "underscore";
+import "three.js";
diff --git a/examples/lotta-modules/package.json b/examples/lotta-modules/package.json
new file mode 100644
index 000000000..6168008db
--- /dev/null
+++ b/examples/lotta-modules/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "lotta-modules",
+ "version": "1.0.0",
+ "main": "index.js",
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.21",
+ "three.js": "^0.77.1",
+ "underscore": "^1.13.1"
+ }
+}
diff --git a/demos/react-fast-refresh-test/package.json b/examples/react-fast-refresh-test/package.json
index 24b2082ee..24b2082ee 100644
--- a/demos/react-fast-refresh-test/package.json
+++ b/examples/react-fast-refresh-test/package.json
diff --git a/demos/react-fast-refresh-test/public/index.html b/examples/react-fast-refresh-test/public/index.html
index 2032ea287..2032ea287 100644
--- a/demos/react-fast-refresh-test/public/index.html
+++ b/examples/react-fast-refresh-test/public/index.html
diff --git a/demos/react-fast-refresh-test/src/button.css b/examples/react-fast-refresh-test/src/button.css
index 60db46096..60db46096 100644
--- a/demos/react-fast-refresh-test/src/button.css
+++ b/examples/react-fast-refresh-test/src/button.css
diff --git a/demos/react-fast-refresh-test/src/colors.css b/examples/react-fast-refresh-test/src/colors.css
index d45bf4ffc..d45bf4ffc 100644
--- a/demos/react-fast-refresh-test/src/colors.css
+++ b/examples/react-fast-refresh-test/src/colors.css
diff --git a/demos/react-fast-refresh-test/src/components/RenderCounter.tsx b/examples/react-fast-refresh-test/src/components/RenderCounter.tsx
index ed2f00b56..ed2f00b56 100644
--- a/demos/react-fast-refresh-test/src/components/RenderCounter.tsx
+++ b/examples/react-fast-refresh-test/src/components/RenderCounter.tsx
diff --git a/demos/react-fast-refresh-test/src/components/app.tsx b/examples/react-fast-refresh-test/src/components/app.tsx
index 2edc02545..2edc02545 100644
--- a/demos/react-fast-refresh-test/src/components/app.tsx
+++ b/examples/react-fast-refresh-test/src/components/app.tsx
diff --git a/demos/react-fast-refresh-test/src/components/button.tsx b/examples/react-fast-refresh-test/src/components/button.tsx
index 4c3388670..4c3388670 100644
--- a/demos/react-fast-refresh-test/src/components/button.tsx
+++ b/examples/react-fast-refresh-test/src/components/button.tsx
diff --git a/demos/react-fast-refresh-test/src/font.css b/examples/react-fast-refresh-test/src/font.css
index 448775ef0..448775ef0 100644
--- a/demos/react-fast-refresh-test/src/font.css
+++ b/examples/react-fast-refresh-test/src/font.css
diff --git a/demos/react-fast-refresh-test/src/index.css b/examples/react-fast-refresh-test/src/index.css
index c4514199c..c4514199c 100644
--- a/demos/react-fast-refresh-test/src/index.css
+++ b/examples/react-fast-refresh-test/src/index.css
diff --git a/demos/react-fast-refresh-test/src/index.tsx b/examples/react-fast-refresh-test/src/index.tsx
index 348bd80f2..348bd80f2 100644
--- a/demos/react-fast-refresh-test/src/index.tsx
+++ b/examples/react-fast-refresh-test/src/index.tsx
diff --git a/demos/react-fast-refresh-test/src/main.tsx b/examples/react-fast-refresh-test/src/main.tsx
index 1a9948fe8..1a9948fe8 100644
--- a/demos/react-fast-refresh-test/src/main.tsx
+++ b/examples/react-fast-refresh-test/src/main.tsx
diff --git a/demos/react-fast-refresh-test/tsconfig.json b/examples/react-fast-refresh-test/tsconfig.json
index 401ede344..401ede344 100644
--- a/demos/react-fast-refresh-test/tsconfig.json
+++ b/examples/react-fast-refresh-test/tsconfig.json