diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-04-06 15:41:27 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-04-10 16:02:39 -0300 |
commit | f02db61b1da6b6a79a16550d9217cb3e1473ef98 (patch) | |
tree | 5efdd87a32be1a062b74f464215fed208a959061 /src/data | |
parent | a1d87c3744cb938812cecffe87f7274fdec30ce4 (diff) |
data: Artwork.unqualifiedDirectory, Artwork.fileExtension
Just the properties and fields here
Diffstat (limited to 'src/data')
-rw-r--r-- | src/data/things/artwork.js | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js index bf5753b8..2e8936a4 100644 --- a/src/data/things/artwork.js +++ b/src/data/things/artwork.js @@ -1,13 +1,15 @@ import {input} from '#composite'; import Thing from '#thing'; -import {isContributionList, isDate, validateReferenceList} from '#validators'; +import {isContributionList, isDate, isFileExtension, validateReferenceList} + from '#validators'; import {parseContributors, parseDate} from '#yaml'; import {withPropertyFromObject} from '#composite/data'; -import {contentString, simpleString, soupyFind, thing} +import {contentString, directory, simpleString, soupyFind, thing} from '#composite/wiki-properties'; import { + exitWithoutDependency, exposeConstant, exposeDependency, exposeDependencyOrContinue, @@ -31,6 +33,10 @@ export class Artwork extends Thing { }) => ({ // Update & expose + unqualifiedDirectory: directory({ + name: input.value(null), + }), + thing: thing(), label: simpleString(), @@ -46,6 +52,43 @@ export class Artwork extends Thing { exposeDependency({dependency: '#date'}), ], + fileExtensionFromThingProperty: simpleString(), + + fileExtension: [ + { + compute: (continuation) => continuation({ + ['#default']: 'jpg', + }), + }, + + exposeUpdateValueOrContinue({ + validate: input.value(isFileExtension), + }), + + exitWithoutDependency({ + dependency: 'thing', + value: '#default', + }), + + exitWithoutDependency({ + dependency: 'fileExtensionFromThingProperty', + value: '#default', + }), + + withPropertyFromObject({ + object: 'thing', + property: 'fileExtensionFromThingProperty', + }), + + exposeDependencyOrContinue({ + dependency: '#value', + }), + + exposeDependency({ + dependency: '#default', + }), + ], + artistContribsFromThingProperty: simpleString(), artistContribsArtistProperty: simpleString(), @@ -119,6 +162,9 @@ export class Artwork extends Thing { static [Thing.yamlDocumentSpec] = { fields: { + 'Directory': {property: 'unqualifiedDirectory'}, + 'File Extension': {property: 'fileExtension'}, + 'Label': {property: 'label'}, 'Source': {property: 'source'}, |