npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vue-easy-router

v1.1.0

Published

Automatic router based on folder tree presented as a vue plugin

Downloads

3

Readme

npm version npm downloads license

vue-easy-router

Light router based on folder tree packaged as a vue plugin

Installation

$ npm install vue-easy-router

Overview

This packages provides a <easy-state-machine> component managing a small state machine for UI management

Usage

Declare as Webpack plugin:

plugins: [
  new VueAutoRoutingPlugin({
    // Path to the directory that contains your page components.
    pages: "resources/js/pages",

    // A string that will be added to importing component path (default @/pages/).
    importPrefix: "@/pages/",
    dynamicImport: false
  })
];

Declare as Vue plugin in your application:

import VueRouter from "vue-router";
Vue.use(VueRouter);

import VueEasyRouter from "vue-easy-router";
Vue.use(VueEasyRouter, VueRouter, {
  catchAllRoute: "/errors/404",
  loginRoute: "/login",
  userRoles: () => ["guest"]
});

Options

Each state can handle following items:

{
   "catchAllRoute": "...",
   "loginRoute" : "...",
   "userRoles": () => []
}

catchAllRoute

  • Type: String
  • Default: undefined
  • Details: Default vue/route to display if requested route not found
  • Restrictions: Can be vue name or path to vue

loginRoute

  • Type: String
  • Default: undefined
  • Details: Indicates login vue/route to redirect to in case of protected vue/route
  • Restrictions: Can be vue name or path to vue

userRoles

  • Type: Array
  • Default: []
  • Details: Indicates state to start with
  • Restrictions: Only one true entry per state table. If multiple entries, only the first one is taken.

Directives injected

This plugin injects directives to handle special features

v-modal

This directive sets route meta variable isModal to true:

<div v-modal>
  ...
</div>

to be reused in another component as:

<div v-if="!$route.meta.isModal.value">
  ...
</div>

v-protect

This directive specifies how a protected part of a vue that require appropriate role du be displayed (ex: admin role, xxx role, yyy role) should be handled when current user role is not matched.

<div v-protect:blur.admin.xxx.yyy>
  ...
</div>

blur

  • Usage: v-protect:blur
  • Details: If current user Role is not matched, blur the component.
  • Restrictions: blur via css, can be de-activated :)

disable

  • Usage: v-protect:disable
  • Details: If current user Role is not matched, disable the component.
  • Restrictions: disable via css, can be de-activated :)

hide

  • Usage: v-protect:hide
  • Details: If current user Role is not matched, hide the component.
  • Restrictions: disable via css, can be de-activated :)

reroute

  • Usage: v-protect:reroute
  • Details: If current user Role is not matched, immediately reroute to loginRoute
  • Restrictions: none