Liking cljdoc? Tell your friends :D

com.fulcrologic.fulcro.algorithms.application-helpers

This namespace helps with access to details of the application, but with no dependency on the application namespace. This prevents circular references since many things need to work with applications, but are themselves used in the construction of an application.

This namespace helps with access to details of the application, but with no dependency on the application namespace.
This prevents circular references since many things need to work with applications, but are themselves used in the
construction of an application.
raw docstring

com.fulcrologic.fulcro.algorithms.denormalize

The algorithm and support functions for converting a normalized Fulcro database to a tree of denormalized props.

The algorithm and support functions for converting a normalized Fulcro database to a tree of denormalized props.
raw docstring

com.fulcrologic.fulcro.algorithms.form-state

Functions that assist with supporting form editing/checking/diffing in Fulcro UI. These functions work by making a pristine copy of your entity, and tracking what fields have been touched. You are responsible for triggering these various states by marking fields as complete (mark-complete!), telling it to copy the data to/from pristine (e.g. entity->pristine), and by asking for out-of-date data for the current vs. pristine copy (dirty-fields).

There is also support for detecting which fields have been marked complete and are dirty.

Validation can be done via Clojure spec, or by defining your own field validation functions via make-validator. This general-purpose validation factor function can easily be used to create more automated validation factories that can be more configuration-driven, but this is left as an exercise for the community.

See the Developer's Guide for more information.

Functions that assist with supporting form editing/checking/diffing in Fulcro UI.  These functions work
by making a pristine copy of your entity, and tracking what fields have been touched.  You are responsible
for triggering these various states by marking fields as complete (`mark-complete!`), telling it to
copy the data to/from pristine (e.g. `entity->pristine`), and by asking for out-of-date data for the current
vs. pristine copy (`dirty-fields`).

There is also support for detecting which fields have been marked complete and are dirty.

Validation can be done via Clojure spec, or by defining your own field validation functions via
`make-validator`. This general-purpose validation factor function can easily be used to create more
automated validation factories that can be more configuration-driven, but this is left as an exercise for the community.

See the Developer's Guide for more information.
raw docstring

com.fulcrologic.fulcro.algorithms.indexing

Functions that implement the query and component indexing.

Functions that implement the query and component indexing.
raw docstring

com.fulcrologic.fulcro.algorithms.misc

Some misc. utility functions. These are primarily meant for internal use, and are subject to relocation in the future.

Some misc. utility functions. These are primarily meant for internal use, and are subject to relocation in the
future.
raw docstring

com.fulcrologic.fulcro.algorithms.normalize

Functions for dealing with normalizing Fulcro databases. In particular tree->db.

Functions for dealing with normalizing Fulcro databases. In particular `tree->db`.
raw docstring

com.fulcrologic.fulcro.algorithms.scheduling

Algorithms for delaying some action by a particular amount of time.

Algorithms for delaying some action by a particular amount of time.
raw docstring

com.fulcrologic.fulcro.algorithms.tempid

Functions for making and consuming Fulcro temporary IDs.

Functions for making and consuming Fulcro temporary IDs.
raw docstring

com.fulcrologic.fulcro.algorithms.timbre-support

Logging helpers to make js console logging more readable. The recommended use of these functions is as follows:

  • Make sure you're using Binaryage devtools (on classpath. shadow-cljs will auto-add it when detected).
  • IMPORTANT: Enable custom formatters in console settings for Chrome. This will print cljs data as cljs (instead of raw js).
  • Make a development preload cljs file, and tell shadow-cljs to preload it.
  • In the preload file, add something like this:
(ns app.development-preload
  (:require
    [taoensso.timbre :as log]
    [com.fulcrologic.fulcro.algorithms.timbre-support :refer [console-appender prefix-output-fn]))

(log/set-level! :debug)
(log/merge-config! {:output-fn prefix-output-fn
                    :appenders {:console (console-appender)}})

and you'll get much more readable error messages in the js console.

NOTE: when logging errors, be sure to log the exception first. This is documented in timbre, but easy to miss:

(try
  ...
  (catch :default ex
    (log/error ex ...))

See the development_preload.cljs and shadow-cljs.edn files in the latest Fulcro 3 template for an example.

Logging helpers to make js console logging more readable. The recommended use of these functions is as follows:

- Make sure you're using Binaryage devtools (on classpath. shadow-cljs will auto-add it when detected).
- IMPORTANT: Enable custom formatters in console settings for Chrome. This will print cljs data as cljs (instead of raw js).
- Make a development preload cljs file, and tell shadow-cljs to preload it.
- In the preload file, add something like this:

```
(ns app.development-preload
  (:require
    [taoensso.timbre :as log]
    [com.fulcrologic.fulcro.algorithms.timbre-support :refer [console-appender prefix-output-fn]))

(log/set-level! :debug)
(log/merge-config! {:output-fn prefix-output-fn
                    :appenders {:console (console-appender)}})
```

and you'll get much more readable error messages in the js console.

NOTE: when logging errors, be sure to log the exception first. This is documented in timbre, but easy to miss:

```
(try
  ...
  (catch :default ex
    (log/error ex ...))
```

See the development_preload.cljs and shadow-cljs.edn files in the latest Fulcro 3 template for an example.
raw docstring

com.fulcrologic.fulcro.algorithms.transit

Transit functions for the on-the-wire EDN communication to common remotes. Includes support for Fulcro tempids, and can be extended to support additional application-specific data types.

Transit functions for the on-the-wire EDN communication to common remotes. Includes support for Fulcro tempids,
and can be extended to support additional application-specific data types.
raw docstring

com.fulcrologic.fulcro.algorithms.tx-processing-debug

Helper functions for debugging tx processing. Uses pprint, which adds a lot to build size, so it is in a separate ns to keep it out of prod builds.

Helper functions for debugging tx processing.  Uses pprint, which adds
a lot to build size, so it is in a separate ns to keep it out of prod builds.
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close