0
Fork 0
mirror of https://github.com/penpot/penpot-exporter-figma-plugin.git synced 2025-03-13 08:12:08 -05:00
penpot-exporter-figma-plugin/plugin-src/transformers/transformSceneNode.ts
Alex Sánchez 5d4ace337b
Components Library (#125)
* components library management

* components library management

* fixes

* fixes
2024-05-29 17:33:29 +02:00

45 lines
1.3 KiB
TypeScript

import { PenpotNode } from '@ui/types';
import {
transformBooleanNode,
transformComponentNode,
transformEllipseNode,
transformFrameNode,
transformGroupNode,
transformPathNode,
transformRectangleNode,
transformTextNode,
transformVectorNode
} from '.';
export const transformSceneNode = async (
node: SceneNode,
baseX: number = 0,
baseY: number = 0
): Promise<PenpotNode | undefined> => {
switch (node.type) {
case 'RECTANGLE':
return await transformRectangleNode(node, baseX, baseY);
case 'ELLIPSE':
return await transformEllipseNode(node, baseX, baseY);
case 'SECTION':
case 'FRAME':
return await transformFrameNode(node, baseX, baseY);
case 'GROUP':
return await transformGroupNode(node, baseX, baseY);
case 'TEXT':
return await transformTextNode(node, baseX, baseY);
case 'VECTOR':
return await transformVectorNode(node, baseX, baseY);
case 'STAR':
case 'POLYGON':
case 'LINE':
return await transformPathNode(node, baseX, baseY);
case 'BOOLEAN_OPERATION':
return await transformBooleanNode(node, baseX, baseY);
case 'COMPONENT':
return await transformComponentNode(node, baseX, baseY);
}
console.error(`Unsupported node type: ${node.type}`);
};