plugin-typings
plugin-typings copied to clipboard
[Request] Add MinimalEffectsMixin interface for consistency
This is a feature request for adding MinimalEffectsMixin for being consistent with the rest, plus adding the ability to extract nodes that support effects.
Before:
interface BlendMixin extends MinimalBlendMixin {
isMask: boolean
maskType: MaskType
effects: ReadonlyArray<Effect>
effectStyleId: string
setEffectStyleIdAsync(styleId: string): Promise<void>
}
After:
interface MinimalEffectsMixin {
effects: ReadonlyArray<Effect>
effectStyleId: string
setEffectStyleIdAsync(styleId: string): Promise<void>
}
interface BlendMixin extends MinimalBlendMixin, MinimalEffectsMixin {
isMask: boolean
maskType: MaskType
}
This will allow doing the following:
type NodeWithEffects = Extract<SceneNode, MinimalBlendMixin>
// Output: type NodeWithEffects = FrameNode | GroupNode | ComponentSetNode | ComponentNode | InstanceNode | BooleanOperationNode | VectorNode | StarNode | LineNode | EllipseNode | PolygonNode | RectangleNode | TextNode | StampNode | HighlightNode | WashiTapeNode
https://github.com/figma/plugin-typings/blob/67cdb4a189db19caa1d4e5f87971e7a3931e273b/plugin-api.d.ts#L1626C1-L1627C24