From 4739ac5fae824c6c985fca9ae34f6335f5c9c13e Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 20 Jan 2024 16:32:56 -0400 Subject: data: inputThingClass -> isThingClass, use global Thing symbols --- src/data/composite/wiki-properties/referenceList.js | 20 +++++++++----------- .../composite/wiki-properties/singleReference.js | 21 ++++++++++----------- src/data/composite/wiki-properties/wikiData.js | 20 +++++++++----------- 3 files changed, 28 insertions(+), 33 deletions(-) (limited to 'src/data/composite/wiki-properties') diff --git a/src/data/composite/wiki-properties/referenceList.js b/src/data/composite/wiki-properties/referenceList.js index f5b6c58e..af634a68 100644 --- a/src/data/composite/wiki-properties/referenceList.js +++ b/src/data/composite/wiki-properties/referenceList.js @@ -7,14 +7,10 @@ // import {input, templateCompositeFrom} from '#composite'; -import {validateReferenceList} from '#validators'; +import {isThingClass, validateReferenceList} from '#validators'; import {exposeDependency} from '#composite/control-flow'; -import {inputThingClass, inputWikiData, withResolvedReferenceList} - from '#composite/wiki-data'; - -// TODO: Kludge. -import Thing from '../../things/thing.js'; +import {inputWikiData, withResolvedReferenceList} from '#composite/wiki-data'; export default templateCompositeFrom({ annotation: `referenceList`, @@ -22,18 +18,20 @@ export default templateCompositeFrom({ compose: false, inputs: { - class: inputThingClass(), + class: input.staticValue({validate: isThingClass}), data: inputWikiData({allowMixedTypes: false}), + find: input({type: 'function'}), }, update: ({ [input.staticValue('class')]: thingClass, - }) => { - const {[Thing.referenceType]: referenceType} = thingClass; - return {validate: validateReferenceList(referenceType)}; - }, + }) => ({ + validate: + validateReferenceList( + thingClass[Symbol.for('Thing.referenceType')]), + }), steps: () => [ withResolvedReferenceList({ diff --git a/src/data/composite/wiki-properties/singleReference.js b/src/data/composite/wiki-properties/singleReference.js index 34bd2e6d..db4fc9f9 100644 --- a/src/data/composite/wiki-properties/singleReference.js +++ b/src/data/composite/wiki-properties/singleReference.js @@ -8,14 +8,10 @@ // import {input, templateCompositeFrom} from '#composite'; -import {validateReference} from '#validators'; +import {isThingClass, validateReference} from '#validators'; import {exposeDependency} from '#composite/control-flow'; -import {inputThingClass, inputWikiData, withResolvedReference} - from '#composite/wiki-data'; - -// TODO: Kludge. -import Thing from '../../things/thing.js'; +import {inputWikiData, withResolvedReference} from '#composite/wiki-data'; export default templateCompositeFrom({ annotation: `singleReference`, @@ -23,17 +19,20 @@ export default templateCompositeFrom({ compose: false, inputs: { - class: inputThingClass(), + class: input.staticValue({validate: isThingClass}), + find: input({type: 'function'}), + data: inputWikiData({allowMixedTypes: false}), }, update: ({ [input.staticValue('class')]: thingClass, - }) => { - const {[Thing.referenceType]: referenceType} = thingClass; - return {validate: validateReference(referenceType)}; - }, + }) => ({ + validate: + validateReference( + thingClass[Symbol.for('Thing.referenceType')]), + }), steps: () => [ withResolvedReference({ diff --git a/src/data/composite/wiki-properties/wikiData.js b/src/data/composite/wiki-properties/wikiData.js index 5cea49a0..3bebed33 100644 --- a/src/data/composite/wiki-properties/wikiData.js +++ b/src/data/composite/wiki-properties/wikiData.js @@ -2,12 +2,7 @@ // trackData, etc. import {input, templateCompositeFrom} from '#composite'; -import {validateWikiData} from '#validators'; - -import {inputThingClass} from '#composite/wiki-data'; - -// TODO: Kludge. -import Thing from '../../things/thing.js'; +import {isThingClass, validateWikiData} from '#validators'; export default templateCompositeFrom({ annotation: `wikiData`, @@ -15,15 +10,18 @@ export default templateCompositeFrom({ compose: false, inputs: { - class: inputThingClass(), + class: input.staticValue({validate: isThingClass}), }, update: ({ [input.staticValue('class')]: thingClass, - }) => { - const referenceType = thingClass[Thing.referenceType]; - return {validate: validateWikiData({referenceType})}; - }, + }) => ({ + validate: + validateWikiData({ + referenceType: + thingClass[Symbol.for('Thing.referenceType')], + }), + }), steps: () => [], }); -- cgit 1.3.0-6-gf8a5