mirror of
https://github.com/penpot/penpot-exporter-figma-plugin.git
synced 2024-12-22 21:53:27 -05:00
38 lines
903 B
TypeScript
38 lines
903 B
TypeScript
import {
|
|
Command,
|
|
PathContent,
|
|
Segment,
|
|
VECTOR_CLOSE_PATH,
|
|
VECTOR_CURVE_TO,
|
|
VECTOR_LINE_TO,
|
|
VECTOR_MOVE_TO
|
|
} from '@ui/lib/types/shapes/pathShape';
|
|
|
|
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)}`);
|
|
};
|