-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvements to external styles #46
Comments
I could try to make a PR for this when I get a chance, but I wanted to run it by you first to see if you had any thoughts on how something like this would be implemented 😅 |
Coming back to this one after a while. I found a solution here that seems to work for me! It works by making a local mock for export const externalStyles = [
{
name: 'TestPaint',
key: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
type: 'PAINT',
},
{
name: 'TestText',
key: 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
type: 'TEXT',
},
] In a Jest Setup file, you could write something like this: import {externalStyles} from "./__mocks__/external-styles"
import {createFigma} from 'figma-api-stub';
// create the API
const figma = createFigma({});
figma.importStyleByKeyAsync = async function(key: string) {
const styleInfo = externalStyles.find(style => style.key === key)
if (styleInfo) {
switch(styleInfo.type) {
case "PAINT": {
const style = figma.createPaintStyle();
style.name = styleInfo.name;
style.key = styleInfo.key;
return style;
}
case "TEXT": {
const style = figma.createTextStyle();
style.name = styleInfo.name;
style.key = styleInfo.key;
return style;
}
case "EFFECT": {
const style = figma.createEffectStyle();
style.name = styleInfo.name;
style.key = styleInfo.key;
return style;
}
}
}
throw Error('Style not found');
} Then, in your tests, you can run: const style = await figma.createStyleByKeyAsync("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb") Do you think something like this would be helpful to include in the README or any other documentation? |
It would be helpful if we had a better way to simulate the workflow for "importing external styles"
I think to do this, we'd need to support:
figma.importantByKeyAsync
, which uses that key to import a styleNot sure what the best way of representing "external" libraries. Maybe there could be some internal field like
_orig
in nodes? something like:Another option might be to have some sort of configuration?
this might be difficult though, since the creation functions wouldn't have been initialized yet
The text was updated successfully, but these errors were encountered: