cap

capacitor

An implementation of facebook's flux architecture, great Scott!

Showing:

Popularity

Downloads/wk

462

GitHub Stars

8

Maintenance

Last Commit

6yrs ago

Contributors

4

Package

Dependencies

2

Size (min+gzip)

31.4KB

License

Type Definitions

Tree-Shakeable

No?

Categories

Reviews

Average Rating

5.0/51
Read All Reviews
bazuka5801

Top Feedback

1Great Documentation
1Easy to Use
1Performant
1Highly Customizable
1Bleeding Edge
1Responsive Maintainers

Readme

Introduction

WARNING: Still being documented.

Capacitor.js is a well tested implementation of facebook's flux architecture written in CoffeeScript, which aims to do the following things:

  • Be as close to the official definition of flux as possible, only making optimizations/features where there's too much boilerplate.
  • Be easy to use, even for beginners, which means it should be easy to do it right, hard to do it wrong.
    • An example is the ActionCreators, which is the only way to dispatch an action without going out of your way.
  • Have all stores be comprised of immutable data with immutable.js
  • Handle relationships between stores with ease, without the boilerplate
  • Be easy to extend, where extensions make sense.
  • Scale well when used in teams by heavily encouraging thought before code, and try to minize how many ways you can solve a single problem.
  • Feel great to use in CoffeeScript
  • Feel just as great to use in TypeScript/ES6
  • Support all the loaders, AMD/CommonJS/ES6/Globals whatever you need.

Features

  • The dispatcher is an implementation detail, you never interact with it manually.
  • Actions are class instances, no giant switch statements needed.
  • Stores listen for actions by using the action classes.
  • Four types of stores to model your data:
    • Store (generic state)
    • EntityStore (anything with an id)
    • ListStore (a list of entities)
    • IndexedListStore (a map from an entity id to a list of entity ids)
  • With these four stores you can model the following:
    • one to one (Entity/Store -> Entity)
    • one to many (Entity/Store -> List -> Entity)
    • many to many (Entity/Store -> IndexedList -> Entity)
  • ActionCreators dispatch actions.
  • Batch change events on stores within a dispatch iteration to simplify store interactions.

Features we'd like to add

  • Webpack Hot Loader
  • Chrome Devtools Extension(s)
  • State snapshots
  • Replayable action logs

Dependencies

  • lodash
  • immutable-js

NOTE: Upgrading to capacitor > 0.2.x from capacitor < 0.2.x

Stores now use immutable js for the data. The API is still the same but the data returned is now instances of immutable's classes. See https://github.com/facebook/immutable-js for usage. Unfortunately this completely breaks backwards compatibility.

Rate & Review

Great Documentation1
Easy to Use1
Performant1
Highly Customizable1
Bleeding Edge1
Responsive Maintainers1
Poor Documentation0
Hard to Use0
Slow1
Buggy0
Abandoned0
Unwelcoming Community0
100
Maxim BazuevMoscow5 Ratings15 Reviews
(Dance, Code)settings => [Game(settings)] My studio: @BazuMax TG: bazuka5801
August 19, 2020
Bleeding Edge
Slow
Great Documentation
Easy to Use
Highly Customizable
Performant
Responsive Maintainers

Slow builds (than cordova), but customization and plugins easy to use, write, support git with native projects. My love for the long time :) (built-in support cordova plugins)


0

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial