@tokens-studio/graph-engine
Version:
An execution engine to handle Token Studios generators and resolvers
35 lines • 1.18 kB
JavaScript
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