0
Fork 0
mirror of https://github.com/penpot/penpot-exporter-figma-plugin.git synced 2024-12-23 06:04:01 -05:00
penpot-exporter-figma-plugin/ui-src/translators/translatePathContent.ts

39 lines
903 B
TypeScript
Raw Normal View History

import {
Command,
PathContent,
Segment,
VECTOR_CLOSE_PATH,
VECTOR_CURVE_TO,
VECTOR_LINE_TO,
VECTOR_MOVE_TO
} from '@ui/lib/types/path/PathContent';
export const translatePathContent = (content: PathContent): PathContent =>
content
.map(({ command: stringCommand, ...rest }) => {
const command = translatePathCommand(stringCommand);
if (!command) return null;
return {
command,
...rest
} as Segment;
})
.filter((command): command is Segment => !!command);
const translatePathCommand = (command: Command): Command | undefined => {
switch (command) {
case 'line-to':
return VECTOR_LINE_TO;
case 'close-path':
return VECTOR_CLOSE_PATH;
case 'move-to':
return VECTOR_MOVE_TO;
case 'curve-to':
return VECTOR_CURVE_TO;
}
console.error(`Unsupported svg command type: ${String(command)}`);
};