💠💗 fliphub-core
the core of fliphub, an extensible hub api for building programs with an event-based core/workflow/context/presets
📦 usage
yarn add fliphub-corenpm i fliphub-core --save
const FlipHubCore =
🏛️ paradigm
❔ when
there are multiple things context, one core, one workflow to connect them, and reusable configurations that optionally can be inherited
❔ why
creating a program which has a core that is as minimal as possible as much functionality is added via presets as possible
in turn, a phenomenal external api is created, since you use it to build your program.
this allows extremely easy maintenance and extension because
💗 core
- extends flipchain/ChainedMapExtendable
- your core program
- one core for every system
- every core has a core config
- high level
💮 workflow
- extends flipchain/ChainedMapExtendable
- connecting the core-hubs-context
- is passed into each lifecycle event to use one object to access the whole program easily
✳️ context
- extends flipchain/ChainedMapExtendable
⚙ configs
- options/config/opts/prefs/settings/args
- 🍉 rehydratable
- ⛓ chainable / fluent
💗⚙ coreConfig
- user settings for your core, inheritable if
inherit
is not false
💮⚙ contextContext
- configs per context, each context can have multiple configs if hubs extend, but it is usually just one
💠 hub
- is essentially middleware, but a shorter name, and can do
- decorators
- middleware
🍰 presets
- combinations of hubs, or/and configurations.
👂 events & 📚 docs
📘 examples
emitting
// emits for corethisworkflowevtname'name-of-event-scoped-to->' // subscribe to a core eventthisworkflowevtname'eh' // emits for a single contextthisworkflowevtname'name-of-event-scoped-to->' // emits for * contextsthisworkflowevtname'name-of-event-scoped-to->'
example (fliphub)
workflowworkflowworkflowworkflowworkflowworkflowworkflow
☕💠 filterhub
- built in filtering for filtering contexts by calling the functions
exports / extending
// export as named, and as abstract for destructuring supportconst log resolve Core AbstractCore Context AbstractContext Workflow AbstractWorkflow Hub AbstractHub Presets AbstractPresets ChainedMap} =
📦 deps
- flipchain for a powerful fluent chainable api
- eventemitter2 in Event for fast event emitting lifecycle
- fliplog + inspector-gadget for debugging
schema
- [core] 1 - 1 [workflow]
- [core] 1 - 1 [config]
- [workflow] 1 - * [hub]
- [workflow] 1 - * [context]
- [context] 1 - * [config]