Skip to content

Commit

Permalink
Merge branch 'master' into next
Browse files Browse the repository at this point in the history
  • Loading branch information
jchip committed Dec 31, 2019
2 parents 342f3a0 + 55c491c commit 26a441c
Show file tree
Hide file tree
Showing 27 changed files with 195 additions and 148 deletions.
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
# 12/31/2019

- dev admin only read keys in TTY mode

## Packages

- `[email protected]` `(6.5.21 => 6.5.22)`
- `[email protected]` `(6.5.21 => 6.5.22)`

## Commits

- `packages/electrode-archetype-react-app[-dev]`

- Fix tests ([#1475](https://github.com/electrode-io/electrode/pull/1475)) [commit](http://github.com/electrode-io/electrode/commit/a3114aac60257648671a449121a5c8d43e9a7ff8)
- dev admin only read keys in TTY mode ([#1470](https://github.com/electrode-io/electrode/pull/1470)) [commit](http://github.com/electrode-io/electrode/commit/9cd31c465b9b30478e128ec0a999324703deda26)

- `docs`

- link fixes ([#1476](https://github.com/electrode-io/electrode/pull/1476)) [commit](http://github.com/electrode-io/electrode/commit/4ce9bf9e83d5295a7596dfce7c2b163467f5f5a1)
- doc link fixes 2 ([#1479](https://github.com/electrode-io/electrode/pull/1479)) [commit](http://github.com/electrode-io/electrode/commit/ea206268010ee0fa6bd8a010464bef3dbaac80df)

# 12/16/2019

## Packages
Expand Down
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
Do you find Electrode useful? Please send us your encouragement with a github star.

Did you find an issue? Would you like to help with the project?
Please See our [contributing guide] for instructions on [submitting a PR] or [reporting an issue].
Please see our [contributing guide] for instructions on [submitting a PR] or [reporting an issue].

## Packages

Expand All @@ -47,7 +47,7 @@ The [Electrode main repo] uses [Lerna] to manage multiple related packages that
Electrode Ignite allows you to quickly create a Universal React App or Component with support from the archetypes, and server in Node with Hapi or Express.

For information on how to use the modules,
check out [Get Started With Electrode App](./chapter1/quick-start/start-with-app.html).
check out [Get Started With Electrode App](chapter1/quick-start/start-with-app.md).

## Sample Applications

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ $ npm install --save electrode-electrify

### Example Applications

* [Electrode Boilerplate](https://github.com/electrode-io/electrode-boilerplate-universal-react-node#electrode-electrify)
* [Electrode Boilerplate](https://github.com/electrode-io/electrode/tree/master/samples/universal-react-node#electrode-electrify)

## Usage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ GHACCESS_TOKEN=YOUR_GITHUB_TOKEN NODE_ENV=production node .

## Deploy

Since this is an Electrode application, it can be deployed the same way as any other Electrode app. You can use [Heroku](../../quick-start/deploy-your-app.md) by following the steps in our Quick Start or use the [More Deployments](../../intermediate/more-deployments.md) as a resource.
Since this is an Electrode application, it can be deployed the same way as any other Electrode app. You can use [Heroku](/chapter1/further-develop-app/deploy-your-app.md) by following the steps in our Quick Start or use the [More Deployments](/chapter1/intermediate/more-deployments.md) as a resource.

\*Just remember to set your GitHub token as an environment variable.

Expand Down
8 changes: 4 additions & 4 deletions docs/chapter1/advanced/stand-alone-modules.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Stand Alone Modules

### Leveraging Stand-Alone Modules
## Leveraging Stand-Alone Modules

Our flexible stand-alone modules are dedicated to optimizing performance in specific areas based on your application's needs. By "stand alone", we mean that these Electrode modules are agnostic of one another and you can use one or all of them in any Node platform to enhance your application's capabilities. Use our guides and examples below to plug them in.

* [Confippet](./stand-alone-modules/confippet.md) is a versatile and flexible utility for managing configurations of Node.js applications.

* [Above the Fold Rendering](./stand-alone-modules/above-the-fold-rendering.md) is a React component wrapper that allows expensive components to skip Server Side Rendering.

* [Server Side Render Cache + Profiling](./stand-alone-modules/above-the-fold-rendering.md) is a module used to profile React Server Side Rendering performance and then cache expensive components to help you speed up SSR.
* [Server Side Render Cache + Profiling](./stand-alone-modules/server-side-render-caching-+-profiling.md) is a module used to profile React Server Side Rendering performance and then cache expensive components to help you speed up SSR.

* [Stateless CSRF Validation](./stand-alone-modules/stateless-csrf-validation.md) is a Hapi plugin or Express middleware that enables stateless CSRF protection in case your app does not depend on server side persistence.

* [Electrode Redux Router Engine](./stand-alone-modules/redux-router-engine.md) is a Hapi plugin or Express middleware that handles async data for React Server Side Rendering using [react-router](https://github.com/ReactTraining/react-router), Redux and the [Redux Server Rendering](http://redux.js.org/docs/recipes/ServerRendering.html) pattern.

### Bringing It All Together in an Advanced Electrode App
## Bringing It All Together in an Advanced Electrode App

By following the steps in the Getting Started: Advanced section, you will have a fully loaded Electrode application. It will consist of a Universal React and Node core, optimized module, and powerful tools that have solved some of our most challenging problems when it comes to Walmart's scale and market demands. Take a deeper look into our [Electrode Boilerplate](/chapter1/advanced/you-can-view-an-example-bundleanalyzetsv-output-using-the-electrode-boilerplate-code.md) after you walk through our Stand Alone Modules and [Tools](powerful-electrode-tools.md).
By following the steps in the Getting Started: Advanced section, you will have a fully loaded Electrode application. It will consist of a Universal React and Node core, optimized module, and powerful tools that have solved some of our most challenging problems when it comes to Walmart's scale and market demands. Take a deeper look into our [Electrode Boilerplate](you-can-view-an-example-bundleanalyzetsv-output-using-the-electrode-boilerplate-code.md) after you walk through our Stand Alone Modules and [Tools](powerful-electrode-tools.md).
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The [above-the-fold-only-server-render](https://github.com/electrode-io/above-the-fold-only-server-render) module is a React component for optionally skipping server side rendering of components outside above-the-fold \(or inside of the viewport\). This component helps render your components on the server that are above the fold and the remaining components on the client.

This module is a stand-alone module and can be configured to work in any [Electrode](#stateless-validation-electrode), [Express](#stateless-validation-express), or [Hapi](#stateless-validation-hapi) application.
This module is a stand-alone module and can be configured to work in any [Electrode](https://github.com/electrode-io/electrode), [Express.js](https://github.com/electrode-samples/express-example-with-standalone-electrode-modules), or [Hapi.js](https://github.com/electrode-samples/hapijs-example-with-standalone-electrode-modules) application.

### Why do we need this module?

Expand All @@ -20,7 +20,7 @@ $ npm install --save above-the-fold-only-server-render

### Example Applications

* [Electrode Boilerplate](https://github.com/electrode-io/electrode-boilerplate-universal-react-node#above-the-fold-only-server-render)
* [Electrode Boilerplate](https://github.com/electrode-io/electrode/tree/master/samples/universal-react-node#above-the-fold-only-server-render)

* [Express React Redux Webpack Example](https://github.com/docs-code-examples-electrode-io/express-react-redux-webpack#above-the-fold-only-server-render)

Expand Down
26 changes: 13 additions & 13 deletions docs/chapter1/advanced/stand-alone-modules/confippet.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,30 +25,30 @@ $ npm install --save electrode-confippet

### Example Applications

* [Electrode Boilerplate](https://github.com/electrode-io/electrode-boilerplate-universal-react-node#electrode-confippet)
* [Electrode Boilerplate](https://github.com/electrode-io/electrode/tree/master/samples/universal-react-node#electrode-confippet)

* [Express Example with Standalone Modules](https://github.com/docs-code-examples-electrode-io/express-example-with-standalone-electrode-modules#electrode-confippet)

* [Hapi Example with Standalone Modules](https://github.com/docs-code-examples-electrode-io/hapijs-example-with-standalone-electrode-modules#electrode-confippet)

## Usage

* [Getting Started](https://docs.electrode.io/other/stand-alone-modules/confippet#getting-started)
* [configuration Composition](https://docs.electrode.io/other/stand-alone-modules/confippet#config-composition)
* [Environment Variables](https://docs.electrode.io/other/stand-alone-modules/confippet#environment-variables)
* [Using Templates](https://docs.electrode.io/other/stand-alone-modules/confippet#using-templates)
* [Usage in Node Modules](https://docs.electrode.io/other/stand-alone-modules/confippet#usage-in-node-modules)
* [Customization](https://docs.electrode.io/other/stand-alone-modules/confippet#customization)
* [Getting Started](#getting-started)
* [Configuration Composition](#config-composition)
* [Environment Variables](#environment-variables)
* [Using Templates](#using-templates)
* [Usage in Node Modules](#usage-in-node-modules)
* [Customization](#customization)

### Getting Started

Confippet can be integrated seamlessly into any existing [Express](https://docs.electrode.io/other/stand-alone-modules/confippet#express-setup), [Hapi](https://docs.electrode.io/other/stand-alone-modules/confippet#hapi-setup) or [Electrode](https://docs.electrode.io/other/stand-alone-modules/confippet#electrode-setup) application.
Confippet can be integrated seamlessly into any existing [Express](#express-setup), [Hapi](#hapi-setup) or [Electrode](#electrode-setup) application.

For example, let's say that in our application we need to access a database that is running locally in our development environment but is running on a specific hostname in our production environment. We would like to be able to get the correct hostname in our code based on the current environment. Confippet can help us with this. Follow the setup instructions for this example depending on your app's framework:

* [Electrode](https://docs.electrode.io/other/stand-alone-modules/confippet#electrode-setup)
* [Express](https://docs.electrode.io/other/stand-alone-modules/confippet#express-setup)
* [Hapi](https://docs.electrode.io/other/stand-alone-modules/confippet#hapi-setup)
* [Electrode](#electrode-setup)
* [Express](#express-setup)
* [Hapi](#hapi-setup)

#### _**Electrode Setup**_

Expand Down Expand Up @@ -377,7 +377,7 @@ Confippet's `presetConfig` composes together files in the `config/` directory, i

Where:

* `EXT` can be any of `["json", "yaml", "js"]`. Confippet will load all of them, in that order. Each time it finds a configuration file, the values in that file will be loaded and merged into the configuration store. So `js` overrides `yaml`, which overrides `json`. You can add handlers for other file types and change their loading order—see [composeConfig](/chapter1/advanced/stand-alone-modules/confippet.md) for further details.
* `EXT` can be any of `["json", "yaml", "js"]`. Confippet will load all of them, in that order. Each time it finds a configuration file, the values in that file will be loaded and merged into the configuration store. So `js` overrides `yaml`, which overrides `json`. You can add handlers for other file types and change their loading order—see [composeConfig](https://github.com/electrode-io/electrode-confippet/blob/master/compose.md) for further details.
* `{instance}` is your app's instance string in multi-instance deployments \(specified by the `NODE_APP_INSTANCE`
environment variable\).
* `{short_hostname}` is your server name up to the first dot.
Expand Down Expand Up @@ -406,7 +406,7 @@ Confippet reads the following environment variables when composing a configurati
* `NODE_CONFIG`- You can set this to a valid JSON string and Confippet will parse it to override the configuration.
* `CONFIPPET*`- Any environment variables that starts with `CONFIPPET` will be parsed as JSON strings to override the configuration.

### Using Templates {#using-templates}
### Using Templates

Values in your configuration files can be templates, which will be resolved with a preset context. See [processConfig](https://github.com/electrode-io/electrode-confippet/blob/master/templates.md) for more information about how to use configuration value templates.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ The Electrode Redux Router Engine is a tool that handles asynchronous data for R
- [Route Redux Init Example](#route-redux-init-example)
- [`options` param](#options-param)
- [More Route Redux Init Details](#more-route-redux-init-details)
- [Redux Router Engine](#redux-router-engine-1)
- [Redux Router Engine](#the-redux-router-engine)
- [Electrode](#electrode)
- [Hapi/Express](#hapiexpress)
- [Redirect](#redirect)
Expand Down Expand Up @@ -212,9 +212,9 @@ export default function reduxInit(options) {

- In both cases you either have to manually process results from your child routes in `options.inits`, or you do every thing in the top route's `init` only.

## Redux Router Engine
## The Redux Router Engine

The [redux-router engine](#redux-router-engine) is initialized by passing a set of [options](#redux-router-engine-api) including [your react router routes](#define-your-routes) definition.
The Redux Router Engine is initialized by passing a set of [options](#apis) including [your react router routes](#define-your-routes) definition.

The `ReduxRouterEngine` is stand-alone and can be used in **any** Redux/React application that runs on Express, Hapi or [WalmartLab's Electrode Platform](http://www.electrode.io/). Here's how to configure the engine depending on your framework:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Use the The electrode-react-ssr-caching module to optimize React SSR with profil

The [electrode-react-ssr-caching](https://github.com/electrode-io/electrode-react-ssr-caching) module supports profiling React Server Side Rendering time to enable component caching to help you speed up Server Side Rendering of your components.

This module is a stand-alone module and can be configured to work in any [Electrode](#stateless-validation-electrode), [Express](#stateless-validation-express), or [Hapi](#stateless-validation-hapi) application.
This module is a stand-alone module and can be configured to work in any [Electrode](https://github.com/electrode-io/electrode), [Express.js](https://github.com/electrode-samples/express-example-with-standalone-electrode-modules), or [Hapi.js](https://github.com/electrode-samples/hapijs-example-with-standalone-electrode-modules) application.

## Module: [electrode-react-ssr-caching](https://github.com/electrode-io/electrode-react-ssr-caching)

Expand All @@ -16,7 +16,7 @@ $ npm install --save electrode-react-ssr-caching

### Example Applications

* [Electrode Boilerplate](https://github.com/electrode-io/electrode-boilerplate-universal-react-node#electrode-react-ssr-caching)
* [Electrode Boilerplate](https://github.com/electrode-io/electrode/tree/master/samples/universal-react-node#electrode-react-ssr-caching)

* [Express React Redux Webpack Example](https://github.com/docs-code-examples-electrode-io/express-react-redux-webpack#electrode-react-ssr-caching)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ $ npm install --save electrode-csrf-jwt

### Example Applications

* [Electrode Boilerplate](https://github.com/electrode-io/electrode-boilerplate-universal-react-node#electrode-csrf-jwt)
* [Electrode Boilerplate](https://github.com/electrode-io/electrode/tree/master/samples/universal-react-node#electrode-csrf-jwt)

* [Express Example with Standalone Modules](https://github.com/docs-code-examples-electrode-io/express-example-with-standalone-electrode-modules#electrode-csrf-jwt)

Expand Down Expand Up @@ -66,7 +66,7 @@ Other configuration properties are optional and follow the [same usage as jsonwe

### Electrode {#stateless-validation-electrode}

All server configurations in [Electrode apps](../../../what-is-electrode.md) are handled by the versatile [confippet](./confippet.md) module. The Stateless CSRF JWT Validation module can be easily configured by adding the following property to `config/default.json`:
All server configurations in [Electrode apps](/overview/what-is-electrode.md) are handled by the versatile [confippet](./confippet.md) module. The Stateless CSRF JWT Validation module can be easily configured by adding the following property to `config/default.json`:

```
{
Expand Down Expand Up @@ -184,4 +184,4 @@ function doGet() {

In this example a `POST` request to `/2` can be made using the token retrieved from the `/1` endpoint.

You can checkout our [Electrode Boilerplate React Application](https://github.com/electrode-io/electrode#boilerplate-universal-react-node) for a more detailed example.
You can checkout our [Electrode Boilerplate React Application](https://github.com/electrode-io/electrode/tree/master/samples/universal-react-node) for a more detailed example.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

### Maximum Performance Out-of-the-Box

In our [Getting Started](/chapter1.md) section, we introduced you to our Yeoman Electrode [Generator](https://github.com/electrode-io/electrode#yeoman-generator) and we constructed an impressive application with the built in technologies that the simple `yo electrode` command gave us (read our Getting Started: [What's Inside](../quick-start/whats-inside.md) to learn more):
In our **Getting Started** section, we introduced you to our Yeoman Electrode [Generator](https://github.com/electrode-io/electrode#yeoman-generator) and we constructed an impressive application with the built in technologies that the simple `yo electrode` command gave us (read our Getting Started: [What's Inside](/chapter1/further-develop-app/whats-inside.md) to learn more):

- [React](https://facebook.github.io/react/index.html)

Expand Down Expand Up @@ -36,9 +36,9 @@ In our [Getting Started](/chapter1.md) section, we introduced you to our Yeoman

- [Electrode-Docgen](https://github.com/electrode-io/electrode-docgen)

This is the beginning foundation of the [Electrode Boilerplate](./you-can-view-an-example-bundleanalyzetsv-output-using-the-electrode-boilerplate-code.md). You have learned in the [Stand Alone Modules](./stand-alone-modules.md) section that each of the Electrode modules are agnostic and can be used individually to enhance one specific area of your application. However, integrated together, you have a supercharged application; one that is capable of handling the complex problems we face at WalmartLabs and reach maximum efficiency and performance.
This is the beginning foundation of the Electrode Boilerplate. You have learned in the [Stand Alone Modules](./stand-alone-modules.md) section that each of the Electrode modules are agnostic and can be used individually to enhance one specific area of your application. However, integrated together, you have a supercharged application; one that is capable of handling the complex problems we face at WalmartLabs and reach maximum efficiency and performance.

This boilerplate includes the [Electrode Generator](../quick-start/whats-inside.md) and it also has the following stand-alone modules and tools built in for peak optimization right out-of-the-box:
This boilerplate includes the [Electrode Generator](/chapter1/further-develop-app/whats-inside.md) and it also has the following stand-alone modules and tools built in for peak optimization right out-of-the-box:

- [Above the Fold Rendering](./stand-alone-modules/above-the-fold-rendering.md)
- [Server Side Render Cache + Profiling](./stand-alone-modules/server-side-render-caching-+-profiling.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/chapter1/further-develop-app/deploy-your-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,4 @@ Visit the app at the generated URL by using this command:
$ heroku open
```

And...you did it! Click [here](https://first-electrode-example-app.herokuapp.com/) for our deployed Heroku version. We will build even more in our [Getting Started: Intermediate](../Intermediate.md) and cover complex topics like routing, server plugins, and other powerful deployment software.
And...you did it! Click [here](https://first-electrode-example-app.herokuapp.com/) for our deployed Heroku version. We will build even more in our [Getting Started: Intermediate](/chapter1/intermediate/README.md) and cover complex topics like routing, server plugins, and other powerful deployment software.
File renamed without changes.
Loading

0 comments on commit 26a441c

Please sign in to comment.