diff options
Diffstat (limited to 'src/data/composite/wiki-properties/name.js')
| -rw-r--r-- | src/data/composite/wiki-properties/name.js | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/data/composite/wiki-properties/name.js b/src/data/composite/wiki-properties/name.js index 5146488b..e4a28860 100644 --- a/src/data/composite/wiki-properties/name.js +++ b/src/data/composite/wiki-properties/name.js @@ -1,11 +1,27 @@ // A wiki data object's name! Its directory (i.e. unique identifier) will be // computed based on this value if not otherwise specified. +import {input, templateCompositeFrom} from '#composite'; import {isName} from '#validators'; -export default function(defaultName) { - return { - flags: {update: true, expose: true}, - update: {validate: isName, default: defaultName}, - }; -} +export default templateCompositeFrom({ + annotation: 'name', + + compose: false, + + inputs: { + default: input({type: 'string'}), + }, + + update: { + validate: isName, + }, + + steps: () => [ + { + dependencies: [input('default')], + transform: (value, {[input('default')]: defaultValue}) => + value ?? defaultValue, + }, + ], +}); \ No newline at end of file |