diff --git a/.vscode/launch.json b/.vscode/launch.json index 193a2c7f3a..b1ad223a9f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -28,6 +28,18 @@ "cwd": "${workspaceFolder}", "console": "internalConsole" }, + { + "type": "lldb", + "request": "launch", + "name": ".bun", + "program": "${workspaceFolder}/build/debug/macos-x86_64/bun", + "args": [ + "./demos/hello-next/node_modules.server.bun" + // "--origin=https://localhost:9000/" + ], + "cwd": "${workspaceFolder}", + "console": "internalConsole" + }, { "type": "lldb", "request": "launch", @@ -128,12 +140,12 @@ "name": "Demo Build .bun", "program": "${workspaceFolder}/build/debug/macos-x86_64/bun", "args": [ + "bun", "--origin=http://localhost:9000/", - "--new-bun", - "--use=ipwipwipwip-next-donotuse", + "--use=bun-framework-next", "--platform=browser" ], - "cwd": "${workspaceFolder}/demos/css-stress-test", + "cwd": "${workspaceFolder}/demos/hello-next", "console": "internalConsole" }, { diff --git a/demos/hello-next/.gitignore b/demos/hello-next/.gitignore new file mode 100644 index 0000000000..1437c53f70 --- /dev/null +++ b/demos/hello-next/.gitignore @@ -0,0 +1,34 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel diff --git a/demos/hello-next/README.md b/demos/hello-next/README.md new file mode 100644 index 0000000000..b12f3e33e7 --- /dev/null +++ b/demos/hello-next/README.md @@ -0,0 +1,34 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/demos/hello-next/next.config.js b/demos/hello-next/next.config.js new file mode 100644 index 0000000000..0d6071006a --- /dev/null +++ b/demos/hello-next/next.config.js @@ -0,0 +1,3 @@ +module.exports = { + reactStrictMode: true, +} diff --git a/demos/hello-next/package.json b/demos/hello-next/package.json new file mode 100644 index 0000000000..26861bf919 --- /dev/null +++ b/demos/hello-next/package.json @@ -0,0 +1,13 @@ +{ + "name": "hello-next", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "dependencies": { + "bun-framework-next": "0.0.0-6", + "next": "^11.1.0", + "path": "^0.12.7", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } +} diff --git a/demos/hello-next/pages/_app.js b/demos/hello-next/pages/_app.js new file mode 100644 index 0000000000..2fc3e07009 --- /dev/null +++ b/demos/hello-next/pages/_app.js @@ -0,0 +1,7 @@ +import "../styles/globals.css"; + +function MyApp({ Component, pageProps }) { + return ; +} + +export default MyApp; diff --git a/demos/hello-next/pages/api/hello.js b/demos/hello-next/pages/api/hello.js new file mode 100644 index 0000000000..df63de88fa --- /dev/null +++ b/demos/hello-next/pages/api/hello.js @@ -0,0 +1,5 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction + +export default function handler(req, res) { + res.status(200).json({ name: 'John Doe' }) +} diff --git a/demos/hello-next/pages/index.js b/demos/hello-next/pages/index.js new file mode 100644 index 0000000000..4db0d5ae6e --- /dev/null +++ b/demos/hello-next/pages/index.js @@ -0,0 +1,69 @@ +import Head from "next/head"; +import Image from "next/image"; +import styles from "../styles/Home.module.css"; + +export default function Home() { + return ( +
+ + Create Next App + + + + +
+

+ Welcome to Next.js! +

+ +

+ Get started by editing{" "} + pages/index.js +

+ +
+ +

Documentation →

+

Find in-depth information about Next.js features and API.

+
+ + +

Learn →

+

Learn about Next.js in an interactive course with quizzes!

+
+ + +

Examples →

+

Discover and deploy boilerplate example Next.js projects.

+
+ + +

Deploy →

+

+ Instantly deploy your Next.js site to a public URL with Vercel. +

+
+
+
+ + +
+ ); +} diff --git a/demos/hello-next/public/favicon.ico b/demos/hello-next/public/favicon.ico new file mode 100644 index 0000000000..718d6fea48 Binary files /dev/null and b/demos/hello-next/public/favicon.ico differ diff --git a/demos/hello-next/public/vercel.svg b/demos/hello-next/public/vercel.svg new file mode 100644 index 0000000000..fbf0e25a65 --- /dev/null +++ b/demos/hello-next/public/vercel.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/demos/hello-next/styles/Home.module.css b/demos/hello-next/styles/Home.module.css new file mode 100644 index 0000000000..35454bb748 --- /dev/null +++ b/demos/hello-next/styles/Home.module.css @@ -0,0 +1,121 @@ +.container { + min-height: 100vh; + padding: 0 0.5rem; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; +} + +.main { + padding: 5rem 0; + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.footer { + width: 100%; + height: 100px; + border-top: 1px solid #eaeaea; + display: flex; + justify-content: center; + align-items: center; +} + +.footer a { + display: flex; + justify-content: center; + align-items: center; + flex-grow: 1; +} + +.title a { + color: #0070f3; + text-decoration: none; +} + +.title a:hover, +.title a:focus, +.title a:active { + text-decoration: underline; +} + +.title { + margin: 0; + line-height: 1.15; + font-size: 4rem; +} + +.title, +.description { + text-align: center; +} + +.description { + line-height: 1.5; + font-size: 1.5rem; +} + +.code { + background: #fafafa; + border-radius: 5px; + padding: 0.75rem; + font-size: 1.1rem; + font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, + Bitstream Vera Sans Mono, Courier New, monospace; +} + +.grid { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + max-width: 800px; + margin-top: 3rem; +} + +.card { + margin: 1rem; + padding: 1.5rem; + text-align: left; + color: inherit; + text-decoration: none; + border: 1px solid #eaeaea; + border-radius: 10px; + transition: color 0.15s ease, border-color 0.15s ease; + width: 45%; +} + +.card:hover, +.card:focus, +.card:active { + color: #0070f3; + border-color: #0070f3; +} + +.card h2 { + margin: 0 0 1rem 0; + font-size: 1.5rem; +} + +.card p { + margin: 0; + font-size: 1.25rem; + line-height: 1.5; +} + +.logo { + height: 1em; + margin-left: 0.5rem; +} + +@media (max-width: 600px) { + .grid { + width: 100%; + flex-direction: column; + } +} diff --git a/demos/hello-next/styles/globals.css b/demos/hello-next/styles/globals.css new file mode 100644 index 0000000000..e5e2dcc23b --- /dev/null +++ b/demos/hello-next/styles/globals.css @@ -0,0 +1,16 @@ +html, +body { + padding: 0; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, + Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; +} + +a { + color: inherit; + text-decoration: none; +} + +* { + box-sizing: border-box; +}