From 296a4961a951e44ea53509391ad225d1491197f9 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 20 Jan 2024 16:13:36 -0400 Subject: yaml, data: store document specs statically on Thing subclasses --- src/data/things/flash.js | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'src/data/things/flash.js') diff --git a/src/data/things/flash.js b/src/data/things/flash.js index 85fe343e..d7e8bb46 100644 --- a/src/data/things/flash.js +++ b/src/data/things/flash.js @@ -28,6 +28,8 @@ import { import {withFlashAct} from '#composite/things/flash'; +import {parseContributors} from '#yaml'; + import Thing from './thing.js'; export class Flash extends Thing { @@ -133,6 +135,30 @@ export class Flash extends Thing { urls: S.id, color: S.id, }); + + static [Thing.yamlDocumentSpec] = { + fieldTransformations: { + 'Date': (value) => new Date(value), + + 'Contributors': parseContributors, + }, + + propertyFieldMapping: { + name: 'Flash', + directory: 'Directory', + page: 'Page', + color: 'Color', + urls: 'URLs', + + date: 'Date', + coverArtFileExtension: 'Cover Art File Extension', + + featuredTracks: 'Featured Tracks', + contributorContribs: 'Contributors', + }, + + ignoredFields: ['Review Points'], + }; } export class FlashAct extends Thing { @@ -170,5 +196,20 @@ export class FlashAct extends Thing { flashData: wikiData({ class: input.value(Flash), }), - }) + }); + + static [Thing.yamlDocumentSpec] = { + propertyFieldMapping: { + name: 'Act', + directory: 'Directory', + + color: 'Color', + listTerminology: 'List Terminology', + + jump: 'Jump', + jumpColor: 'Jump Color', + }, + + ignoredFields: ['Review Points'], + }; } -- cgit 1.3.0-6-gf8a5