diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-10-01 17:01:21 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-10-01 17:04:16 -0300 |
commit | ab7591e45e7e31b4e2c0e2f81e224672145993fa (patch) | |
tree | 11dcccc57e71424baa3b73a3eca58dabc56dca05 /src/data/composite/wiki-properties/directory.js | |
parent | dfcf911501211bbfc64b8ce6a964b70c6406447f (diff) |
data, test: refactor utilities into own file
Primarily for more precies test coverage mapping, but also to make navigation a bit easier and consolidate complex functions with lots of imports out of the same space as other, more simple or otherwise specialized files.
Diffstat (limited to 'src/data/composite/wiki-properties/directory.js')
-rw-r--r-- | src/data/composite/wiki-properties/directory.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/data/composite/wiki-properties/directory.js b/src/data/composite/wiki-properties/directory.js new file mode 100644 index 00000000..0b2181c9 --- /dev/null +++ b/src/data/composite/wiki-properties/directory.js @@ -0,0 +1,23 @@ +// The all-encompassing "directory" property, used as the unique identifier for +// almost any data object. Also corresponds to a part of the URL which pages of +// such objects are visited at. + +import {isDirectory} from '#validators'; +import {getKebabCase} from '#wiki-data'; + +// TODO: Not templateCompositeFrom. + +export default function() { + return { + flags: {update: true, expose: true}, + update: {validate: isDirectory}, + expose: { + dependencies: ['name'], + transform(directory, {name}) { + if (directory === null && name === null) return null; + else if (directory === null) return getKebabCase(name); + else return directory; + }, + }, + }; +} |