diff options
Diffstat (limited to 'src/data/composite/wiki-properties/fileExtension.js')
| -rw-r--r-- | src/data/composite/wiki-properties/fileExtension.js | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/data/composite/wiki-properties/fileExtension.js b/src/data/composite/wiki-properties/fileExtension.js index c926fa8b..fa933f56 100644 --- a/src/data/composite/wiki-properties/fileExtension.js +++ b/src/data/composite/wiki-properties/fileExtension.js @@ -1,13 +1,26 @@ // A file extension! Or the default, if provided when calling this. +import {input, templateCompositeFrom} from '#composite'; import {isFileExtension} from '#validators'; -// TODO: Not templateCompositeFrom. +export default templateCompositeFrom({ + annotation: 'name', -export default function(defaultFileExtension = null) { - return { - flags: {update: true, expose: true}, - update: {validate: isFileExtension}, - expose: {transform: (value) => value ?? defaultFileExtension}, - }; -} + compose: false, + + inputs: { + default: input({validate: isFileExtension, acceptsNull: true}), + }, + + update: { + validate: isFileExtension, + }, + + steps: () => [ + { + dependencies: [input('default')], + transform: (value, {[input('default')]: defaultValue}) => + value ?? defaultValue, + }, + ], +}); \ No newline at end of file |