Skip to content

Commit

Permalink
style: reformat the style parser
Browse files Browse the repository at this point in the history
  • Loading branch information
manekinekko committed Mar 5, 2019
1 parent 77b36a0 commit ee5a619
Showing 1 changed file with 91 additions and 70 deletions.
161 changes: 91 additions & 70 deletions packages/sketchapp-parser/src/lib/sketch-style-parser.service.ts
Expand Up @@ -35,6 +35,7 @@ export enum SupportScore {
})
export class SketchStyleParserService {
constructor(private binaryPlistParser: BinaryPropertyListParserService) {}

public visit(sketch: SketchData) {
const supp = this.checkSupport(sketch);

Expand Down Expand Up @@ -65,10 +66,12 @@ export class SketchStyleParserService {
}

autoFixPagePosition(page: SketchMSPage) {
if (page.frame.x !== 0 ||
page.frame.y !== 0 ||
(page.layers &&
(page.layers[0].frame.x !== 0 || page.layers[0].frame.y !== 0))) {
if (
page.frame.x !== 0 ||
page.frame.y !== 0 ||
(page.layers &&
(page.layers[0].frame.x !== 0 || page.layers[0].frame.y !== 0))
) {
page.frame.x = 0;
page.frame.y = 0;

Expand All @@ -90,7 +93,10 @@ export class SketchStyleParserService {
if (current.hasOwnProperty(property)) {
if (typeof current[property] === 'object') {
// visit child
if (current[property].frame && current[property].frame._class === 'rect') {
if (
current[property].frame &&
current[property].frame._class === 'rect'
) {
this.visitObject(current[property], current, current[property]);
} else {
this.visitObject(current[property], current, root);
Expand Down Expand Up @@ -118,7 +124,9 @@ export class SketchStyleParserService {
parseAttributeString(node: SketchMSLayer) {
const obj = node.attributedString;
if (obj && obj.hasOwnProperty('archivedAttributedString')) {
const archive = this.binaryPlistParser.parse64Content(obj.archivedAttributedString._archive);
const archive = this.binaryPlistParser.parse64Content(
obj.archivedAttributedString._archive
);
if (archive) {
switch (archive.$key) {
case 'ascii':
Expand All @@ -136,15 +144,17 @@ export class SketchStyleParserService {
*/
parseGroup(layer: SketchMSLayer) {
return {
style: (layer as SketchMSLayer).frame ? {
display: 'block',
position: 'absolute',
left: `${layer.frame.x}px`,
top: `${layer.frame.y}px`,
width: `${layer.frame.width}px`,
height: `${layer.frame.height}px`,
visibility: layer.isVisible ? 'visible' : 'hidden'
} : {}
style: (layer as SketchMSLayer).frame
? {
display: 'block',
position: 'absolute',
left: `${layer.frame.x}px`,
top: `${layer.frame.y}px`,
width: `${layer.frame.width}px`,
height: `${layer.frame.height}px`,
visibility: layer.isVisible ? 'visible' : 'hidden'
}
: {}
};
}

Expand All @@ -153,47 +163,53 @@ export class SketchStyleParserService {
*/
parseObject(layer: any) {
switch (layer._class) {
case 'symbolMaster':
return {
style: {
...this.transformSymbolMaster(layer)
}
};

case 'style':
return {
style: {
...this.transformBlur(layer),
...this.transformBorders(layer),
...this.transformFills(layer),
...this.transformShadows(layer)
}
};

case 'text':
return {
text: this.transformTextContent(layer),
style: {
...this.transformTextColor(layer),
...this.transformParagraphStyle(layer),
...this.transformTextFont(layer)
}
};

default:
return {
style: {
...(layer as SketchMSPage).rotation ? {
transform: `rotate(${layer.rotation}deg)`
} : {},
...(layer as SketchMSPage).fixedRadius ? {
'border-radius': `${layer.fixedRadius}px`
} : {},
...(layer as SketchMSGraphicsContextSettings).opacity ? {
opacity: `${layer.opacity}`
} : {}
}
};
case 'symbolMaster':
return {
style: {
...this.transformSymbolMaster(layer)
}
};

case 'style':
return {
style: {
...this.transformBlur(layer),
...this.transformBorders(layer),
...this.transformFills(layer),
...this.transformShadows(layer)
}
};

case 'text':
return {
text: this.transformTextContent(layer),
style: {
...this.transformTextColor(layer),
...this.transformParagraphStyle(layer),
...this.transformTextFont(layer)
}
};

default:
return {
style: {
...((layer as SketchMSPage).rotation
? {
transform: `rotate(${layer.rotation}deg)`
}
: {}),
...((layer as SketchMSPage).fixedRadius
? {
'border-radius': `${layer.fixedRadius}px`
}
: {}),
...((layer as SketchMSGraphicsContextSettings).opacity
? {
opacity: `${layer.opacity}`
}
: {})
}
};
}
}

Expand All @@ -202,7 +218,7 @@ export class SketchStyleParserService {
*/
polyfill(layer: any) {
return {
text: layer.name,
text: layer.name
};
}

Expand All @@ -218,7 +234,8 @@ export class SketchStyleParserService {
}

transformTextFont(node: SketchMSLayer) {
const obj = node.style.textStyle.encodedAttributes.MSAttributedStringFontAttribute;
const obj =
node.style.textStyle.encodedAttributes.MSAttributedStringFontAttribute;
if (obj.hasOwnProperty('_class') && obj._class === 'fontDescriptor') {
return {
'font-family': `'${obj.attributes.name}', 'Roboto', 'sans-serif'`,
Expand Down Expand Up @@ -248,9 +265,7 @@ export class SketchStyleParserService {
const obj = node.style.textStyle.encodedAttributes;
if (obj.hasOwnProperty('MSAttributedStringColorAttribute')) {
return {
color: this.parseColors(
obj.MSAttributedStringColorAttribute
).rgba
color: this.parseColors(obj.MSAttributedStringColorAttribute).rgba
};
} else if (obj.hasOwnProperty('NSColor')) {
// TODO: Handle legacy
Expand All @@ -265,9 +280,11 @@ export class SketchStyleParserService {

transformBlur(node: SketchMSStyle) {
const obj = node.blur;
return obj && obj.radius > 0 ? {
filter: `blur(${obj.radius}px);`
} : {};
return obj && obj.radius > 0
? {
filter: `blur(${obj.radius}px);`
}
: {};
}

transformBorders(node: SketchMSStyle) {
Expand All @@ -288,9 +305,11 @@ export class SketchStyleParserService {
return acc;
}, []);

return bordersStyles.length > 0 ? {
'box-shadow': bordersStyles.join(',')
} : {};
return bordersStyles.length > 0
? {
'box-shadow': bordersStyles.join(',')
}
: {};
}

transformFills(node: SketchMSStyle) {
Expand Down Expand Up @@ -354,9 +373,11 @@ export class SketchStyleParserService {
});
}

return shadowsStyles.length > 0 ? {
'box-shadow': shadowsStyles.join(',')
} : {};
return shadowsStyles.length > 0
? {
'box-shadow': shadowsStyles.join(',')
}
: {};
}

parseColors(color: SketchMSColor) {
Expand Down

0 comments on commit ee5a619

Please sign in to comment.