druxt-router
Advanced tools
Comparing version 0.5.0 to 0.6.0
@@ -64,3 +64,7 @@ import { mapState } from 'vuex'; | ||
// Setup Axios. | ||
this.axios = axios.create({ baseURL: baseURL }); | ||
var axiosSettings = { baseURL: baseURL }; | ||
if (typeof options.axios === 'object') { | ||
axiosSettings = Object.assign(axiosSettings, options.axios); | ||
} | ||
this.axios = axios.create(axiosSettings); | ||
@@ -67,0 +71,0 @@ // Setup options. |
@@ -1,1 +0,1 @@ | ||
var DruxtRouter=function(t,e,r,i){"use strict";r=r&&r.hasOwnProperty("default")?r.default:r,i=i&&i.hasOwnProperty("default")?i.default:i;var o={name:"druxt-router",head:function(){return{title:this.title,link:[{rel:"canonical",href:this.canonical||this.route.entity.canonical}],meta:this.metatags||!1}},computed:Object.assign({},{title:function(){return this.route.label}},e.mapState({entity:function(t){return t.druxtRouter.entities[t.druxtRouter.route.entity.uuid]},redirect:function(t){return t.druxtRouter.redirect},route:function(t){return t.druxtRouter.route}})),render:function(t){return t("div",{key:this.route.entity.uuid,props:{type:""+this.route.jsonapi.resourceName,uuid:this.route.entity.uuid}},JSON.stringify(this.route))},fetch:async function(t){var e=t.store,r=t.redirect,i=t.route,o=await e.dispatch("druxtRouter/get",i.fullPath);o.redirect&&r(o.redirect)}},n=function(t,e){if(void 0===e&&(e={}),!t)throw new Error("The 'baseURL' parameter is required.");this.axios=r.create({baseURL:t}),this.setOptions(e)};n.prototype.setOptions=function(t){void 0===t&&(t={}),"function"==typeof t.preprocessEntity&&(this.preprocessEntity=t.preprocessEntity)},n.prototype.get=async function(t){var e=await this.getRoute(t),r=this.getRedirect(t,e);return{entity:await this.getResourceByRoute(e),redirect:r,route:e}},n.prototype.getRedirect=function(t,e){if(Array.isArray(e.redirect)&&void 0!==e.redirect[0].to)return e.redirect[0].to;if(e.isHomePath)return"/"!==t&&"/";if("string"==typeof e.resolved){var r=new i(e.resolved);if(t!==r.pathname)return r.pathname}return!1},n.prototype.getResource=async function(t){var e=t.id,r=t.type,i="/api/"+r.replace("--","/")+"/"+e,o=await this.axios.get(i),n={id:e,type:r,data:o.data};return this.preprocessEntity&&(n._raw=n.data,n.data=await this.preprocessEntity(o)),n},n.prototype.getResourceByRoute=function(t){return this.getResource({id:t.entity.uuid,type:t.jsonapi.resourceName})},n.prototype.getRoute=async function(t){var e="/router/translate-path?path="+t;return(await this.axios.get(e)).data};var u=require("vuex"),s={props:{uuid:{type:String,required:!0},type:{type:String,required:!0}},created:function(){var t=this;void 0===this.entities[this.uuid]&&(this.loading=!0,this.getEntity({id:this.uuid,type:this.type}).then((function(e){t.loading="function"==typeof t.onDruxtRouterLoad&&!!t.onDruxtRouterLoad(e)})))},data:function(){return{loading:!1}},computed:Object.assign({},{entity:function(){return this.entities[this.uuid]},ready:function(){return!this.loading&&!!this.entity}},u.mapState({entities:function(t){return t.druxtRouter.entities}})),methods:Object.assign({},u.mapActions({getEntity:"druxtRouter/getEntity"}))};return t.DruxtRouter=n,t.DruxtRouterComponent=o,t.DruxtRouterEntityMixin=s,t.DruxtRouterStore=function(t){var e=t.store;if(void 0===e)throw new TypeError("Vuex store not found.");e.registerModule("druxtRouter",{namespaced:!0,state:function(){return{entities:{},redirect:!1,route:{},routes:{}}},mutations:{addEntity:function(t,e){void 0!==e.id&&(t.entities[e.id]=e)},setRedirect:function(t,e){t.redirect=e},addRoute:function(t,e){var r=e.path,i=e.route;"string"==typeof r&&void 0!==i&&(t.routes[r]=i)},setRoute:function(t,e){"string"==typeof e&&void 0!==t.routes[e]&&(t.route=t.routes[e])}},actions:{get:async function(t,e){var r=t.commit,i=t.state;if(void 0!==i.routes[e]&&void 0!==i.entities[i.routes[e].entity.uuid]){var o=i.entities[i.routes[e].entity.uuid],n=this.$druxtRouter().getRedirect(e,o),u=i.entities[i.routes[e].entity.uuid];return r("setRoute",e),r("setRedirect",n),{entity:u,redirect:n,route:o}}try{var s=await this.$druxtRouter().get(e),a=s.entity,d=s.redirect,c=s.route;return r("addRoute",{path:e,redirect:d,route:c}),r("setRoute",e),r("setRedirect",d),r("addEntity",a),{entity:a,redirect:d,route:c}}catch(t){if(void 0===t.response)throw t;return this.app.context.error({statusCode:t.response.status,message:t.response.statusText})}},getEntity:async function(t,e){var r=t.commit,i=t.state;if(void 0!==i.entities[e.id])return i.entities[e.id];var o=await this.$druxtRouter().getResource(e);return r("addEntity",o),o}}},{preserveState:Boolean(e.state.druxtRouter)})},t}({},vuex,axios,Url); | ||
var DruxtRouter=function(t,e,r,i){"use strict";r=r&&r.hasOwnProperty("default")?r.default:r,i=i&&i.hasOwnProperty("default")?i.default:i;var o={name:"druxt-router",head:function(){return{title:this.title,link:[{rel:"canonical",href:this.canonical||this.route.entity.canonical}],meta:this.metatags||!1}},computed:Object.assign({},{title:function(){return this.route.label}},e.mapState({entity:function(t){return t.druxtRouter.entities[t.druxtRouter.route.entity.uuid]},redirect:function(t){return t.druxtRouter.redirect},route:function(t){return t.druxtRouter.route}})),render:function(t){return t("div",{key:this.route.entity.uuid,props:{type:""+this.route.jsonapi.resourceName,uuid:this.route.entity.uuid}},JSON.stringify(this.route))},fetch:async function(t){var e=t.store,r=t.redirect,i=t.route,o=await e.dispatch("druxtRouter/get",i.fullPath);o.redirect&&r(o.redirect)}},n=function(t,e){if(void 0===e&&(e={}),!t)throw new Error("The 'baseURL' parameter is required.");var i={baseURL:t};"object"==typeof e.axios&&(i=Object.assign(i,e.axios)),this.axios=r.create(i),this.setOptions(e)};n.prototype.setOptions=function(t){void 0===t&&(t={}),"function"==typeof t.preprocessEntity&&(this.preprocessEntity=t.preprocessEntity)},n.prototype.get=async function(t){var e=await this.getRoute(t),r=this.getRedirect(t,e);return{entity:await this.getResourceByRoute(e),redirect:r,route:e}},n.prototype.getRedirect=function(t,e){if(Array.isArray(e.redirect)&&void 0!==e.redirect[0].to)return e.redirect[0].to;if(e.isHomePath)return"/"!==t&&"/";if("string"==typeof e.resolved){var r=new i(e.resolved);if(t!==r.pathname)return r.pathname}return!1},n.prototype.getResource=async function(t){var e=t.id,r=t.type,i="/api/"+r.replace("--","/")+"/"+e,o=await this.axios.get(i),n={id:e,type:r,data:o.data};return this.preprocessEntity&&(n._raw=n.data,n.data=await this.preprocessEntity(o)),n},n.prototype.getResourceByRoute=function(t){return this.getResource({id:t.entity.uuid,type:t.jsonapi.resourceName})},n.prototype.getRoute=async function(t){var e="/router/translate-path?path="+t;return(await this.axios.get(e)).data};var u=require("vuex"),s={props:{uuid:{type:String,required:!0},type:{type:String,required:!0}},created:function(){var t=this;void 0===this.entities[this.uuid]&&(this.loading=!0,this.getEntity({id:this.uuid,type:this.type}).then((function(e){t.loading="function"==typeof t.onDruxtRouterLoad&&!!t.onDruxtRouterLoad(e)})))},data:function(){return{loading:!1}},computed:Object.assign({},{entity:function(){return this.entities[this.uuid]},ready:function(){return!this.loading&&!!this.entity}},u.mapState({entities:function(t){return t.druxtRouter.entities}})),methods:Object.assign({},u.mapActions({getEntity:"druxtRouter/getEntity"}))};return t.DruxtRouter=n,t.DruxtRouterComponent=o,t.DruxtRouterEntityMixin=s,t.DruxtRouterStore=function(t){var e=t.store;if(void 0===e)throw new TypeError("Vuex store not found.");e.registerModule("druxtRouter",{namespaced:!0,state:function(){return{entities:{},redirect:!1,route:{},routes:{}}},mutations:{addEntity:function(t,e){void 0!==e.id&&(t.entities[e.id]=e)},setRedirect:function(t,e){t.redirect=e},addRoute:function(t,e){var r=e.path,i=e.route;"string"==typeof r&&void 0!==i&&(t.routes[r]=i)},setRoute:function(t,e){"string"==typeof e&&void 0!==t.routes[e]&&(t.route=t.routes[e])}},actions:{get:async function(t,e){var r=t.commit,i=t.state;if(void 0!==i.routes[e]&&void 0!==i.entities[i.routes[e].entity.uuid]){var o=i.entities[i.routes[e].entity.uuid],n=this.$druxtRouter().getRedirect(e,o),u=i.entities[i.routes[e].entity.uuid];return r("setRoute",e),r("setRedirect",n),{entity:u,redirect:n,route:o}}try{var s=await this.$druxtRouter().get(e),a=s.entity,d=s.redirect,c=s.route;return r("addRoute",{path:e,redirect:d,route:c}),r("setRoute",e),r("setRedirect",d),r("addEntity",a),{entity:a,redirect:d,route:c}}catch(t){if(void 0===t.response)throw t;return this.app.context.error({statusCode:t.response.status,message:t.response.statusText})}},getEntity:async function(t,e){var r=t.commit,i=t.state;if(void 0!==i.entities[e.id])return i.entities[e.id];var o=await this.$druxtRouter().getResource(e);return r("addEntity",o),o}}},{preserveState:Boolean(e.state.druxtRouter)})},t}({},vuex,axios,Url); |
@@ -58,3 +58,7 @@ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopDefault(e){return(e&&(typeof e==='object')&&'default'in e)?e['default']:e}var vuex$1=require('vuex'),axios=_interopDefault(require('axios')),Url=_interopDefault(require('url-parse'));var DruxtRouterComponent = { | ||
// Setup Axios. | ||
this.axios = axios.create({ baseURL: baseURL }); | ||
var axiosSettings = { baseURL: baseURL }; | ||
if (typeof options.axios === 'object') { | ||
axiosSettings = Object.assign(axiosSettings, options.axios); | ||
} | ||
this.axios = axios.create(axiosSettings); | ||
@@ -61,0 +65,0 @@ // Setup options. |
@@ -8,2 +8,7 @@ import { DruxtRouter } from '<%= options.importPath ? options.importPath : 'druxt-router' %>' | ||
<% if (typeof options.axios === 'object') { %> | ||
// Axios settings. | ||
options.axios = <%= JSON.stringify(options.axios) %> | ||
<% } %> | ||
<% if (options.JSONAPIDeserializer) { %> | ||
@@ -10,0 +15,0 @@ // JSONAPIDeserialzer. |
{ | ||
"name": "druxt-router", | ||
"version": "0.5.0", | ||
"version": "0.6.0", | ||
"description": "Provides a Nuxt <-> Drupal router.", | ||
@@ -5,0 +5,0 @@ "files": [ |
@@ -29,1 +29,10 @@ # Druxt router | ||
Ensure you have activated the [Nuxt Vuex store](https://nuxtjs.org/guide/vuex-store/). | ||
## Options | ||
| Option | Type | Required | Default | Description | | ||
| --- | --- | --- | --- | --- | | ||
| `axios` | `object` | No | `{}` | [Axios instance settings](https://github.com/axios/axios#axioscreateconfig). | | ||
| `baseUrl` | `string` | Yes | `null` | Base URL for the Drupal installation. | | ||
| `JSONAPIDeserializer` | `boolean` | No | `false` | Enable/Disable [JSON API Serializer](https://www.npmjs.com/package/jsonapi-serializer) parsing of Drupal entities. | | ||
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
28797
646
38