Home

Awesome

<p align="center"> <figure><picture><source srcset="docs/assets/ngxs-logo_dark_theme.png" media="(prefers-color-scheme: dark)"><img src="docs/assets/ngxs-logo_light_theme.png" alt=""></picture></figure> <br /> NGXS is a state management pattern + library for Angular <br /><br /> <a href="https://travis-ci.org/ngxs/store"> <img src="https://api.travis-ci.org/ngxs/store.svg?branch=master" /> </a> <a href="https://join.slack.com/t/ngxs/shared_invite/zt-by26i24h-2CC5~vqwNCiZa~RRibh60Q"> <img src="https://img.shields.io/badge/slack-join%20us-blue.svg?style=flat&logo=slack" /> </a> <a href="https://badge.fury.io/js/%40ngxs%2Fstore"> <img src="https://badge.fury.io/js/%40ngxs%2Fstore.svg" /> </a> <a href="https://www.npmjs.com/package/@ngxs/store"> <img src="https://img.shields.io/npm/dw/@ngxs/store.svg" /> </a> <br /> <a href="https://npm-stat.com/charts.html?package=%40ngxs%2Fstore&from=2017-01-12"> <img src="https://img.shields.io/npm/dt/@ngxs/store.svg" /> </a> <a href="https://codeclimate.com/github/ngxs/store/maintainability"> <img src="https://api.codeclimate.com/v1/badges/5b43106a1ddff7d76a04/maintainability" /> </a> <a href="https://codeclimate.com/github/ngxs/store/test_coverage"> <img src="https://api.codeclimate.com/v1/badges/5b43106a1ddff7d76a04/test_coverage" /> </a> <a href="https://circleci.com/gh/ngxs/store"> <img src="https://circleci.com/gh/ngxs/store/tree/master.svg?style=svg" /> </a> <a href="https://github.com/ngxs/store/blob/master/LICENSE"> <img src="https://img.shields.io/github/license/Naereen/StrapDown.js.svg" /> </a> </p>

Quick Links


The Goal of NGXS

NGXS tries to make things as simple and accessible as possible. There can be a lot of boilerplate code in state management, thus a main goal of NGXS is to reduce boilerplate allowing you to do more things with less. It is also not necessary to be super familiar with RxJs.

The Goal of NGXS Labs

The idea with this github organisation is to provide a place for the community to create libraries that augment the main framework with functionality that does not need to be integrated directly into the framework and therefore can evolve through their initial iterations of experimentation without affecting the main @ngxs/store library.

Getting Started - Local Development

Installation

To get started locally, follow these instructions:

  1. If you haven't done it already, make a fork of this repo.
  2. Clone to your local computer using git.
  3. Make sure that you have installed NodeJS.
  4. Make sure that you have yarn installed.
  5. Run yarn install.
  6. Run yarn build:packages.

Creating new packages or add feature/fix

if you make changes @ngxs/store
  1. Run development mode yarn build:packages --package store --watch
  2. Run serve integration examples yarn start
  3. ...development...
  4. Run tests yarn test:ci
  5. Create pull request
if you add a new package @ngxs/my-super-plugin
  1. Create a new project folder packages/my-super-plugin
  2. Create template library with ngPackagr
  3. Add your project to package.json
  4. Run development mode yarn build:packages --package my-super-plugin --watch
  5. ...development...
  6. Run build yarn build:packages --package my-super-plugin
  7. Run tests yarn test:ci
  8. Create pull request

NGXS Labs

If you have ideas for creating unique libraries, you can join us. Email us at ngxs.lead@gmail.com. Or you can email us on Twitter or Slack.

Packages

Tools

ProjectPackageVersionLinks
NGXS CLI@ngxs/clilatestREADME
NGXS Schematics@ngxs/schematicslatestREADME

Packages

ProjectPackageVersionLinks
NGXS Store@ngxs/storelatestREADME snapshot
NGXS Logger-plugin@ngxs/logger-pluginlatestREADME snapshot
NGXS Devtools-plugin@ngxs/devtools-pluginlatestREADME snapshot
NGXS WebSocket-plugin@ngxs/websocket-pluginlatestREADME snapshot
NGXS Form-plugin@ngxs/form-pluginlatestREADME snapshot
NGXS Router-plugin@ngxs/router-pluginlatestREADME snapshot
NGXS Storage-plugin@ngxs/storage-pluginlatestREADME snapshot
NGXS HMR@ngxs/hmr-pluginlatestREADME snapshot

NGXS Labs

ProjectPackageVersionLinks
NGXS-labs Data@ngxs-labs/datalatestREADME
NGXS-labs Emitter@ngxs-labs/emitterlatestREADME
NGXS-labs Immer adapter@ngxs-labs/immer-adapterlatestREADME
NGXS-labs Dispatch decorator@ngxs-labs/dispatch-decoratorlatestREADME
NGXS-labs Select snapshot decorator@ngxs-labs/select-snapshotlatestREADME
NGXS-labs Async storage plugin@ngxs-labs/async-storage-pluginlatestREADME
NGXS-labs Entity state@ngxs-labs/entity-statelatestREADME
NGXS-labs Testing tools@ngxs-labs/testinglatestREADME
NGXS-labs Actions Executing@ngxs-labs/actions-executinglatestREADME
NGXS-labs Attach Action@ngxs-labs/attach-actionlatestREADME

Community

ProjectPackageVersionLinks
Reset Pluginngxs-reset-pluginlatestREADME
NGXS-Loading-pluginngxs-loading-pluginlatestREADME
NGXS-History-pluginngxs-history-pluginlatestREADME

Contributors

Thanks to all our contributors!

<a href="https://github.com/ngxs/ngxs/graphs/contributors"><img src="https://opencollective.com/ngxs/contributors.svg?width=890" /></a>