Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Not so much a framework, closer to boilerplate... but maintained and bundled with useful connectors.
Not so much a framework, closer to boilerplate... but maintained and bundled with useful connectors. An out-of-box (and slightly opinionated) foundation for building "universal" React/Redux applications.
npm install --save exygen
The guiding principal behind Exygen is to reduce boilerplate (and boilerplate maintenance), without getting in the way of your use of the core libraries it bundles (react
, redux
, react-router
,...). At its most basic, Exygen cares about just two things: your routes and your root reducer.
routes.js
import { Dashboard } from './pages';
export const routes = [
{
path: '/',
exact: true,
component: Dashboard
}
];
export default routes;
reducer.js
import { combineReducers } from 'redux';
import { todos } from './modules/todos/reducer';
export default combineReducers({
todos
});
Pass those into the entry points for client and server, and... voila!
server.js
import path from 'path';
import server from 'exygen/server';
import routes from './routes';
import reducer from './reducer';
server({
routes,
reducer,
assets: path.resolve( __dirname, './public' )
});
client.js
import client from 'exygen/client';
import routes from './routes';
import reducer from './reducer';
client({
routes,
reducer
});
This is an incomplete setup, but it gives you a good sense of the flavor of Exygen.
The Exygen
connectors provide webpack
and React
hot-module-replacement out-of-box, in the development environment.
"Route Actions" are actions that are dispatched to the Redux store when a route matches. Their most important use is pre-fetching data based on routes, for server-side rendering. They are managed by the Exygen
connectors, and fire on both server and client.
routes.js
import { Dashboard, TodoList } from './pages';
import { fetchList } from './actions';
export const routes = [
{
path: '/',
exact: true,
component: Dashboard
},
{
path: '/list/:listId',
component: TodoList,
fetch: ({ params }) => fetchList( params.listId )
}
];
export default routes;
actions.js
export const fetchList = ( listId ) => {
return dispatch => {
dispatch({ type: 'LIST_REQUESTED', listId });
return fetch( `/api/lists/${ listId }` )
.then(
res => dispatch({ type: 'LIST_RECEIVED', list: res }),
err => dispatch({ type: 'LIST_ERROR' })
);
}
}
This project isn't simply boilerplate, but it does offer a quick starting point for your project.
npm install -g exygen
exygen init
Exygen
will install a minimal project template (directory structure and essential files) into the current working directory.
server( options )
express
request object.FAQs
Not so much a framework, closer to boilerplate... but maintained and bundled with useful connectors.
The npm package exygen receives a total of 1 weekly downloads. As such, exygen popularity was classified as not popular.
We found that exygen demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.