@rooft/widgets
TypeScript icon, indicating that this package has built-in type declarations

0.2.4 • Public • Published

roof widgets

TypeScript React Redux

Libraries

This project uses the following libraries and tools:

Core

Utilities

  • Redux Saga make side effects (i.e. asynchronous things like data fetching and impure things like accessing the browser cache) in React/Redux applications easier and better.
  • TypeStyle make css typesafe

Build System

Dev & Prod Server

Developer Experience

Testing

  • Jest as test runner.
  • TS Jest as Jest preprocessor
  • Enzyme for rendering React Components.
  • Jest Enzyme for asserting React Components.
  • Wallaby intelligent test runner for JavaScript that continuously runs your tests.

Directory Structure

.
├── build                       # Built, ready to serve app.
├── config                      # Root folder for configurations.
│   ├── types                   # Global type definitions, written by us.
│   ├── webpack                 # Webpack configurations.
│   ├── main.js                 # Generic App configurations.
│   └── main.local.js           # Local App configurations.
├── node_modules                # Node Packages.
├── src                         # Source code.
│   ├── app                     # App folder.
│   │ ├── components            # React Components.
│   │ ├── containers            # React Containers.
│   │ ├── helpers               # Helper Functions & Components.
│   │ ├── images                # Images folder.
│   │ ├── redux                 # Redux related code aka data layer of the app.
│   │ │   ├── modules           # Redux modules.   
│   │ │   ├── rootReducer.ts    # Main reducers file to combine them.  
│   │ │   └── configureStore.ts # Redux store, contains global app state.    
│   │ ├── routes                # Routes.
│   │ └── sagas                 # Saga files.
│   ├── vendor                  # Dealing with resources
│   ├── client.tsx              # Entry point for client side rendering.
│   ├── favicon.ico             # Favicon
│   ├── index.html              # html file for client side rendering
│   └── server.tsx              # Entry point for server side rendering.
├── translations                # For json translations.
├── .dockerignore               # Tells docker which files to ignore.
├── .editorconfig               # Configuration for editors.
├── .gitignore                  # Tells git which files to ignore.
├── .travis.yml                 # Travis file.
├── Dockerfile                  # Dockerfile.
├── LICENSE                     # License file
├── package.json                # Package configuration.
├── package-lock.json           # Package lock
├── README.md                   # This file
├── tsconfig.json               # TypeScript transpiler configuration.
├── tslint.json                 # Configures tslint.
└── wallaby.conf.js             # Configuraton for wallaby testing

Installation

You can clone from this repository and use master

$ git clone https://github.com/crazyfactory/ts-react-boilerplate
$ cd ts-react-boilerplate
$ npm install

Usage

All commands defaults to development environment. You can set NODE_ENV to production or use the shortcuts below.

# Running

$ npm start # This starts the app in development mode

# Starting it with the production build
$ NODE_ENV=production npm start # or
$ npm run start:prod

# Building 

$ npm build # This builds the app in development mode

# Commands below builds the production build
$ NODE_ENV=production npm build # or
$ npm run build:prod

# Testing
$ npm test

For Windows users, we recommend using the shortcuts instead of setting environment variables because they work a little different on Windows.

Raven

Create main.local.js in config folder and export an object that has sentry key like so:

module.exports = {
  sentry: {
    dsn: YOUR_DSN,
    release: YOUR_RELEASE_VERSION
  }
  
  // other configs
  ...
}

Credits

This boilerplate is based on Vortigern and is heavily updated. This boilerplate is released under the MIT license.

Package Sidebar

Install

npm i @rooft/widgets

Weekly Downloads

1

Version

0.2.4

License

MIT

Unpacked Size

594 kB

Total Files

329

Last publish

Collaborators

  • cyberhck