Skip to content

Releases: QwikDev/qwik

@qwik.dev/router@2.0.0-alpha.0

15 Nov 23:10
Compare
Choose a tag to compare
Pre-release

A complete rewrite of the internals by @mhevery, @Varixo , @wmertens and more contributors

Major Changes

  • Renamed "Qwik City" to "Qwik Router" and package to @qwik.dev/router (by @shairez in #7008)

@qwik.dev/core@2.0.0-alpha.0

15 Nov 23:08
Compare
Choose a tag to compare
Pre-release

2.0.0-alpha.0

A complete rewrite of the core internals by @mhevery, @Varixo , @wmertens and more contributors

Major Changes

  • πŸ’₯BREAKING: remove HTML-related types. Use PropsOf instead. (by @wmertens in #7045)

  • πŸ’₯BREAKING: useComputed no longer allows Promise returns. (meaning it is strictly sync) Instead, use useSignal and useTask together to perform async signal updates (by @wmertens in #6907)

  • qwik-labs package has been removed in favor of experimental features. (by @shairez in #7025)
    So the "Insights" vite plugin and components have been moved to core as an experimental feature.

    In order to use it, you need to -

    1) add insights to the experimental array in vite.config.ts:

    qwikVite({
      experimental: ['insights']
    }),

    2) Import and use the qwikInsights vite plugin from @qwik.dev/core/insights/vite:

    import { qwikInsights } from '@qwik.dev/core/insights/vite';

    3) import the <Insights> component from @qwik.dev/core/insights and use it in your root.tsx file: :

    import { Insights } from '@qwik.dev/core/insights';
    
    // ...rest of root.tsx file
    
    return (
      <Insights publicApiKey="..." postUrl="..." />
      /* ...qwik app */
    );
  • πŸ’₯BREAKING: the Typescript exports were trimmed down to the bare minimum. If there are types you are missing, open an issue. (by @wmertens in #7045)

Minor Changes

  • ✨ new integration tests that are running with the optimizer (by @Varixo in #7055)

  • ✨ new simpler signals implementation with lazy useComputed$ execution, only when is needed (by @Varixo in #7055)

  • ✨ added the scheduler to sort chores execution and have more predictable behavior (by @Varixo in #7055)

  • ✨ new faster serialization system (by @Varixo in #7055)

  • ✨ new CSR and SSR rendering written from scratch to speed up performance, improve code readability, and make the code easier to understand for new contributors (by @Varixo in #7055)

Patch Changes

  • 🐞🩹 do not trigger effects if computed value is not changed (by @Varixo in #6996)

eslint-plugin-qwik@1.10.0

11 Nov 15:50
9ecfa4c
Compare
Choose a tag to compare

Patch Changes

  • 🐞🩹 the @typescript-eslint/utils dependency is upgraded and made explicit in the package (by @wmertens in #7030)

create-qwik@1.10.0

11 Nov 15:50
9ecfa4c
Compare
Choose a tag to compare

Patch Changes

@builder.io/qwik@1.10.0

11 Nov 15:50
9ecfa4c
Compare
Choose a tag to compare

Minor Changes

  • Async functions in useComputed are deprecated. (by @wmertens in #7013)

    Why?

    • Qwik can't track used signals after the first await, which leads to subtle bugs.
    • When calculating the first time, it will see it's a promise and it will restart the render function.
    • Both useTask and useResource are available, without these problems.

    In v2, async functions won't work.

    Again, to get the same functionality use useTask or useResource instead, or this function:

    export const useAsyncComputed$ = (qrlFn: QRL<() => Promise<any>>) => {
      const sig = useSignal();
      useTask(({ track }) => {
        const result = track(qrlFn);
        if (result && 'then' in result) {
          result.then(
            (val) => (sig.value = val),
            (err) => {
              console.error('async computed function threw!', err);
              throw error;
            }
          );
        } else {
          sig.value = result;
        }
      });
      return sig;
    };
  • ✨ Expose unwrapStore as a low level AP (by @GrandSchtroumpf in #6960)

    This enables developers to clone the content of a useStore() using structureClone or IndexedDB

Patch Changes

  • πŸ“ƒ fix useResource docs example & remove unused demo (by @ianlet in #6893)

  • 🐞🩹 QRL segment filenames are no longer lowercased. This was giving trouble with parent lookups in dev mode and there was no good reason for it. (by @wmertens in #7003)

  • 🐞🩹 the type for <textarea> now accepts text children, as per spec. (by @wmertens in #7016)

  • 🐞🩹 dev-mode QRL paths are now handled by Vite so they are the same as the parent paths. You can see this in the Sources section of the browser devtools, where the segments are now always next to their parents (when the parent is loaded). (by @wmertens in #7037)

  • 🐞🩹 vite is now a peer dependency of qwik, qwik-city, qwik-react and qwik-labs, so that there can be no duplicate imports. This should not have consequences, since all apps also directly depend on vite. (by @wmertens in #6945)

  • ✨ sync$ QRLs will now be serialized into the HTML in a shorter form (by @wmertens in #6944)

  • 🐞🩹 cli build command appearing to "hang" on errors (by @shairez in #6943)

  • ✨ Allow setting linkFetchPriority for modulepreload links in the prefetch strategy. Also fix the links in dev mode (by @GrandSchtroumpf in #6947)

@builder.io/qwik-city@1.10.0

11 Nov 15:50
9ecfa4c
Compare
Choose a tag to compare

Patch Changes

  • 🐞🩹 MDX content no longer ignores Layout components. See the MDX docs for more information. (by @danielvaijk in #6845)

  • 🐞🩹 SSG errors now show the path that failed (by @wmertens in #6998)

  • 🐞🩹 Fixed action redirect regression where searchParams were appended (by @brandonpittman in #6927)

  • 🐞🩹 Redirect, error, and fail request events no longer forcefully delete user-defined Cache-Control HTTP header value. (by @nelsonprsousa in #6991)

  • 🐞🩹 vite is now a peer dependency of qwik, qwik-city, qwik-react and qwik-labs, so that there can be no duplicate imports. This should not have consequences, since all apps also directly depend on vite. (by @wmertens in #6945)

  • 🐞🩹 Fixed MDX layout default export being ignored by transformer. (by @danielvaijk in #6845)

  • 🐞🩹 Prevent unexpected caching for q-data.json (by @genki in #6808)

  • 🐞🩹 Multiple rewrite routes pointing to the same route is no longer an error. (by @JerryWu1234 in #6970)

eslint-plugin-qwik@1.9.1

06 Oct 18:43
Compare
Choose a tag to compare
eslint-plugin-qwik@1.9.1

create-qwik@1.9.1

06 Oct 18:43
Compare
Choose a tag to compare
create-qwik@1.9.1

@builder.io/qwik@1.9.1

06 Oct 18:43
Compare
Choose a tag to compare

Patch Changes

  • ✨ showing qrl parent names. (by @wmertens in #6881)
    in dev mode, qrl segments now start with their parent filename so it's easy to see where they came from. Furthermore, in production builds these filenames are also used so that origins in q-manifest.json are easy to understand.

  • 🐞🩹 Optimizer now ignores unknown deps in graph that caused crashes during build (by @wmertens in #6888)

  • 🐞🩹 Do not allow object methods to be serialized with style prop (by @jakovljevic-mladen in #6932)

  • 🐞🩹 In dev mode, changes to QRLs now explicitly invalidate the segment so that the browser will reload it (by @wmertens in #6938)

@builder.io/qwik-city@1.9.1

06 Oct 18:43
Compare
Choose a tag to compare

Patch Changes

  • ✨ Experimental feature - noSPA. (by @wmertens in #6937)
    This disables history patching, slightly reducing code size and startup time. Use this when your application is MPA only, meaning you don't use the Link component. To enable this, add it to the experimental array of the qwikVite plugin (not the qwikCity plugin).