UNPKG

@tokens-studio/graph-engine

Version:

An execution engine to handle Token Studios generators and resolvers

35 lines 1.18 kB
import { ColorSchema, StringSchema } from '../../schemas/index.js'; import { ColorSpaces } from './lib/spaces.js'; import { Node } from '../../programmatic/node.js'; import { toColor, toColorObject } from './lib/utils.js'; export default class NodeDefinition extends Node { static title = 'Convert Color'; static type = 'studio.tokens.color.convert'; static description = 'Transforms a color from one space to another'; constructor(props) { super(props); this.addInput('color', { type: ColorSchema }); this.addInput('space', { type: { ...StringSchema, enum: ColorSpaces, default: 'srgb' } }); this.addOutput('color', { type: ColorSchema }); } execute() { const { color, space } = this.getAllInputs(); if (!ColorSpaces.includes(space)) { throw new Error('Invalid color space ' + space); } const colObj = toColor(color); //Convert back to coords this.outputs.color.set(toColorObject(colObj.to(space))); } } //# sourceMappingURL=convert.js.map