<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in metroErrorInterface.ts</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>cd4367ed - feat(cli): Improve truncated Metro Node.js errors. (#24546)</title>
        <link>http://172.16.0.5:8080/history/expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts#cd4367ed</link>
        <description>feat(cli): Improve truncated Metro Node.js errors. (#24546)# WhySplit errors by lines and measure to ensure we&apos;re only tested againstlibraries with one really long line.---------Co-authored-by: Expo Bot &lt;34669131+expo-bot@users.noreply.github.com&gt;

            List of files:
            /expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts</description>
        <pubDate>Wed, 20 Sep 2023 20:30:38 +0000</pubDate>
        <dc:creator>Evan Bacon &lt;bacon@expo.io&gt;</dc:creator>
    </item>
<item>
        <title>46f023fa - [RFC] API Routes in Expo Router (#24429)</title>
        <link>http://172.16.0.5:8080/history/expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts#46f023fa</link>
        <description>[RFC] API Routes in Expo Router (#24429)# WhyServers are an important part of developing many different types ofapps, but they&apos;re much harder to configure than they need to be.API Routes will enable users to express some abstract JavaScript codethat runs in a server by simply creating a file in the app directory,and adding the `+api.js` suffix. For example, to securely interact withOpenAI, simply:```ts // app/generate+api.tsimport { ExpoRequest, ExpoResponse } from &apos;expo-router/server&apos;;export async function POST(req: ExpoRequest): Promise&lt;ExpoResponse&gt; {  const { prompt } = await req.json();  const json = await fetch(&apos;https://api.openai.com/v1/engines/text-davinci-003/completions&apos;, {    headers: {      &apos;Content-Type&apos;: &apos;application/json&apos;,      // `OPENAI_API_KEY` is pulled from the .env file when running in Expo CLI.      Authorization: `Bearer ${process.env.OPENAI_API_KEY ?? &apos;&apos;}`,    },    method: &apos;POST&apos;,    body: JSON.stringify({      prompt,      max_tokens: 100,  }),  }).then(res =&gt; res.json());  // Return as JSON  return ExpoResponse.json(json);}```This will be served at `http://localhost:8081/generate` with `npx expo`and can be used by making a request:```sh$ curl -X POST -H &quot;Content-Type: application/json&quot; -d \&apos;{&quot;prompt&quot;:&quot;Hello, my name is&quot;}\&apos; http://localhost:8081/generate```Expo Router polyfills the URL and `window.location` object on native toallow for universally requesting with a relative URL:```js// Expo prepends the host and port to the URL automatically in development.const json = await fetch(&apos;/generate&apos;).then(res =&gt; res.json());```# How- API Routes are bundled with Metro, leveraging all the samefunctionality as the rest of the app and website.- The project babel config is used to transpile the API routes.Indication is passed to the Babel caller via the `isServer` boolean.This can be used to change the preset based on the environment.- Each API route is bundled into a standalone file in the `dist/_expo`directory. This is akin to ncc, the tool we use to make Create Expo Appdownload in ~1 second.- Create a new package `@expo/server` which includes the requisitemiddleware and runtime polyfills for the Expo server environment.- Add a new routes manifest which will be used by `@expo/server` toserve up the three types of routes: HTML routes, API routes, and notfound routes (404s).- Add a new export `expo-router/server` (potentially will be moved to`expo/server`) which contains the `ExpoRequest` and `ExpoResponse`objects. These are all based on the WinterCG specification, and includesome additional properties for interop with the Expo Router filesystemconvention. These are inspired by Remix, SvelteKit, and Next.js forsimplicity.- Add a new export mode `web.output: &quot;server&quot;` which can be used toexport a dynamic server. Note: I may drop this for now and make serverthe default since there&apos;s no expo-specific hosting code that must beexported.- This PR adds the ability to host the app with an express server,different production adapters to follow.# Test PlanIn addition to all the E2E Metro tests, I&apos;ve added a new E2E runnerwhich starts a server and pings different requests to ensure expectedbehavior. These run in the CLI as opposed to the `@expo/server` package.- resolve ENG-10057 ENG-8243 ENG-8082 ENG-8079 ENG-8242 ENG-8081ENG-8080 ENG-9625---------Co-authored-by: Expo Bot &lt;34669131+expo-bot@users.noreply.github.com&gt;Co-authored-by: Cedric van Putten &lt;me@bycedric.com&gt;

            List of files:
            /expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts</description>
        <pubDate>Fri, 15 Sep 2023 23:04:53 +0000</pubDate>
        <dc:creator>Evan Bacon &lt;bacon@expo.io&gt;</dc:creator>
    </item>
<item>
        <title>05863844 - refactor e2e tests (#24385)</title>
        <link>http://172.16.0.5:8080/history/expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts#05863844</link>
        <description>refactor e2e tests (#24385)# Why- Split out of https://github.com/expo/expo/pull/23911- This PR also adds server tests for static rendering.- Make it easier to run and test e2e metro code.&lt;!--Please describe the motivation for this PR, and link to relevant GitHubissues, forums posts, or feature requests.--&gt;# How&lt;!--How did you build this feature or fix this bug and why?--&gt;# Test Plan&lt;!--Please describe how you tested this change and how a reviewer couldreproduce your test, especially if this PR does not include automatedtests! If possible, please also provide terminal output and/orscreenshots demonstrating your test/reproduction.--&gt;# Checklist&lt;!--Please check the appropriate items below if they apply to your diff.This is required for changes to Expo modules.--&gt;- [ ] Documentation is up to date to reflect these changes (eg:https://docs.expo.dev and README.md).- [ ] Conforms with the [Documentation Writing StyleGuide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)- [ ] This diff will work correctly for `npx expo prebuild` &amp; EAS Build(eg: updated a module plugin).---------Co-authored-by: Expo Bot &lt;34669131+expo-bot@users.noreply.github.com&gt;

            List of files:
            /expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts</description>
        <pubDate>Tue, 12 Sep 2023 17:36:40 +0000</pubDate>
        <dc:creator>Evan Bacon &lt;bacon@expo.io&gt;</dc:creator>
    </item>
<item>
        <title>85531d53 - feat(cli): add pretty errors for static exports. (#22142)</title>
        <link>http://172.16.0.5:8080/history/expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts#85531d53</link>
        <description>feat(cli): add pretty errors for static exports. (#22142)# Why### Before&lt;img width=&quot;915&quot; alt=&quot;Screenshot 2023-04-15 at 10 58 58 AM&quot;src=&quot;https://user-images.githubusercontent.com/9664363/232235707-fb445add-9e41-4e36-8543-aa8055d9918b.png&quot;&gt;### After&lt;img width=&quot;721&quot; alt=&quot;Screenshot 2023-04-15 at 10 58 25 AM&quot;src=&quot;https://user-images.githubusercontent.com/9664363/232235688-f7663e7d-9c02-4c95-8674-636ca757137e.png&quot;&gt;---------Co-authored-by: Expo Bot &lt;34669131+expo-bot@users.noreply.github.com&gt;

            List of files:
            /expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts</description>
        <pubDate>Wed, 17 May 2023 02:39:41 +0000</pubDate>
        <dc:creator>Evan Bacon &lt;bacon@expo.io&gt;</dc:creator>
    </item>
<item>
        <title>9580591f - feat(metro-config, cli): CSS serializer (#22325)</title>
        <link>http://172.16.0.5:8080/history/expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts#9580591f</link>
        <description>feat(metro-config, cli): CSS serializer (#22325)# WhyIn order to support static CSS in development mode, we need to updatethe metro serializer to support returning the JS and CSS assets. We nowinline the CSS in the HTML before sending to the client, this allows fortesting how the website works with JS disabled. We use the same styletag id to continue to support HMR for styles during subsequent updates.This change also refactors how exports work to serialize JS and CSS atthe same time (i.e. after the native transformations).&lt;!--Please describe the motivation for this PR, and link to relevant GitHubissues, forums posts, or feature requests.--&gt;# How&lt;!--How did you build this feature or fix this bug and why?--&gt;# Test Plan&lt;!--Please describe how you tested this change and how a reviewer couldreproduce your test, especially if this PR does not include automatedtests! If possible, please also provide terminal output and/orscreenshots demonstrating your test/reproduction.--&gt;# Checklist&lt;!--Please check the appropriate items below if they apply to your diff.This is required for changes to Expo modules.--&gt;- [ ] Documentation is up to date to reflect these changes (eg:https://docs.expo.dev and README.md).- [ ] Conforms with the [Documentation Writing StyleGuide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)- [ ] This diff will work correctly for `npx expo prebuild` &amp; EAS Build(eg: updated a module plugin).---------Co-authored-by: Expo Bot &lt;34669131+expo-bot@users.noreply.github.com&gt;

            List of files:
            /expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts</description>
        <pubDate>Sun, 30 Apr 2023 20:46:17 +0000</pubDate>
        <dc:creator>Evan Bacon &lt;bacon@expo.io&gt;</dc:creator>
    </item>
<item>
        <title>24228e75 - feat(cli): use LogBox for static Metro errors (#22118)</title>
        <link>http://172.16.0.5:8080/history/expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts#24228e75</link>
        <description>feat(cli): use LogBox for static Metro errors (#22118)# WhyStatic rendering errors from Metro are hard to use. This PR (inconjunction with https://github.com/expo/router/pull/491) makes itpossible to use LogBox for all Metro rendering errors.# Test Plan&lt;img width=&quot;783&quot; alt=&quot;Screenshot 2023-04-13 at 1 42 01 PM&quot;src=&quot;https://user-images.githubusercontent.com/9664363/231853560-77062191-47ea-43c4-8f2f-9f366b7e5418.png&quot;&gt;&lt;img width=&quot;835&quot; alt=&quot;Screenshot 2023-04-13 at 1 42 22 PM&quot;src=&quot;https://user-images.githubusercontent.com/9664363/231853562-48ae2dd7-8aea-46f5-b7d8-f4c222595b21.png&quot;&gt;&lt;!--Please describe how you tested this change and how a reviewer couldreproduce your test, especially if this PR does not include automatedtests! If possible, please also provide terminal output and/orscreenshots demonstrating your test/reproduction.--&gt;# Checklist&lt;!--Please check the appropriate items below if they apply to your diff.This is required for changes to Expo modules.--&gt;- [ ] Documentation is up to date to reflect these changes (eg:https://docs.expo.dev and README.md).- [ ] Conforms with the [Documentation Writing StyleGuide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)- [ ] This diff will work correctly for `expo prebuild` &amp; EAS Build (eg:updated a module plugin).---------Co-authored-by: Expo Bot &lt;34669131+expo-bot@users.noreply.github.com&gt;

            List of files:
            /expo/packages/@expo/cli/src/start/server/metro/metroErrorInterface.ts</description>
        <pubDate>Thu, 13 Apr 2023 22:09:54 +0000</pubDate>
        <dc:creator>Evan Bacon &lt;bacon@expo.io&gt;</dc:creator>
    </item>
</channel>
</rss>
