
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Intl
object and ICU based translations.And soooo much more...
npm run start
Starts a development server for both the client and server bundles. We use react-hot-loader
v3 to power the hot reloading of the client bundle, whilst a filesystem watch is implemented to reload the server bundle when any changes have occurred.
npm run prod
Builds the client and server bundles, with the output being production optimized.
npm run prod:start
Executes the server. It expects you to have already built the bundles either via the npm run build
command or manually.
npm run clean
Deletes any build output that would have originated from the other commands.
npm run storybook
Starts the Storybook demo browser.
TODO
build
: Used for bundles during development and as an output folder for production.node_modules
: Installation folder for local NodeJS packages.public
: Static files which can be used untouched. Is used by both, production builds and during development.src
: Contains application source code
assets
: Global assets. Do not use for component or view specific assets.client
: Entry point for client side application. Mostly not relevant during application development.components
: Shared components between different views. Each component should have a folder named as the class itself e.g. SelectBox
(camel-case). Component related assets, tests and sub components should be placed directly inside the folder. The components here should not know of any application specific things.containers
: Containers are components which are connected to the application state. Either by loading specific data via fetch(), connecting to Redux or using the GraphQL data binding.messages
: Global application messages which are not specific to a view of the application like header, footer, etc.modules
: Redux modules following the Ducks pattern. Each module contains reducers, selectors and action creators in a single file. Should export all of them under their original names.server
: Entry point for server side application. Mostly not relevant during application development.views
: Each route is connected to a view. Each view should be lazy loaded using our async component wrapper. A view is just a normal state-less component combining arbitrary other components and containers.Infrastructure for React application development with support for Redux, Apollo GraphQL, Hot Module Reloading and much more.
More: Homepage
Linting and code quality checks.
More: Homepage
Testing Framework. We use snapshot for all static components and unit tests for all Redux features like reducers and action creators.
More: Homepage | Getting Started
Component browser for all application components. Preconfigured to support Webpack assets (fonts, images) like EdgeStack and CSS modules.
Integrated with Jest Snapshot Testing so that every story is automatically snapshotted and compared to previous results.
More: Homepage
Kind of an alternative to Storybook with a slightly different focus. Excellent for documentation of properties and components themselve.
Very Markdown oriented for writing tests and showcase the features of components.
More: Homepage
All assets (images, fonts, json) are named in lowercase aka kebap-case => foo-bar-baz.svg
JavaScript and CSS filenames should be camelcase e.g. defaultFonts.css
. First character should only be uppercase when the file is exporting/defining a component/class e.g. MyComponent.css
.
TODO
Do not use inline styles or CSS in JavaScript solutions. Sandboxing works very well with CSS modules. You are able to use a lot of basic Sass-inspired PostCSS Plugins which are pre-configured by our stack like Sass Mixins, variables and basic @if
conditionals.
With CSS modules in place there is no need for nesting classNames. The only reason where nesting might be useful is for nesting of tag-based selectors (which should not be used that much anymore).
.bottomFooter {
...
.bottomFooterLeft {
...
}
}
can be just written:
.bottomFooter {
...
}
.bottomFooterLeft {
...
}
We follow the Duck pattern for Redux to reduce code verbosity. This means putting reducers, selectors and action creators into a single {Topic}Module.js
file. The file is always named with the Module
postfix and should be directly placed into the src/modules/
directory.
TODO
TODO
TODO
TODO
TODO
The theme should be passed as a property. Effectively this means we create a Abstract{Component}
and variations of the component later on e.g. Big{Component}
, Vertical{Component}
, etc. The property theme
is always a import
of a CSS (modules) file.
Ideally such a wrapper component is super simple e.g.
import theme from "VerticalDock.css"
import AbstractDock from "AbstractDock"
function VerticalDock(props) {
return <AbstractDock theme={theme} {...props}></AbstractDock>
}
Copyright 2017
Sebastian Software GmbH
FAQs
Application template for working with EdgeStack
The npm package edgeapp receives a total of 1 weekly downloads. As such, edgeapp popularity was classified as not popular.
We found that edgeapp 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.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.