JSPM

  • Created
  • Published
  • Downloads 206
  • Score
    100M100P100Q50918F
  • License MIT

A minimalist and well crafted app, content or component is our conviction

Package Exports

  • fractal-core

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fractal-core) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

codecov Build Status Join the chat at https://gitter.im/Fractal-core/Lobby

We believe into more than frameworks, we believe that minimalist and well crafted software will change the world. Lets build your ideas with elegance and simplicity with Fractal.

How it works?

  • It is minimal, core logic are less than 500 lines of code and you can see how it works
  • Excelent Developer Experience, we love to improve your experience
    • We have hot-swaping
    • We have TimeTravel debugging (soon)
  • Excelent error / warn handling:
    • your app will never crash
    • Logs are meaningful
    • You can search for any error in our complete error index, a list of all possible errors can happen (soon).
  • Gives you powerful patterns and composing tools that helps to build small and large apps
  • A clear and flexible architecture that scales
  • Easy integrable and emmbedable by design
  • High code quality, we love that!! and helps you to achive it in your proyect ❤️
  • Its clear and concise, all you application code are pure functions. Your app code has NO side effects
  • We support hot-swaping code in production 🌹 (soon)
  • Your code are flexible, composable and reausable. Modularization as a foundation
  • The state is isolated, this mean is serializable and you can hot-swap code updating the UI without reload the navigator
  • You can serialize the whole side effects, this means you can run fractal in a webworker, in a server via websockets or even in a remote browser via WebRTC :')
  • Lazy loading of components

See the design document. In order to be scalable, Fractal is implemented using Typescript

Getting started

The recomended way is using webpack, please download the Fractal-quickstart repo, this gives you all things ready.

Or in nodejs, browserify, webpack like environments:

npm i --save fractal-core

See our basic tutorial and the examples.

Run the examples

There are many useful examples at examples folder. Be sure that you have installed Node.js, please download Fractal source and extract them.

The examples you can run are:

  • simple
  • compose
  • mori: Fractal using mori.js for persistent data structures (PDS)
  • testForm
  • dynamicList
  • complexList
  • worker: Fractal running in a worker! :D (refactor in progress, broken until next relase)

Open a command window into Fractal folder and run:

npm i
npm run dev ./src/examples/NAME_OF_EXAMPLE

for example:

npm run dev ./src/examples/compose

Run tests

Our rule is to have 100% of coverage, right now all core features are covered

// once
npm test
// dev server
npm run test:watch

Design

Curious about how it works? see Design Documentation before reading source code :)

Development

See our Development Documentation