Giter Club home page Giter Club logo

ultra's People

Contributors

ahuigo avatar b3nten avatar barthuijgen avatar canrau avatar cdoremus avatar dburles avatar deckchairlabs avatar ije avatar industrial avatar jcmdln avatar kyiro avatar lambdalisue avatar mashaal avatar nnmrts avatar notangelmario avatar roj1512 avatar shabbyrobe avatar thearianit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ultra's Issues

[Question] Can ultra serve API routes?

Hi.

With both Next.js and Remix it is possible to server API routes and deploy these to edge locations. In the examples I see SWR being used but there's no example on local API routes.

How will Ultra handle this?

Hot module reload

Hello ๐Ÿ‘‹

I was playing with demo and the first thing that I've noticed is that there's no HMR available. This could greatly improve the devexp ๐Ÿ™‚

Besides, I wonder if it would be possible to have some features similar to what NextJS does.

  • Disabling Javascript makes the site unusable
  • Switching to offline mode returns a 404 when navigating between pages, even if they have already been visited
  • In slow connection, the first rendering takes several seconds to display the main page

Anyway, thanks for this framework, can't wait to see the future evolutions!

Unable to use `react-inspector` inside ultra app

Hi there,

I'm trying to use react-inspector to view .json files inside a toy ultra app and I'm getting a weird error. It's probably pretty common, but since this was my first time using ultra, I'm not exactly sure where to look.

I've created this repo here https://github.com/cowboyd/ultra-react-inspector

And if you run it, this is the error you get:

$ deno task dev
Warning deno task is unstable and may drastically change in the future
Task dev port=8008 mode=dev deno run -A --no-check --unstable --location http://localhost:8008 server.ts
Download https://esm.sh/[email protected]
Download https://esm.sh/v83/[email protected]/deno/react-inspector.js
Download https://esm.sh/v83/@types/react-inspector@latest/index.d.ts
Download https://esm.sh/v83/@types/[email protected]/index.d.ts
Download https://esm.sh/v83/[email protected]/deno/is-dom.js
Download https://esm.sh/v83/[email protected]/deno/prop-types.js
Download https://esm.sh/v83/[email protected]/deno/react.js
Download https://esm.sh/v83/[email protected]/deno/is-object.js
Download https://esm.sh/v83/[email protected]/deno/is-window.js
Download https://esm.sh/v83/@types/[email protected]/index.d.ts
Download https://esm.sh/v83/[email protected]/index.d.ts
Download https://esm.sh/v83/@types/[email protected]/global.d.ts
Download https://esm.sh/v83/@types/[email protected]/index.d.ts
Download https://esm.sh/v83/@types/[email protected]/tracing.d.ts
Ultra running http://localhost:8008
Download http://localhost:8008/app.js?ts=1653803734816
Transpile src/app.tsx in 53.06ms
Download http://localhost:8008/component.js?ts=16538037349
Transpile src/component.tsx in 1.11ms
Error: Minified React error #321; visit https://reactjs.org/docs/error-decoder.html?invariant=321 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
    at S (https://esm.sh/v83/[email protected]/deno/react.js:2:4838)
    at n.useMemo (https://esm.sh/v83/[email protected]/deno/react.js:2:6821)
    at ThemeAcceptor (https://esm.sh/v83/[email protected]/deno/react-inspector.js:4:5707)
    at Ln (https://cdn.esm.sh/v78/[email protected]/deno/server.js:12:10900)
    at pt (https://cdn.esm.sh/v78/[email protected]/deno/server.js:12:11639)
    at D (https://cdn.esm.sh/v78/[email protected]/deno/server.js:12:13848)
    at pt (https://cdn.esm.sh/v78/[email protected]/deno/server.js:12:11866)
    at D (https://cdn.esm.sh/v78/[email protected]/deno/server.js:12:13848)
    at pt (https://cdn.esm.sh/v78/[email protected]/deno/server.js:12:11866)
    at D (https://cdn.esm.sh/v78/[email protected]/deno/server.js:12:13848)
Download http://localhost:8008/app.js?ts=1653803734897

Here is the react error https://reactjs.org/docs/error-decoder.html?invariant=321

Any ideas?

How to add TypeScript to react project?

Hi, I was looking at the project and it was definitely a great work!

I was running few of the examples provided and all of them are written in JavaScript, how do I add typescript support to them? Also, since there is no build system such as webpack and stuff, will libraries like TailwindCSS works?

web3 project error

When run
cd web3 && make dev

i get:

error: Relative import path "helmet" not prefixed with / or ./ or ../ and not in import map from "https://deno.land/x/[email protected]/src/render.ts" at https://deno.land/x/[email protected]/src/render.ts:4:32 make: *** [makefile:2: dev] Error 1

esbuild typescript support?

import React, { lazy, Suspense } from "react";
import { Helmet } from "helmet";
import { Route } from "wouter";
import { SWRConfig } from "swr";
import ultraCache from "ultra/cache";

const Index = lazy(() => import("./index.tsx"));

const Ultra = ({ cache }: { cache: Map<unknown, unknown> }) => {
  return (
    <SWRConfig value={{ provider: () => ultraCache(cache) }}>
      <Helmet>
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta charSet="UTF-8" />
        <link rel="stylesheet" href="/style.css?react18" />
        <title>Ultra: React 18 Streaming SSR</title>
        <link
          rel="icon"
          type="image/svg+xml"
          href="https://ultrajs.dev/logo.svg"
        />
      </Helmet>
      <Suspense fallback={null}>
        <Route path="/" component={Index} />
      </Suspense>
    </SWRConfig>
  );
};

export default Ultra;

When running the above code with make dev, which essentially is mode=dev deno run --no-check --allow-net --allow-read --allow-env --allow-run --allow-write --import-map=importmap.json --unstable server.ts

it throws the following error:

Error: Transform failed with 1 error:
<stdin>:9:24: error: Expected ")" but found ":"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632075424632
^Cmake: *** [Makefile:2: dev] Interrupt

If I remove the type for cache which is changing from const Ultra = ({ cache }: { cache: Map<unknown, unknown> }) => { to const Ultra = ({ cache }) => { then everything works fine. Therefore, I am suspecting that esbuild does not recognize this as a TypeScript file.

Cannot access browser localStorage?

Hello ๐Ÿ‘‹ . Thanks for this great framework. I've enjoyed toying around with it.

I apologize if this is a dumb question as I'm relatively new to the whole SSR react game and streams in general, but is there a way to access the browsers localStorage conveniently?

I'm trying to implement an api client where the access tokens are set in the browsers localStorage. I have verified my browser shows my excepted data in local storage.

Using localStorage.get('key') in my fetch client simply returns null and when I get console.log(localStorage) I get Storage { length: 0 }.

I assume this is from an SSR thing and not having correct access to the "live" window / document?

Thanks!

Multi line dynamic imports fail

Looks like the filename replacement in transform.ts isn't handling the below case correctly. The browser will still attempt to fetch http://localhost:3000/about.tsx instead of http://localhost:3000/about.js?ts=1635841084565

const Home = React.lazy(() => import('./home.tsx'))
const About = React.lazy(() => {
  return import('./about.tsx')
})

Screenshot 2021-11-02 185409

#418 Hydration failed because the initial UI does not match what was rendered on the server.

Hi, when I run the directions from the docs:

git clone https://github.com/exhibitionist-digital/create-ultra-app
cd create-ultra-app
deno task dev

And then load the page in my browser: http://localhost:8000
I do see the cute heading '@__@' in yellow, but,
I also get these errors in my console:

Uncaught Error: Minified React error #418; visit https://reactjs.org/docs/error-decoder.html?invariant=418 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
    at kh (react-dom.js:7:11406)
    at Uk (react-dom.js:9:46863)
    at Tk (react-dom.js:9:40832)
    at Sk (react-dom.js:9:40741)
    at Hk (react-dom.js:9:40590)
    at Fk (react-dom.js:9:35569)
    at J (scheduler.js:2:2244)
    at R (scheduler.js:2:2621)
kh @ react-dom.js:7
Uk @ react-dom.js:9
Tk @ react-dom.js:9
Sk @ react-dom.js:9
Hk @ react-dom.js:9
Fk @ react-dom.js:9
J @ scheduler.js:2
R @ scheduler.js:2
setTimeout (async)
__setImmediate$ @ scheduler.js:2
S @ scheduler.js:2
I @ scheduler.js:2
r.unstable_scheduleCallback @ scheduler.js:2
Ek @ react-dom.js:9
Ck @ react-dom.js:9
dl @ react-dom.js:9
de.hydrateRoot @ react-dom.js:9
(anonymous) @ (index):1
react-dom.js:9 Uncaught Error: Minified React error #423; visit https://reactjs.org/docs/error-decoder.html?invariant=423 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
    at Uk (react-dom.js:9:46533)
    at Tk (react-dom.js:9:40832)
    at Sk (react-dom.js:9:40741)
    at Hk (react-dom.js:9:40590)
    at Mk (react-dom.js:9:36852)
    at Fk (react-dom.js:9:35794)
    at J (scheduler.js:2:2244)
    at R (scheduler.js:2:2621)
Uk @ react-dom.js:9
Tk @ react-dom.js:9
Sk @ react-dom.js:9
Hk @ react-dom.js:9
Mk @ react-dom.js:9
Fk @ react-dom.js:9
J @ scheduler.js:2
R @ scheduler.js:2
setTimeout (async)
__setImmediate$ @ scheduler.js:2
S @ scheduler.js:2
I @ scheduler.js:2
r.unstable_scheduleCallback @ scheduler.js:2
Ek @ react-dom.js:9
Ck @ react-dom.js:9
dl @ react-dom.js:9
de.hydrateRoot @ react-dom.js:9
(anonymous) @ (index):1

Those errors link to:
https://reactjs.org/docs/error-decoder.html/?invariant=423
https://reactjs.org/docs/error-decoder.html/?invariant=418

Which are respectively for:

1. There was an error while hydrating. Because the error happened outside of a Suspense boundary, the entire root will switch to client rendering.
2. Hydration failed because the initial UI does not match what was rendered on the server.

Any thought why this errors are happening on an unmodified clone of the example repo?

Thank you

deploy: Netlify Edge Functions

Netlify Edge Functions use a Deno runtime (based on Deno Deploy), so it should be possible to deploy Ultra to it. There are docs on integrating, but it boils down to creating an entrypoint file in the correct directory, and a manifest file specifying that it should serve all requests.

I work on framework integrations at Netlify, so I'm happy to assist if you need some advice or support.

[Question] Discord Server

Hi!

Would it be a good idea to start a Discord server so that people can ask questions in real-time?

gr,

Tom

Only react18 example works

when run, all examples produce
error: Relative import path "helmet" not prefixed with / or ./ or ../ and not in import map from "https://deno.land/x/[email protected]/src/render.ts" at https://deno.land/x/[email protected]/src/render.ts:4:32

except for /react18.
'server.js' in that example comments out the HTTP import url for Ultra and imports the library from the filesystem
https://github.com/exhibitionist-digital/ultra/blame/df89a163b24c03f823bde9ab94143baa6dd7bc42/examples/react18/server.js#L1

Replace "preload" with "prefetch" on website

ultrajs.dev uses <link rel="preload" as="fetch"> for API JSON data that is not required immediately. The correct attribute to use for something that "might be needed later" is <link rel="prefetch" as="fetch">.

Currently, chrome will drop the "preloaded" resources (/api/docs & /api/examples) and re-fetch them on navigation. It also logs the following warning multiple times:

The resource was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate as value and it is preloaded intentionally.

With "prefetch" chrome would save them in cache for a few minutes.

cannot build (make dev) project

identified error:

error: Relative import path "global.d.ts" not prefixed with / or ./ or ../ and not in import map from "https://cdn.esm.sh/@types/[email protected]/index.d.ts"

complete steps/log

deno --version
deno 1.13.1 (release, x86_64-unknown-linux-gnu)
v8 9.3.345.11
typescript 4.3.5
  20:32  ~/Develop/testing
git clone https://github.com/exhibitionist-digital/ultra deno_ultra
Cloning into 'deno_ultra'...
remote: Enumerating objects: 659, done.
remote: Counting objects: 100% (515/515), done.
remote: Compressing objects: 100% (327/327), done.
remote: Total 659 (delta 323), reused 330 (delta 182), pack-reused 144
Receiving objects: 100% (659/659), 209.40 KiB | 3.95 MiB/s, done.
Resolving deltas: 100% (372/372), done.
  20:32  ~/Develop/testing
cd deno
deno-tutorials1/ deno_ultra/      
  20:32  ~/Develop/testing
cd deno_ultra/examples/react18/
  20:34  ~/.../examples/react18
make dev
mode=dev deno run --no-check --allow-net --allow-read --allow-env --allow-run --allow-write --import-map=importmap.json --unstable server.js
Download https://deno.land/x/[email protected]/mod.ts
Download https://deno.land/x/[email protected]/src/ultra.ts
Download https://deno.land/x/[email protected]/src/types.ts
Download https://deno.land/x/[email protected]/mod.ts
Download https://deno.land/x/[email protected]/src/render.ts
Download https://deno.land/[email protected]/path/mod.ts
Download https://deno.land/[email protected]/fs/mod.ts
Download https://deno.land/x/[email protected]/mod.ts
Download https://deno.land/x/[email protected]/src/transform.ts
Download https://deno.land/x/[email protected]/deps.ts
Download https://deno.land/x/[email protected]/http_server_std.ts
Download https://deno.land/x/[email protected]/middleware/proxy.ts
Download https://deno.land/x/[email protected]/request.ts
Download https://deno.land/x/[email protected]/application.ts
Download https://deno.land/x/[email protected]/response.ts
Download https://deno.land/x/[email protected]/send.ts
Download https://deno.land/x/[email protected]/middleware.ts
Download https://deno.land/x/[email protected]/context.ts
Download https://deno.land/x/[email protected]/body.ts
Download https://deno.land/x/[email protected]/range.ts
Download https://deno.land/x/[email protected]/server_sent_event.ts
Download https://deno.land/x/[email protected]/httpError.ts
Download https://deno.land/x/[email protected]/cookies.ts
Download https://deno.land/x/[email protected]/etag.ts
Download https://deno.land/x/[email protected]/router.ts
Download https://deno.land/x/[email protected]/testing.ts
Download https://deno.land/x/[email protected]/http_server_native.ts
Download https://deno.land/x/[email protected]/multipart.ts
Download https://deno.land/x/[email protected]/types.d.ts
Download https://deno.land/x/[email protected]/util.ts
Download https://deno.land/x/[email protected]/helpers.ts
Download https://x.nest.land/[email protected]/mod.ts
Download https://deno.land/x/[email protected]/mod.js
Download https://deno.land/x/[email protected]/types/options.ts
Download https://deno.land/[email protected]/fs/exists.ts
Download https://deno.land/[email protected]/fs/empty_dir.ts
Download https://deno.land/[email protected]/fs/ensure_file.ts
Download https://deno.land/[email protected]/fs/move.ts
Download https://deno.land/[email protected]/fs/copy.ts
Download https://deno.land/[email protected]/fs/ensure_dir.ts
Download https://deno.land/[email protected]/fs/ensure_symlink.ts
Download https://deno.land/[email protected]/fs/eol.ts
Download https://deno.land/[email protected]/fs/walk.ts
Download https://deno.land/[email protected]/fs/ensure_link.ts
Download https://deno.land/[email protected]/fs/expand_glob.ts
Download https://esm.sh/wouter?[email protected]&bundle
Download https://esm.sh/[email protected]
Download https://esm.sh/react-helmet-async?[email protected]&bundle
Download https://esm.sh/[email protected]/server
Download https://deno.land/[email protected]/path/common.ts
Download https://deno.land/[email protected]/path/win32.ts
Download https://deno.land/[email protected]/path/separator.ts
Download https://deno.land/[email protected]/_util/os.ts
Download https://deno.land/[email protected]/path/_interface.ts
Download https://deno.land/[email protected]/path/glob.ts
Download https://deno.land/[email protected]/path/posix.ts
Download https://deno.land/x/[email protected]/async_iterable_reader.ts
Download https://deno.land/x/[email protected]/negotiation/mediaType.ts
Download https://deno.land/x/[email protected]/negotiation/language.ts
Download https://deno.land/x/[email protected]/negotiation/encoding.ts
Download https://deno.land/x/[email protected]/negotiation/charset.ts
Download https://deno.land/x/[email protected]/index.ts
Download https://deno.land/[email protected]/bytes/mod.ts
Download https://deno.land/[email protected]/io/buffer.ts
Download https://deno.land/[email protected]/io/streams.ts
Download https://deno.land/[email protected]/http/server.ts
Download https://deno.land/[email protected]/io/util.ts
Download https://deno.land/[email protected]/path/mod.ts
Download https://deno.land/[email protected]/io/readers.ts
Download https://deno.land/[email protected]/testing/asserts.ts
Download https://deno.land/[email protected]/io/bufio.ts
Download https://deno.land/[email protected]/ws/mod.ts
Download https://deno.land/x/[email protected]/mod.ts
Download https://deno.land/[email protected]/http/http_status.ts
Download https://deno.land/[email protected]/encoding/base64.ts
Download https://deno.land/x/[email protected]/keyStack.ts
Download https://deno.land/x/[email protected]/structured_clone.ts
Download https://deno.land/x/[email protected]/websocket.ts
Download https://deno.land/[email protected]/fs/_util.ts
Download https://deno.land/x/[email protected]/isMediaType.ts
Download https://deno.land/x/[email protected]/headers.ts
Download https://deno.land/x/[email protected]/content_disposition.ts
Download https://deno.land/x/[email protected]/buf_reader.ts
Download https://deno.land/[email protected]/_util/assert.ts
Download https://deno.land/x/[email protected]/negotiation/common.ts
Download https://deno.land/[email protected]/http/_io.ts
Download https://deno.land/[email protected]/_util/assert.ts
Download https://deno.land/[email protected]/async/mod.ts
Download https://deno.land/[email protected]/path/glob.ts
Download https://deno.land/[email protected]/path/separator.ts
Download https://deno.land/[email protected]/path/common.ts
Download https://deno.land/[email protected]/path/_interface.ts
Download https://deno.land/[email protected]/path/win32.ts
Download https://deno.land/[email protected]/_util/os.ts
Download https://deno.land/[email protected]/path/posix.ts
Download https://deno.land/x/[email protected]/db.ts
Download https://deno.land/x/[email protected]/deps.ts
Download https://deno.land/[email protected]/_util/has_own_property.ts
Download https://deno.land/[email protected]/async/deferred.ts
Download https://deno.land/[email protected]/textproto/mod.ts
Download https://deno.land/[email protected]/io/ioutil.ts
Download https://deno.land/[email protected]/crypto/mod.ts
Download https://deno.land/[email protected]/path/_util.ts
Download https://deno.land/[email protected]/path/_constants.ts
Download https://deno.land/[email protected]/io/types.d.ts
Download https://deno.land/x/[email protected]/tssCompare.ts
Download https://deno.land/x/[email protected]/mediaTyper.ts
Download https://deno.land/[email protected]/testing/_diff.ts
Download https://deno.land/[email protected]/fmt/colors.ts
Download https://deno.land/[email protected]/bytes/bytes_list.ts
Download https://deno.land/x/[email protected]/mod.ts
Download https://deno.land/x/[email protected]/mod.d.ts
Download https://cdn.esm.sh/v49/[email protected]/deno/server.js
Download https://cdn.esm.sh/@types/[email protected]/server.d.ts
Download https://cdn.esm.sh/v49/[email protected]/deno/react.js
Download https://cdn.esm.sh/@types/[email protected]/index.d.ts
Download https://deno.land/[email protected]/async/debounce.ts
Download https://deno.land/[email protected]/async/delay.ts
Download https://deno.land/[email protected]/async/mux_async_iterator.ts
Download https://deno.land/[email protected]/async/pool.ts
Download https://deno.land/[email protected]/async/tee.ts
Download https://deno.land/[email protected]/async/deadline.ts
Download https://deno.land/[email protected]/path/_util.ts
Download https://deno.land/[email protected]/path/_constants.ts
Download https://deno.land/[email protected]/_wasm_crypto/mod.ts
Download https://arweave.net/V1fQ06LQBlZRczbAOoQQBsfCgbP00TTXGQ2VUUbWS7w/mod.ts
Download https://cdn.esm.sh/v49/[email protected]/deno/object-assign.js
Download https://deno.land/x/[email protected]/pkg/denoflate_bg.wasm.js
Download https://deno.land/x/[email protected]/pkg/denoflate.js
Download https://k5l5bu5c2adfmultg3advbaqa3d4fant6titjvyzbwkvcrwwjo6a.arweave.net/V1fQ06LQBlZRczbAOoQQBsfCgbP00TTXGQ2VUUbWS7w/mod.ts
Download https://deno.land/[email protected]/_wasm_crypto/crypto.js
Download https://deno.land/[email protected]/_wasm_crypto/crypto.wasm.js
Download https://k5l5bu5c2adfmultg3advbaqa3d4fant6titjvyzbwkvcrwwjo6a.arweave.net/V1fQ06LQBlZRczbAOoQQBsfCgbP00TTXGQ2VUUbWS7w/types/options.ts
Download https://k5l5bu5c2adfmultg3advbaqa3d4fant6titjvyzbwkvcrwwjo6a.arweave.net/V1fQ06LQBlZRczbAOoQQBsfCgbP00TTXGQ2VUUbWS7w/swc_wasm/wasm.js
Download https://deno.land/x/[email protected]/mod.ts
Download https://cdn.esm.sh/v49/[email protected]/X-ZGVwczpyZWFjdEAxOC4wLjAtYWxwaGEtNjdmMzgzNjZhLTIwMjEwODMw/deno/wouter.bundle.js
Download https://cdn.esm.sh/X-ZGVwczpyZWFjdEAxOC4wLjAtYWxwaGEtNjdmMzgzNjZhLTIwMjEwODMw/[email protected]/index.d.ts
Download https://cdn.esm.sh/v49/[email protected]/X-ZGVwczpyZWFjdEAxOC4wLjAtYWxwaGEtNjdmMzgzNjZhLTIwMjEwODMw/deno/react-helmet-async.bundle.js
Download https://cdn.esm.sh/X-ZGVwczpyZWFjdEAxOC4wLjAtYWxwaGEtNjdmMzgzNjZhLTIwMjEwODMw/[email protected]/index.d.ts
Download https://deno.land/x/[email protected]/wasm.js
error: Relative import path "global.d.ts" not prefixed with / or ./ or ../ and not in import map from "https://cdn.esm.sh/@types/[email protected]/index.d.ts"
make: *** [makefile:2: dev] Error 1

since im new with deno -> this is a show stopper for me

Can't start project on 0.7.5

Hi, I tried to start project from docs, without luck, then I changed version to 0.7.5, so now I have this messages:

 % deno run -A --import-map importmap.json server.ts                    
Check file:///Users/kriz/Projects/ultra/first/server.ts
error: TS2300 [ERROR]: Duplicate identifier 'LibraryManagedAttributes'.
        type LibraryManagedAttributes<C, P> = C extends React.MemoExoticComponent<infer T> | React.LazyExoticComponent<infer T>
             ~~~~~~~~~~~~~~~~~~~~~~~~
    at https://cdn.esm.sh/v68/@types/[email protected]/index.d.ts:3090:14

    'LibraryManagedAttributes' was also declared here.
            type LibraryManagedAttributes<C, P> = C extends React.MemoExoticComponent<infer T> | React.LazyExoticComponent<infer T>
                 ~~~~~~~~~~~~~~~~~~~~~~~~
        at https://cdn.esm.sh/v68/@types/[email protected]/index.d.ts:3088:14

...

Found 2 errors.

As we can see, it is duplicates between different react versions.
Repo to reproduce: https://github.com/kkrizzz/ultra-cant-start

Also - Im new to deno, so how would be problem of duplicates of different deps of versions could be solved?

variables in api are not mutable

I have modified api/example.ts:

let value = 1;

export default () => {
  value++;
  const body = JSON.stringify({
    value,
  });
  return new Response(body, {
    headers: {
        'Content-Type': 'application/json',
    },
  });
};

I am expecting it each time to return increased value, but it always returns 1

Dev server hangs on Windows 10

Windows 10.0.19043

$ deno --version
deno 1.21.0 (release, x86_64-pc-windows-msvc)
v8 10.0.139.17
typescript 4.6.2

Attempting to load http://localhost:8000 after running deno task dev, the console continually outputs

Download http://localhost:8000/app.js?ts=1651035243824
Download http://localhost:8000/app.js?ts=1651035244130
Download http://localhost:8000/app.js?ts=1651035244435
Download http://localhost:8000/app.js?ts=1651035244741

about 3 times per second, and the page never loads in Firefox or Chrome. Same behavior running curl http://localhost:8000.

With deno task start, the task completes and the page loads and renders "@_@" successfully.

As a control, the development build works fine for me on an older machine running Arch Linux.

Allowing local SSL certificates + optimising stream chunking

Running it locally does not stream anything because it will use http1.1 without tls, I had to change the code to allow passthrough of certificates to oak to enable http2 locally.

I understand it's mostly an experimental project at this stage, but it would be nice to think ahead a bit and make sure it is flexible enough in usage of oak. Might want to consider even moving it more to a plugin/middleware architecture instead of completely abstracting oak?

Ultra stuck in loop with React Context

In the following example with a React "Context object" that's used in more than one file, Ultra gets stuck in some download/transpile loop (either dev or start) after the initial http request comes in.

--- filesystem: ---
src
  |-- app.jsx
  |-- component.jsx
  
--- app.jsx ---
import React from "react";
import Component from "./component";
export const CTX = React.createContext(`default value`);
export default () => <div><h1>app.jsx</h1><Component/></div>;

--- component.jsx --- 
import React from "react";
import { CTX } from "./app";
export default () =>
{
    const getCtx = React.useContext( CTX );
    return <div><h2>component.jsx</h2>{ getCtx }</div>;
}

(I'm probably making a stupid mistake/not understanding isomorphic react though...)

How to use 0.7?

This project is really neat, I'm trying to understand how it works.

You're rendering the JSX modules and adding them to the buffer and return it to the response as a stream - which is shown on the site - and when the new JSX module finishes, what happens? It's replaced with the new stream?

How do I run the 0.7 version? It mentions a different repo for examples?

Solidjs support

In my opinion Solidjs is better than React. Is there any plan to support Solidjs in near future?

Relative import path is not resolved on Windows

Symptoms

There is an annoying error message warning about relative import not in import map.

Environment

OS: Windows 11
Deno:

deno 1.22.2 (release, x86_64-pc-windows-msvc)
v8 10.3.174.6
typescript 4.6.2

ultra version: master branch

Reproduction

  1. Clone the example create-ultra-app repo
  2. Change all references of deno/x to github master
  3. Get the error when visiting any other path

Error log:

TypeError: Relative import path "src/api" not prefixed with / or ./ or ../ and not in import map from "https://raw.githubusercontent.com/exhibitionist-digital/ultra/master/src/server/requestHandler.ts"
    at async importAPIRoute (https://raw.githubusercontent.com/exhibitionist-digital/ultra/master/src/server/requestHandler.ts:120:17)
    at async Server.requestHandler (https://raw.githubusercontent.com/exhibitionist-digital/ultra/master/src/server/requestHandler.ts:124:25)
    at async Server.#respond (https://deno.land/[email protected]/http/server.ts:298:18)

The API still renders however

Build output not compatible with --no-remote

Not sure if this issue is already being worked on.

The build output from build task in the workspace doesn't run with the --no-remote flag. Looks like deps.js still references remote files.

error: A remote specifier was requested: "https://deno.land/[email protected]/http/server.ts", but --no-remote is specified.
    at file:///workspaces/ultra/workspace/.ultra/deps.js:5:23

TypeScript errors converting the React example to `.tsx`.

Hi!

great project! I look forward to seeing this develop ๐Ÿ‘

I cloned the repo and ran the react example; I also find that it does not load locally in the same way as the deployed example.

I tried converting the JavaScript files to TypeScript extensions and VSCode is giving me:

JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.

Can't start project on 0.7.5

Hi, I still have errors while trying to run:

 % deno run -A --no-check --import-map importmap.json server.ts
error: Expected a "JavaScript" module but loaded a "JSON" module.

How does this comparecontrast to Aleph.js

From what I can see of your Readme, this looks to be a less opinionated version of the same concept, with no routing folder structure. Just curious what the direction for this is going to be, and what will be unique about it. Always excited about deno+react!

deploy: Vercel

I use a vercel.json
{ "public": true, "functions": { "api/**/*.[jt]s": { "runtime": "[email protected]" } } }

And the command vercel --prod gives me a 404 on the endpoint

Are dynamic API routes supported?

Does the API support dynamic routes or at least query stings? Something alone the lines of a route like pages/api/post/[pid].js where you can access the post id within the handler.

Import map in workspace folder needs to be renamed to importMap.json

Running the dev task results in a the following error indicating that the workspace importmap.json file needs to be renamed to importMap.json:

craig@craig-G750JX:~/git/deno/ultra_fork/workspace$ deno task dev
Warning deno task is unstable and may drastically change in the future
error: Unable to load 'file:///home/craig/git/deno/ultra_fork/workspace/importMap.json' import map

Caused by:
    No such file or directory (os error 2)

The .vscode/settings.json file has a deno.importMap setting pointing to the same workspace/importMap.json file.

A way to customize the default "src"

So firstly, as a sidenote, I think the default cwd (where ultra looks for the app.jsx/app.tsx file) shouldn't even be "src" because the whole philosophy around ultra is that there is no "source", no "build", no transpiling stuf. It should just be called "website" or "root" or "public" in my opinion, or even better, it should just be the current directory the server file is in.

Secondly, and more important, I suggest that this should be customizable. I know, ultra seems to be one of those "zero-config" projects, and I really love that it is, but I believe that the cwd is such a fundamental part that there should just be a simple "cwd" or "root" setting when calling ultra, like so:

import ultra from "https://deno.land/x/[email protected]/mod.ts";

await ultra({
	importmap: await Deno.readTextFile("importmap.json"),
	cwd: "./"
});

If you (as in you, the maintainers of ultra) agree, I'll gladly add a pull request for this. I assume it wouldn't be that difficult to introduce this setting, but let's see.

Doesn't work with TypeScript

app.tsx:

import { Helmet } from "helmet";
import React, { useEffect, useState } from "react";
import { Web3Provider } from "@ethersproject/providers";
import type { ExternalProvider } from "@ethersproject/providers";

declare global {
  interface Window {
    ethereum: ExternalProvider;
  }
}

const Ultra = () => {
  const [provider, set] = useState<Web3Provider>();

  useEffect(() => {
    if (window.ethereum) {
      set(new Web3Provider(window.ethereum));
    }
  }, []);

  return (
    <div>
      <Helmet>
        <title>ULTRA</title>
      </Helmet>
    </div>
  );
};

export default Ultra;

this is what I get:

ultra/examples/web3 on ๎‚  add-web3-example [โ‡ก!] via โฌข v14.17.6 
โžœ deno fmt
/home/v1rtl/Coding/forks/ultra/examples/web3/src/app.tsx
Checked 4 files

ultra/examples/web3 on ๎‚  add-web3-example [โ‡ก!] via โฌข v14.17.6 
โžœ make dev
mode=dev deno run --no-check --allow-net --allow-read --allow-env --allow-run --allow-write --import-map=importmap.json --unstable server.js
Listening: http://localhost:3000
Download http://localhost:3000/app.js?ts=1632153289266
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289429
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289455
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289478
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289490
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289515
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289527
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289539
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289553
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289567
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289582
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289594
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289606
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289616
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289628
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289639
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289650
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289666
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289685
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289705
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289723
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289746
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289768
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289790
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289816
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289828
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289840
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289882
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289917
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289950
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153289981
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290022
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290045
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290081
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290123
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290158
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290197
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290245
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290299
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290326
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290345
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290362
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290391
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290408
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290429
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290471
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290492
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290616
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290635
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290680
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290708
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290744
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290763
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290804
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290823
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290846
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290868
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290911
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290937
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153290971
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153291008
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153291030
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153291061
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153291151
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153291173
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153291206
Error: Transform failed with 1 error:
<stdin>:4:12: error: Expected "from" but found "{"
    at failureErrorWithLog (https://deno.land/x/[email protected]/mod.js:1414:15)
    at https://deno.land/x/[email protected]/mod.js:1225:29
    at https://deno.land/x/[email protected]/mod.js:570:9
    at handleIncomingPacket (https://deno.land/x/[email protected]/mod.js:667:9)
    at readFromStdout (https://deno.land/x/[email protected]/mod.js:537:7)
    at https://deno.land/x/[email protected]/mod.js:1684:11
Download http://localhost:3000/app.js?ts=1632153291235

Disable Hydration/Partial Hydration

HI is there any way to do this? I didn't see anything on the docs. It's pretty useful when you have a lot of statics nodes which don't need reactivity and they would slow the app performance without reason. I think people usually don't need Hydration on the whole tree

Update contributor guidelines

As Ultra approaches the release of version 2, it seems like we need update our contributor guidelines to assure that code quality is maintained. We might want to start with the Deno style guide and add/subtract our own wrinkles

Please note the items you want to add or change in our contributor guidlines below.

`Content-Type` headers for text responses should specify `charset=utf-8`

Content-Type headers for text responses, including HTML pages and static assets such as CSS and JS, should specify charset=utf-8. Example:

- content-type: text/html
+ content-type: text/html; charset=utf-8

Otherwise quite a few unicode characters such as typographic quotes (โ€œโ€) will display mangled.

For the main HTML page responses this can be somewhat mitigated with <meta charset="UTF-8" />, but even then it's still good to specific the charset directly in the response headers.

Vendoring failure upon Deno 1.22.0 upgrade

I upgraded to Deno 1.22.0 and found that vendor.test.ts failed. The error appears in the replaceImportStringLiteral() function of vendor.ts when vendoring the import for the invariant library (see below). This seemed to occur because the StringLiteral argument value was "/v78/[email protected]/X-ZGVwczpyZWFjdEAxOC4xLjA/es2021/invariant.js" which is not a valid URL (as the error message points out).

This is the output when the test failure occurred:

Vendoring https://cdn.esm.sh/[email protected]?target=es2021&pin=v78&[email protected]
vendor mapping ...----- output end -----
  should create vendor map with imports prop ... FAILED (8s)
    error: TypeError: Invalid URL
        const url = new URL(value);
                    ^
        at Object.opSync (deno:core/01_core.js:172:12)
        at opUrlParse (deno:ext/url/00_url.js:48:27)
        at new URL (deno:ext/url/00_url.js:322:20)
        at VendorVisitor.replaceImportStringLiteral (file:///home/craig/git/deno/ultra_fork/src/ast/vendor.ts:38:17)
        at VendorVisitor.visitExportAllDeclaration (file:///home/craig/git/deno/ultra_fork/src/ast/vendor.ts:14:24)
        at VendorVisitor.visitModuleDeclaration (https://cdn.esm.sh/v78/@swc/[email protected]/deno/Visitor.js:2:1718)
        at VendorVisitor.visitModuleItem (https://cdn.esm.sh/v78/@swc/[email protected]/deno/Visitor.js:2:1227)
        at Array.map (<anonymous>)
        at VendorVisitor.visitModuleItems (https://cdn.esm.sh/v78/@swc/[email protected]/deno/Visitor.js:2:887)
        at VendorVisitor.visitModule (https://cdn.esm.sh/v78/@swc/[email protected]/deno/Visitor.js:2:771)
FAILED (8s)

 ERRORS 

vendor mapping => https://deno.land/[email protected]/testing/_test_suite.ts:187:10
error: Error: 1 test step failed.
    at runTest (deno:runtime/js/40_testing.js:813:11)
    at async Object.runTests (deno:runtime/js/40_testing.js:1116:22)

 FAILURES 

vendor mapping => https://deno.land/[email protected]/testing/_test_suite.ts:187:10

test result: FAILED. 9 passed (22 steps); 1 failed (1 step); 0 ignored; 0 measured; 0 filtered out (11s)

The same error occurred when running deno task vendor in the workspace folder.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.