/ngxs-store

🚀 NGXS - State Management for Angular

Primary LanguageTypeScriptMIT LicenseMIT


NGXS is a state management pattern + library for Angular



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

Project Package Version Links
NGXS CLI @ngxs/cli latest README
NGXS Schematics @ngxs/schematics latest README

Packages

Project Package Version Links
NGXS Store @ngxs/store latest README snapshot
NGXS Logger-plugin @ngxs/logger-plugin latest README snapshot
NGXS Devtools-plugin @ngxs/devtools-plugin latest README snapshot
NGXS WebSocket-plugin @ngxs/websocket-plugin latest README snapshot
NGXS Form-plugin @ngxs/form-plugin latest README snapshot
NGXS Router-plugin @ngxs/router-plugin latest README snapshot
NGXS Storage-plugin @ngxs/storage-plugin latest README snapshot
NGXS HMR @ngxs/hmr-plugin latest README snapshot

NGXS Labs

Project Package Version Links
NGXS-labs Data @ngxs-labs/data latest README
NGXS-labs Emitter @ngxs-labs/emitter latest README
NGXS-labs Immer adapter @ngxs-labs/immer-adapter latest README
NGXS-labs Dispatch decorator @ngxs-labs/dispatch-decorator latest README
NGXS-labs Select snapshot decorator @ngxs-labs/select-snapshot latest README
NGXS-labs Async storage plugin @ngxs-labs/async-storage-plugin latest README
NGXS-labs Entity state @ngxs-labs/entity-state latest README
NGXS-labs Testing tools @ngxs-labs/testing latest README
NGXS-labs Actions Executing @ngxs-labs/actions-executing latest README
NGXS-labs Attach Action @ngxs-labs/attach-action latest README

Community

Project Package Version Links
Reset Plugin ngxs-reset-plugin latest README
NGXS-Loading-plugin ngxs-loading-plugin latest README
NGXS-History-plugin ngxs-history-plugin latest README

Contributors

Thanks to all our contributors!