ADDED new keys to commando.impl.utils/*execute-config*. Added hooks keys
:hook-execute-start if not nil, call procedure at the start of commando.core/execute function.:hook-execute-end if not nil, call procedure at the end of commando.core/execute function.ADDED microsecs time measurement. All steps inside the commando.core/execute measure time. Every measurement adding to status-map structure under :stats key.
UPDATED status-map structure. Was added two keys
:uuid autogenerated unique invocation identifier gotted for each commando.core/execute call:stats contains vector of tuples like ["execute", 1085471, "1.085471ms"] where [<step-id>, <microsecs>, <formatted time>]. Counts of steps depended from *execute-config* key :debug-mode.UPDATED sort-commands-by-deps. Straightforward sets joining in base Kahn's algorithm was rewrited with in-degree counting optimization.
UPDATED build-deps-tree. Instead of searching dependency using the list of commandmaps by iterating across the list(O(n^2) in worst case), before starting to build a dependency graph, we quickly building a path-trie structure efficiently. This gave as fast way to resolve point/all-inside dependency only in O(n) time.
FIXED find-commands. StackOverflowException in case of long lists of dependencies in the one level.
REMOVED all *-json-spec builin commands were joined with it origin forms. Like commando-from-json-spec at now are handled by the original commando-from-spec, user just may use :commando/from either "commando-from" key to defining logic. Covering this special "string-based" instructions with tests.
UPDATED documentation about how to use commando DSL with an JSON structure.
ADDED to commando.impl.utils two helper functions: print-stats - to print status-map :stats key into output; print-deep-stats - printing the flamegraph basing on :stats of every internal commando/execution(very helpfull for debugging macroses or query_dsl)
ADDED commando.commands.builtin/commando-macro-spec. The new type of command that allow to group instructions by its functionality and use it as a single command. Added Readme information about the macro.
ADDED documentation for commando.commands.builtin commands. Now each built-in command have explanation of its behavior and examples of usage.
UPDATED upgrade commando.commands.query-dsl. Function resolve-query was removed and replaced by resolve-fn, resolve-instruction, resolve-instruction-qe function called a resolvers. Explanations about the resolvers added to docs/query-dsl.md file.
UPDATED error serialization. commando.impl.utils contains new way to serialize errors for CLJ/CLJS. Now all errors are serialized to map with keys: :type, :class, :message, :data (if exists) and :stacktrace (if exists), :cause (if exists). See commando.impl.utils/serialize-exception for more information. You can expand the error handlers using serialize-exception-fn multimethod (but for CLJ only).
ADDED tests for macro-spec, errors and query-dsl changes.
UPDATED README.md 'Debugging section' was replaced on 'Configuring Execution Behavior' which contains more detailed information how to modify execution behavior.
UPDATED dynamic variable debug-mode replaced by the *execute-config* which is a map that can contain multiple configuration options.
FIXED Removed detach-instruction-commands call from commando.core/build-compiler. In commando.core/build-compiler, the line that detached instruction commands from the registry was removed. This means the compiled registry now includes internal commands (_map, _value, _vector).
UPDATED behavior :validate-params-fn. If the function return anything except true it ment validation failure. If the function return data, they will be attached to returned error inside status map. Added tests.
FIXED align serialization of exeption for CLJ/CLJS
ADDED function normalization for :commando/fn, :commando/apply, :commando/from commands. In CLJ it will acept the symbols,vars,functions,keywords. In CLJS acceptable is only function and keywords.
FIXED QueryDSL. QueryExpression passing by :keys and :strs(for string Instruction keys)
FIXED bug issue with silent status-map after error execution.
Update for cljdocs
First version of commando released publicly
Can you improve this documentation? These fine people already did:
SerhiiRI, kaspazza & Serhii RiznychukEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |