From fd102ee597e2ad2ba8f0950ce1a16fd34029963d Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Mon, 18 Sep 2023 13:26:18 -0300 Subject: data: MORE composite wip --- src/data/things/composite.js | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'src/data/things/composite.js') diff --git a/src/data/things/composite.js b/src/data/things/composite.js index f2ca2c7c..c33fc03c 100644 --- a/src/data/things/composite.js +++ b/src/data/things/composite.js @@ -1349,7 +1349,7 @@ export function exposeConstant({ // for values like zero and the empty string! // -const availabilityCheckMode = { +const availabilityCheckModeInput = { validate: oneOf('null', 'empty', 'falsy'), defaultValue: 'null', }; @@ -1359,7 +1359,7 @@ export const withResultOfAvailabilityCheck = templateCompositeFrom({ inputs: { from: input(), - mode: input(availabilityCheckMode), + mode: input(availabilityCheckModeInput), }, outputs: { @@ -1403,7 +1403,7 @@ export const exposeDependencyOrContinue = templateCompositeFrom({ inputs: { dependency: input(), - mode: input(availabilityCheckMode), + mode: input(availabilityCheckModeInput), }, steps: () => [ @@ -1432,7 +1432,7 @@ export const exposeUpdateValueOrContinue = templateCompositeFrom({ annotation: `exposeUpdateValueOrContinue`, inputs: { - mode: input(availabilityCheckMode), + mode: input(availabilityCheckModeInput), }, steps: () => [ @@ -1450,7 +1450,7 @@ export const exitWithoutDependency = templateCompositeFrom({ inputs: { dependency: input(), - mode: input(availabilityCheckMode), + mode: input(availabilityCheckModeInput), value: input({null: true}), }, @@ -1479,7 +1479,7 @@ export const exitWithoutUpdateValue = templateCompositeFrom({ annotation: `exitWithoutUpdateValue`, inputs: { - mode: input(availabilityCheckMode), + mode: input(availabilityCheckModeInput), value: input({defaultValue: null}), }, @@ -1498,7 +1498,7 @@ export const raiseOutputWithoutDependency = templateCompositeFrom({ inputs: { dependency: input(), - mode: input(availabilityCheckMode), + mode: input(availabilityCheckModeInput), output: input({defaultValue: {}}), }, @@ -1527,7 +1527,7 @@ export const raiseOutputWithoutUpdateValue = templateCompositeFrom({ annotation: `raiseOutputWithoutUpdateValue`, inputs: { - mode: input(availabilityCheckMode), + mode: input(availabilityCheckModeInput), output: input({defaultValue: {}}), }, @@ -1562,19 +1562,21 @@ export const withPropertyFromObject = templateCompositeFrom({ }, outputs: { - into: { - dependencies: [ - input.staticDependency('object'), - input.staticValue('property'), - ], - - default: ({ - [input.staticDependency('object')]: object, - [input.staticValue('property')]: property, - }) => - (object.startsWith('#') - ? `${object}.${property}` - : `#${object}.${property}`), + dependencies: [ + input.staticDependency('object'), + input.staticValue('property'), + ], + + compute: ({ + [input.staticDependency('object')]: object, + [input.staticValue('property')]: property, + }) => { + return ( + (object && property + ? (object.startsWith('#') + ? `${object}.${property}` + : `#${object}.${property}`) + : '#value')); }, }, -- cgit 1.3.0-6-gf8a5