figma-transformer
Version:
```js import { processFile } from "figma-transformer";
3 lines (2 loc) • 1.97 kB
JavaScript
;function e(){return(e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}Object.defineProperty(exports,"__esModule",{value:!0});var t=function(e){return n(function(e,t){return e.reduce((function(e,t){return(e[t.type]=e[t.type]||[]).push(t),e}),{})}((t=e,r=new Set,t.filter((function(e){return!r.has(t=e.id)&&r.add(t);var t})))));var t,r},n=function(e){var t={DOCUMENT:"documents",COMPONENT:"components",CANVAS:"pages",LINE:"lines",INSTANCE:"instances",FRAME:"frames",GROUP:"groups",VECTOR:"vectors",BOOLEAN:"booleans",STAR:"stars",ELLIPSE:"ellipses",REGULAR_POLYGON:"regularPolygon",RECTANGLE:"rectangles",TEXT:"texts",SLICE:"slices",STYLE:"styles"};return Object.fromEntries(Object.entries(e).map((function(e){return[t[e[0]],e[1]]})))};function r(n,r,s,i){var o=new Map(Object.entries(r)),c=new Map(Object.entries(s));return function n(r,s){var u=r.id,l=r.styles,a=r.children,d=function(e,t){if(null==e)return{};var n,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(s[n]=e[n]);return s}(r,["id","styles","children"]),f=[];if(null!=l&&(f=Object.entries(l).map((function(t){var n=t[0],s=t[1];return e({id:s},o.get(s),{styles:r[n+"s"],textStyles:r.style,type:"STYLE"})}))),null==a||0===a.length)return[[e({id:u,parentId:s,fileId:i},d)],f];var p=a.reduce((function(e,t){var r=e[0],s=e[1],i=n(t,u),o=i[0],c=i[1];return[[].concat(r,o),[].concat(s,o,c)]}),[[],[]]),O=p[0],v=p[1],E=c.get(u);return[[e({id:u,parentId:s,fileId:i},d,E&&E,{children:O,shortcuts:t(v)})],v]}(n,"0:0")}exports.processFile=function(e,n){var s=e.name,i=e.lastModified,o=e.thumbnailUrl,c=e.version,u=r(e.document,e.styles,e.components,n);return{fileId:n,name:s,lastModified:i,thumbnailUrl:o,version:c,children:u[0][0].children,shortcuts:t(u[1])}},exports.processNodes=r;
//# sourceMappingURL=figma-transformer.cjs.production.min.js.map