Release notes
View source on GitHub0.25.0-dev.20260921034536
Minor Changes
- Wrapper components no longer render the module data they receive as HTML attributes, so an entity renders
<div>where it rendered<div entity="[object Object]" fields="[object Object]">. Wrappers still read that data from$attrs. (b9bc480) Anidset on a module no longer repeats on the modules below it.
Patch Changes
- Druxt components no longer flicker on the first load of a production build. Each module now registers its components as synchronous imports, so a server-rendered block or field is kept after hydration and does not fetch its data a second time. Sites that added a
components:extendhook to work around this can remove it. (8b47d6f) - Druxt components now keep their rendered content while they fetch again. Before, a component with a default slot and no wrapper component went blank during a refetch, which made the page jump after it loaded. A failed fetch with no component data of its own no longer throws while the component fetches again. (
716eab0) - Updated dependencies. (#698,
a1d6708) getCollectionnow returns fully hydrated resources inincluded. (#781,56929b7) on a cache hit, matching what a fresh fetch returns, where it previously returned bare{ id, type }references. A resource removed withflushResourceis fetched again on the next collection request instead of coming back as an undefined entry, and a cached collection returns only the includes its most recent response carried.- The README banner renders on npm.
repository.directoryonly changes the Repository link on the npm page, so npm's registry still resolved a relative image path against the monorepo root, where the banner does not exist. Each package's banner is now an absolute URL naming its own directory. (d963bcb) - The README banner now renders on npm. Each package's
repositoryfield names its own directory in the monorepo, so npm resolves the banner image againstpackages/<name>instead of the repository root, where it did not exist. (a8f4ed6) - The JSON:API index is now shared between DruxtClient instances that use the same Axios instance for the same base URL, endpoint and resource config. Multiple Druxt modules in one process fetch the index once instead of once per client, concurrent requests share the one fetch, and a client with its own Axios instance, and so its own credentials, keeps its own index. (
43ddd7b) - Pin axios to 0.28.0 and transpile axios in the Nuxt module so a hoisted ESM axios cannot break the dev server. (#658,
11c5516) - A module now rebuilds its wrapper's propsData when its own props change. Before,
propsDatawas built once insidefetch(), and Nuxt 2 does not re-runfetch()for a prop change, so a component instance Vue reused across one kept whatever it was first given. ADruxtFieldre-rendered with a form schema went on rendering the read-only view output, with no label, textarea or editor. (17811be) The rebuild reuses the props already in hand rather than fetching again, so no extra request is made. An errored module keeps its debug output, and a rebuild that would change nothing is skipped. Where JSON cannot hold a value exactly, such as a callback or a Set, identity decides rather than the JSON text, so two different values are never read as one.
0.24.0 - 2023-11-02
- No package changes; version alignment release.
0.23.0 - 2023-07-25
Minor Changes
- Added attrs passthrough to the DruxtWrapper component, so attributes like
roleset via the wrapper reach the rendered markup. (#87,7664d90)
0.22.0 - 2023-07-05
Minor Changes
- Added druxt/flushCollection and druxt/flushResource mutations for flushing cached JSON:API data, for example on logout. (#639,
41cab3a) - Added bypassCache option to druxt/getCollection and druxt/getResource actions. (#639,
41cab3a)
0.21.1 - 2023-05-15
Patch Changes
- Fixed included resources being fetched without the language prefix on multilingual sites, which returned default-language content when revisiting a page by client-side navigation. (#628,
e46a329) Thanks @nx-alejandrolacasa.
0.21.0 - 2022-11-03
Minor Changes
- Added DruxtDevelTemplate component to simplify template creation in development mode. (#578,
f6b4a66) - Updated missing default slot message with DruxtDevelTemplate tool. (#578,
f6b4a66) - Added Vue devtools plugin. (#583,
29905ff)
0.20.0 - 2022-08-12
Minor Changes
- Removed the hard permission-check error from API requests, so content a role cannot access (for example permission-restricted blocks) no longer breaks the page render. (#543,
49b6787)
0.19.3 - 2022-07-08
Patch Changes
- Normalized slashes for baseUrl and endpoint options. (
44f97b9) - Fixed plugin paths issue for Windows users. (
352b7a5) - Fixed support for nuxt/storybook. (
45e14b8)
0.19.2 - 2022-05-30
Patch Changes
- Fixed issue with single-lingual sites using JSON:API Extras. (
9819eee) - Changed order of Druxt Proxy entries. (
4ff0ad8)
0.19.1 - 2022-05-24
Patch Changes
- Fixed issues on single-lingual sites. (
4150e25)
0.19.0 - 2022-05-23
Minor Changes
-
Added langcode / prefix support to DruxtClient methods. (
be21952)const data = await druxt.getResource('node--article', id, undefined, 'en'); -
Added langcode-suffixed component options for multilingual templates. (
be21952)example:
+ DruxtEntityNodeArticleFullEn + DruxtEntityNodeArticleFullEs -
Added langcode prefix support to the DruxtStore. (
be21952)⚠ Potential breaking change
- $store.state.druxt.collections['view--view'].abefce528d89d7fcf5c59d4469f33e12 + $store.state.druxt.collections['view--view'].abefce528d89d7fcf5c59d4469f33e12[undefined] + $store.state.druxt.collections['view--view'].abefce528d89d7fcf5c59d4469f33e12.en + $store.state.druxt.collections['view--view'].abefce528d89d7fcf5c59d4469f33e12.es - $store.state.druxt.resources['node--recipe']['67f44980-de26-4567-82f4-b058595720ec'] + $store.state.druxt.resources['node--recipe']['67f44980-de26-4567-82f4-b058595720ec'][undefined] + $store.state.druxt.resources['node--recipe']['67f44980-de26-4567-82f4-b058595720ec'].en + $store.state.druxt.resources['node--recipe']['67f44980-de26-4567-82f4-b058595720ec'].es -
Added language prefixes to API proxy support. (
be21952) -
Added multilingual support to the base DruxtModule component. (
be21952)
0.18.3 - 2022-05-06
Patch Changes
- Fixed proxy when using deprecated Axios options. (
e6cf1fc)
0.18.2 - 2022-04-14
Patch Changes
- Updated drupal-jsonapi-params to 2.0.0. (
540afca)
0.18.1 - 2022-03-17
Patch Changes
- Fixed Axios proxy being incorrectly enabled. (
80164a1)
0.18.0 - 2022-02-23
Minor Changes
- Added support for the @nuxtjs/axios module. (
e3d5238)
0.17.0 - 2022-02-07
Minor Changes
- Added README story to storybook. (#249,
b79701c) - Added required props error to DruxtModule components. (
b79701c) - Added DruxtModule story to storybook. (#249,
b79701c) - Added DruxtDebug story to storybook. (#249,
b79701c)
Patch Changes
0.16.0 - 2021-12-30
Minor Changes
- Made the $druxt plugin first to be available to all Druxt module plugins. (
dc226c2) - Added improved error handling, with more context in error messages. (#408,
7b749bd,bc079cf)
0.15.0 - 2021-12-11
Minor Changes
- Reduced Fetch based UI flicker in the DruxtModule. (
2ae1d6d)
0.14.0 - 2021-12-04
Minor Changes
-
Added debug mode and Axios request logging. (
85fff42)export default { druxt: { // Enable debug log messages. debug: true, } } -
Added ability to render readable JSON with the DruxtDebug component. (
39e2e2e)<DruxtDebug :json="{ data: [{ one: true, two: false }] }" /> -
Made summary prop optional on DruxtDebug component. (
9c33d82) -
Added Druxt version to Nuxt badge. (
45bc0b9)
0.13.0 - 2021-11-10
Minor Changes
-
Added ability to proxy the API. (
77ab204)export default { druxt: { proxy: { api: true, }, }, };Creates two proxy entries:
- The JSON:API:
${ENDPOINT}->${BASEURL}${ENDPOINT} - The Decoupled Router:
/router/translate-path->${BASEURL}/router/translate-path
- The JSON:API:
-
Added ability to proxy the Drupal file system. (
77ab204)export default { druxt: { proxy: { files: 'default', }, }, };Creates a proxy entry:
/sites/${PATH}/files->${BASEURL}/site/${PATH}/files
-
Changed template-injected module components to not use a DruxtWrapper component by default. (
c4457e1) -
Refactored DruxtModule fetch hooks. (
e7b1533)
0.12.0 - 2021-10-10
Minor Changes
-
Added createResource method to DruxtClient. (
897dcbc)this.$druxt.createResource({ type, attributes: {}, relationships: {} }); -
Added updateResource method to DruxtClient. (
897dcbc)await this.$druxt.updateResource({ type, id, attributes: {}, relationships: {}, }); -
Added getRelated() method. (
4504a2f)await this.$druxt.getRelated(type, id, related); -
Enabled Components auto-discovery by default. (
e3e634c)
0.11.0 - 2021-09-29
Minor Changes
- Added Druxt modules settings to
$druxt.settings. (dae345e)
Patch Changes
- Fixed issue with Axios settings and Storybook. (
75ff8a9)
0.10.0 - 2021-09-19
Minor Changes
- Updated component registration method to use the Nuxt
components:dirshook. (715e5ef) - Added DruxtDebug component. (
2b8c3f3) - Added Druxt API URL to Nuxt CLI badge. (
317184e)
0.9.0 - 2021-09-13
Patch Changes
- Updated the scule dependency to ^0.2.0. (
d27081b)
Minor Changes
-
Moved Vue components out of bundle. (
21170fb)⚠ Potential breaking change
Note: This only effects custom Druxt modules and implementations.
-import { DruxtModule } from 'druxt' +import DruxtModule from 'druxt/dist/components/DruxtModule.vue'
0.8.3 - 2021-07-06
Patch Changes
- Fixed issue with attrs passthrough.
0.8.2 - 2021-07-06
Patch Changes
- Fixed bug with fetchKey and attrs passthrough.
0.8.1 - 2021-06-22
Patch Changes
- Fixed DruxtModule emit behavior.
0.8.0 - 2021-06-20
Minor Changes
-
Added support for default template injection to DruxtModule.
Example: Default template injection with DruxtEntity and DruxtMenu components
<DruxtEntity v-bind="props"> <template #default="{ entity }"> <h2>{{ entity.attributes.title }}</h2> <DruxtMenu name="main" :depth="1" :parentId="parentId(entity)"> <template #default="{ items }"> {{ items }} </template> </DruxtMenu> </template> </DruxtEntity>
0.7.1 - 2021-06-15
Patch Changes
- Fixed issue with attrs passthrough.
- Updated support for Drupal JSON-API Params.
Thanks to d34dman
0.7.0 - 2021-06-10
Minor Changes
-
Added support for v-model to DruxtModule.
Example: Passing a custom entity model to the DruxtEntity component
<DruxtEntity type="node--article" v-model="{ attributes: { title: 'My Entity', field_name: 'Value', }, relationships: {}, }" />
0.6.1 - 2021-06-10
Patch Changes
- Fixed issue with normalization of include/sort data.
- Fixed issue with queryobject in getResource action.
- Updated dependencies.
0.6.0 - 2021-05-19
Minor Changes
- Refactored DruxtStore.
- Added support for partial resources
- Added dehydration/rehydration of included resources and collections
- Fixed issue with DruxtStore reactivity.
0.5.1 - 2021-03-16
Patch Changes
- Fixed issue with getWrapperData.
- Fixed issue with DruxtStore reactivity.
0.5.0 - 2021-03-14
Minor Changes
-
Added DruxtModule component.
<script> import { DruxtModule } from 'druxt'; export default { name: 'MyCustomDruxtModule', extends: DruxtModule, }; </script>- For more details, refer to the DruxtModule API documentation
-
Added $attrs/props splitting.
0.4.2 - 2021-03-02
Patch Changes
- Added metadata to Nuxt module.
0.4.1 - 2021-02-09
Patch Changes
- Fixed dependency issues.
0.4.0 - 2021-02-01
Minor Changes
-
Added DruxtClient.
Example: Using the DruxtClient to load a JSON:API resource in a node.js application
import { DruxtClient } from 'druxt' const druxt = new DruxtClient('https://demo-api.druxtjs.org') druxt.getResource('node--page', uuid, query).then((resource) => { console.log('getResource', resource) }))- For more details, refer to the DruxtClient API documentation
-
Added DruxtStore.
Example: Using the DruxtStore to load a JSON:API resource within Nuxt
<script> export default { data: () => ({ resource: null, }), async fetch() { const resource = await this.$store.dispatch('druxt/getResource', { type: 'node--article', id: uuid, query, }); this.resource = resource; }, }; </script>- For more details, refer to the DruxtStore API documentation
-
Added $druxt plugin wrapper for DruxtClient.
0.3.4 - 2021-01-08
Patch Changes
- Updated dependencies.
0.3.3 - 2020-10-19
Patch Changes
- Added Inner prop to DruxtComponentMixin.
0.3.2 - 2020-10-13
Patch Changes
- Added sorting of component options.
- Fixed issue with component options.
0.3.1 - 2020-10-11
Patch Changes
- Added DruxtWrapper to DruxtComponentMixin.
- Added unique filter to component options.
0.3.0 - 2020-10-10
Minor Changes
- Moved Site functionality to the DruxtSite module.
- Added Druxt component and mixin.
- Added available component options data.
- Removed unused Class and Store.
0.2.1 - 2020-10-01
Patch Changes
- Added @nuxtjs/proxy and default configuration.
- Updated dependencies.
0.2.0 - 2020-09-08
Minor Changes
- Updated dependencies.
0.1.2 - 2020-08-22
Patch Changes
- Fixed Vuex store installation.
- Updated dependencies.
0.1.1 - 2020-07-20
Patch Changes
- Removed schema generation workaround.