Skip to content

veliovgroup/flow-router

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

766 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

support support

FlowRouter Extra

Carefully extended flow-router package. FlowRouter is a very simple router for Meteor.js. It does routing for client-side apps and compatible with React, Vue, Svelte, and Blaze.

It exposes a great API for changing the URL and getting data from the URL. However, inside the router, it's not reactive. Most importantly, FlowRouter is designed with performance in mind and it focuses on what it does best: routing.

Features:

Install

meteor add ostrio:flow-router-extra

Compatibility

  • Meteor >=1.4, including latest Meteor 3.4;
  • Compatible with ostrio:flow-router-title@3.5.0 and ostrio:flow-router-meta@2.4.0.

ES6 Import

import { FlowRouter } from 'meteor/ostrio:flow-router-extra';
// Full list of available classes and instances:
// { FlowRouter, Router, Route, Group, Triggers, BlazeRenderer, RouterHelpers }

Usage

import { FlowRouter } from 'meteor/ostrio:flow-router-extra';

// DISABLE QUERY STRING COMPATIBILITY
// WITH OLDER FlowRouter AND Meteor RELEASES
FlowRouter.decodeQueryParamsOnce = true;

FlowRouter.route('/', {
  name: 'index',
  action() {
    // Render a template using Blaze
    this.render('layoutName', 'index');

    // Can be used with BlazeLayout,
    // and ReactLayout for React-based apps
  },
  waitOn() {
    // Dynamically load JS per route
    return [import('/imports/client/index.js')];
  }
});

// Create 404 route (catch-all)
FlowRouter.route('*', {
  action() {
    // Show 404 error page using Blaze
    this.render('notFound');

    // Can be used with BlazeLayout,
    // and ReactLayout for React-based apps
  }
});

Tip

TypeScript: add zodern:types to the app (meteor add zodern:types), enable TypeScript per Meteor docs, then run a build so .meteor/local/types is generated. This package ships index.d.ts and package-types.json for meteor/ostrio:flow-router-extra imports.

Documentation

AGENTS.md

The repo ships AGENTS.md: a compact implementation map for ostrio:flow-router-extra (routes, groups, catch-all, hooks, globals, RouterHelpers, debugging, testing). It complements narrative API docs under docs/ with file pointers and conventions maintainers rely on.

SKILLS.md

  • This repo ships a bundled skill at .agents/skills/meteor-flow-router/SKILL.md (covers ostrio:flow-router-extra, ostrio:flow-router-meta, ostrio:flow-router-title). Install into your project with the Skills CLI (npx skills):
# From a Meteor app repo (install into that app’s .agents/skills for Cursor, etc.)
npx skills add veliovgroup/flow-router --skill meteor-flow-router --agent cursor --yes

# Only list skills discovered in the Flow Router repo (no install)
npx skills add veliovgroup/flow-router --list

# Local clone of flow-router (path can be absolute or ./relative)
npx skills add ./flow-router --skill meteor-flow-router --agent cursor --yes

# User-global Cursor skills dir (~/.cursor/skills)
npx skills add veliovgroup/flow-router --skill meteor-flow-router --agent cursor --global --yes

Related packages:

Running Tests

  1. Clone this package
  2. In Terminal (Console) go to directory where package is cloned
  3. Then run:

Meteor/Tinytest

# Default
meteor test-packages ./

# With custom port
meteor test-packages ./ --port 8888

# With local MongoDB and custom port
MONGO_URL="mongodb://127.0.0.1:27017/flow-router-tests" meteor test-packages ./ --port 8888

Running Typescript Test

  1. Install dev dependencies with meteor npm install;
  2. Run meteor npm run test:tsd (or meteor npm exec tsd) from package root. tsd will find index.test-d.ts and report type errors.

Support this project:

Sponsor this project

  •  

Contributors

Languages

  • JavaScript 98.6%
  • TypeScript 1.4%