cleanup + tweaking docs...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2021-06-02 11:52:42 +03:00
parent a37e9f8cb0
commit 8a44d91c83
2 changed files with 1192 additions and 1183 deletions

View File

@ -1,8 +1,8 @@
# Features # Features
Features is a module that helps build _features_ out of sets of actions `features.js` organizes sets of [actions](https://github.com/flynx/actions.js)
apply them to objects and manage sets of features via external criteria or _objects_ into features, apply them to objects, manage sets of features via
and feature-to-feature dependencies. inter-feature dependencies and external criteria.
### The main entities: ### The main entities:
@ -31,57 +31,57 @@ XXX
**Feature** **Feature**
```javascript ```javascript
feature_set.Feature({ feature_set.Feature({
tag: 'minimal_feature_example', tag: 'minimal_feature_example',
}) })
feature_set.Feature({ feature_set.Feature({
// documentation (optional)... // documentation (optional)...
title: 'Example Feature', title: 'Example Feature',
doc: 'A feature to demo the base API...', doc: 'A feature to demo the base API...',
// feature unique identifier (required)... // feature unique identifier (required)...
tag: 'feature_example', tag: 'feature_example',
// applicability test (optional) // applicability test (optional)
isApplicable: function(){ /* ... */ }, isApplicable: function(){ /* ... */ },
// feature load priority (optional) // feature load priority (optional)
priority: 'medium', priority: 'medium',
// list of feature tags to load if available (optional) // list of feature tags to load if available (optional)
suggested: [], suggested: [],
// list of feature tags required to load before this feature (optional) // list of feature tags required to load before this feature (optional)
depends: [], depends: [],
// Exclusive tag (optional) // Exclusive tag (optional)
// NOTE: a feature can be a member of more than one exclusive group, // NOTE: a feature can be a member of more than one exclusive group,
// to list more than one use an Array... // to list more than one use an Array...
exclusive: 'Example', exclusive: 'Example',
// feature configuration (optional) // feature configuration (optional)
// NOTE: if not present here this will be taken from .actions.config // NOTE: if not present here this will be taken from .actions.config
// NOTE: this takes priority over .actions.config, it is not recommended // NOTE: this takes priority over .actions.config, it is not recommended
// to define both. // to define both.
config: {
option: 'value',
// ...
},
// actions (optional)
actions: Actions({
// alternative configuration location...
config: { config: {
// ... option: 'value',
} // ...
// ... },
})
// action handlers (optional) // actions (optional)
handlers: [ actions: Actions({
['action.pre', function(){ /* ... */ }], // alternative configuration location...
// ... config: {
] // ...
},
// ...
}),
// action handlers (optional)
handlers: [
['action.pre', function(){ /* ... */ }],
// ...
],
}) })
``` ```
@ -93,9 +93,9 @@ XXX
```javascript ```javascript
// meta-feature... // meta-feature...
feature_set.Feature('meta-feature-tag', [ feature_set.Feature('meta-feature-tag', [
'suggested-feature-tag', 'suggested-feature-tag',
'other-suggested-feature-tag', 'other-suggested-feature-tag',
// ... // ...
]) ])
``` ```

File diff suppressed because it is too large Load Diff