diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2025-12-06 13:55:33 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2025-12-06 13:55:33 -0400 |
| commit | 722fe82043e74bdb7c10ed214a9f3006a26ff42b (patch) | |
| tree | 2949fa4b4235acef5cf0b012c6071d7ed0b57bf2 /src/data/composite/wiki-properties/flag.js | |
| parent | c7cc130f97c2a0f390ba0e07e3aa048395636817 (diff) | |
data: make various wiki-properties fn's into compositions
Diffstat (limited to 'src/data/composite/wiki-properties/flag.js')
| -rw-r--r-- | src/data/composite/wiki-properties/flag.js | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/data/composite/wiki-properties/flag.js b/src/data/composite/wiki-properties/flag.js index 076e663f..fa787f92 100644 --- a/src/data/composite/wiki-properties/flag.js +++ b/src/data/composite/wiki-properties/flag.js @@ -1,19 +1,27 @@ // Straightforward flag descriptor for a variety of property purposes. // Provide a default value, true or false! +import {input, templateCompositeFrom} from '#composite'; import {isBoolean} from '#validators'; -// TODO: Not templateCompositeFrom. +export default templateCompositeFrom({ + annotation: 'flag', -// TODO: The description is a lie. This defaults to false. Bad. + compose: false, -export default function(defaultValue = false) { - if (typeof defaultValue !== 'boolean') { - throw new TypeError(`Always set explicit defaults for flags!`); - } + inputs: { + default: input({type: 'boolean'}), + }, - return { - flags: {update: true, expose: true}, - update: {validate: isBoolean, default: defaultValue}, - }; -} + update: { + validate: isBoolean, + }, + + steps: () => [ + { + dependencies: [input('default')], + transform: (value, {[input('default')]: defaultValue}) => + value ?? defaultValue, + }, + ], +}); \ No newline at end of file |