Skip to content
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

feat: support async for all hooks #1106

Merged
merged 1 commit into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .changeset/pretty-clocks-guess.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
'style-dictionary': major
---

BREAKING: All of our hooks, parsers, preprocessors, transforms, formats, actions, fileHeaders and filters, support async functions as well now. This means that the formatHelpers -> fileHeader helper method is now asynchronous, to support async fileheader functions.

```js
import StyleDictionary from 'style-dictionary';

const { fileHeader } = StyleDictionary.formatHelpers;

StyleDictionary.registerFormat({
name: 'custom/css',
// this can be async now, usually it is if you use fileHeader format helper, since that now always returns a Promise
formatter: async function ({ dictionary, file, options }) {
const { outputReferences } = options;
return (
// this helper is now async! because the user-passed file.fileHeader might be an async function
(await fileHeader({ file })) +
':root {\n' +
formattedVariables({ format: 'css', dictionary, outputReferences }) +
'\n}\n'
);
},
});
```
12 changes: 6 additions & 6 deletions __integration__/__snapshots__/android.test.snap.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* @web/test-runner snapshot v1 */
export const snapshots = {};

snapshots["android/resources should match snapshot"] =
snapshots["integration android android/resources should match snapshot"] =
`<?xml version="1.0" encoding="UTF-8"?>
<!--
Expand Down Expand Up @@ -172,9 +172,9 @@ snapshots["android/resources should match snapshot"] =
<dimen name="size_padding_large">16.00dp</dimen>
<dimen name="size_padding_xl">16.00dp</dimen>
</resources>`;
/* end snapshot android/resources should match snapshot */
/* end snapshot integration android android/resources should match snapshot */

snapshots["android/resources with references should match snapshot"] =
snapshots["integration android android/resources with references should match snapshot"] =
`<?xml version="1.0" encoding="UTF-8"?>
<!--
Expand Down Expand Up @@ -345,9 +345,9 @@ snapshots["android/resources with references should match snapshot"] =
<dimen name="size_padding_large">16.00dp</dimen>
<dimen name="size_padding_xl">16.00dp</dimen>
</resources>`;
/* end snapshot android/resources with references should match snapshot */
/* end snapshot integration android android/resources with references should match snapshot */

snapshots["android/resources with filter should match snapshot"] =
snapshots["integration android android/resources with filter should match snapshot"] =
`<?xml version="1.0" encoding="UTF-8"?>
<!--
Expand Down Expand Up @@ -509,5 +509,5 @@ snapshots["android/resources with filter should match snapshot"] =
<color name="color_font_warning">#ff601700</color>
<color name="color_font_success">#ff08422f</color>
</resources>`;
/* end snapshot android/resources with filter should match snapshot */
/* end snapshot integration android android/resources with filter should match snapshot */

176 changes: 176 additions & 0 deletions __integration__/__snapshots__/async.test.snap.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
/* @web/test-runner snapshot v1 */
export const snapshots = {};

snapshots["integration async hooks should match snapshot"] =
`/**
* foo
* bar
*/
:root {
--color-background-primary: #ffffff;
--color-background-secondary: #f3f4f4;
--color-background-tertiary: #dee1e1;
--color-background-danger: #ffeae9;
--color-background-warning: #ffede3;
--color-background-success: #ebf9eb;
--color-background-disabled: #dee1e1;
--color-border-primary: #c8cccc;
--color-brand-primary: #0b8599;
--color-brand-secondary: #6f5ed3;
--color-core-green-0: #ebf9eb;
--color-core-green-100: #d7f4d7;
--color-core-green-200: #c2f2bd;
--color-core-green-300: #98e58e;
--color-core-green-400: #75dd66;
--color-core-green-500: #59cb59;
--color-core-green-600: #2bb656;
--color-core-green-700: #0ca750;
--color-core-green-800: #008b46;
--color-core-green-900: #006b40;
--color-core-green-1000: #08422f;
--color-core-green-1100: #002b20;
--color-core-teal-0: #e5f9f5;
--color-core-teal-100: #cdf7ef;
--color-core-teal-200: #b3f2e6;
--color-core-teal-300: #7dead5;
--color-core-teal-400: #24e0c5;
--color-core-teal-500: #08c4b2;
--color-core-teal-600: #00a99c;
--color-core-teal-700: #0b968f;
--color-core-teal-800: #067c7c;
--color-core-teal-900: #026661;
--color-core-teal-1000: #083f3f;
--color-core-teal-1100: #002528;
--color-core-aqua-0: #d9fcfb;
--color-core-aqua-100: #c5f9f9;
--color-core-aqua-200: #a5f2f2;
--color-core-aqua-300: #76e5e2;
--color-core-aqua-400: #33d6e2;
--color-core-aqua-500: #17b8ce;
--color-core-aqua-600: #0797ae;
--color-core-aqua-700: #0b8599;
--color-core-aqua-800: #0f6e84;
--color-core-aqua-900: #035e73;
--color-core-aqua-1000: #083d4f;
--color-core-aqua-1100: #002838;
--color-core-blue-0: #e9f8ff;
--color-core-blue-100: #dcf2ff;
--color-core-blue-200: #c7e4f9;
--color-core-blue-300: #a1d2f8;
--color-core-blue-400: #56adf5;
--color-core-blue-500: #3896e3;
--color-core-blue-600: #2b87d3;
--color-core-blue-700: #2079c3;
--color-core-blue-800: #116daa;
--color-core-blue-900: #0c5689;
--color-core-blue-1000: #0a3960;
--color-core-blue-1100: #002138;
--color-core-purple-0: #f2f2f9;
--color-core-purple-100: #eaeaf9;
--color-core-purple-200: #d8d7f9;
--color-core-purple-300: #c1c1f7;
--color-core-purple-400: #a193f2;
--color-core-purple-500: #9180f4;
--color-core-purple-600: #816fea;
--color-core-purple-700: #6f5ed3;
--color-core-purple-800: #5e4eba;
--color-core-purple-900: #483a9c;
--color-core-purple-1000: #2d246b;
--color-core-purple-1100: #1d1d38;
--color-core-magenta-0: #fef0ff;
--color-core-magenta-100: #f9e3fc;
--color-core-magenta-200: #f4c4f7;
--color-core-magenta-300: #edadf2;
--color-core-magenta-400: #f282f5;
--color-core-magenta-500: #db61db;
--color-core-magenta-600: #c44eb9;
--color-core-magenta-700: #ac44a8;
--color-core-magenta-800: #8f3896;
--color-core-magenta-900: #6c2277;
--color-core-magenta-1000: #451551;
--color-core-magenta-1100: #29192d;
--color-core-pink-0: #ffe9f3;
--color-core-pink-100: #fcdbeb;
--color-core-pink-200: #ffb5d5;
--color-core-pink-300: #ff95c1;
--color-core-pink-400: #ff76ae;
--color-core-pink-500: #ef588b;
--color-core-pink-600: #e0447c;
--color-core-pink-700: #ce3665;
--color-core-pink-800: #b22f5b;
--color-core-pink-900: #931847;
--color-core-pink-1000: #561231;
--color-core-pink-1100: #2b1721;
--color-core-red-0: #ffeae9;
--color-core-red-100: #ffd5d2;
--color-core-red-200: #ffb8b1;
--color-core-red-300: #ff9c8f;
--color-core-red-400: #ff7f6e;
--color-core-red-500: #f76054;
--color-core-red-600: #ed4c42;
--color-core-red-700: #db3e3e;
--color-core-red-800: #c63434;
--color-core-red-900: #992222;
--color-core-red-1000: #6d1313;
--color-core-red-1100: #2b1111;
--color-core-orange-0: #ffede3;
--color-core-orange-100: #fcdccc;
--color-core-orange-200: #ffc6a4;
--color-core-orange-300: #ffb180;
--color-core-orange-400: #ff9c5d;
--color-core-orange-500: #fc8943;
--color-core-orange-600: #f57d33;
--color-core-orange-700: #ed7024;
--color-core-orange-800: #ce5511;
--color-core-orange-900: #962c0b;
--color-core-orange-1000: #601700;
--color-core-orange-1100: #2d130e;
--color-core-neutral-0: #ffffff;
--color-core-neutral-100: #f3f4f4;
--color-core-neutral-200: #dee1e1;
--color-core-neutral-300: #c8cccc;
--color-core-neutral-400: #b0b6b7;
--color-core-neutral-500: #929a9b;
--color-core-neutral-600: #6e797a;
--color-core-neutral-700: #515e5f;
--color-core-neutral-800: #364141;
--color-core-neutral-900: #273333;
--color-core-neutral-1000: #162020;
--color-core-neutral-1100: #040404;
--color-core-yellow-0: #fff8e2;
--color-core-yellow-100: #fdefcd;
--color-core-yellow-200: #ffe99a;
--color-core-yellow-300: #ffe16e;
--color-core-yellow-400: #ffd943;
--color-core-yellow-500: #ffcd1c;
--color-core-yellow-600: #ffbc00;
--color-core-yellow-700: #dd9903;
--color-core-yellow-800: #ba7506;
--color-core-yellow-900: #944c0c;
--color-core-yellow-1000: #542a00;
--color-core-yellow-1100: #2d1a05;
--color-font-primary: #040404;
--color-font-secondary: #273333;
--color-font-tertiary: #364141;
--color-font-interactive: #0b8599;
--color-font-interactive-hover: #0b8599;
--color-font-interactive-active: #6f5ed3;
--color-font-interactive-disabled: #364141;
--color-font-danger: #6d1313;
--color-font-warning: #601700;
--color-font-success: #08422f;
--size-border-radius-large: 30rem;
--size-font-small: 0.75rem;
--size-font-medium: 1rem;
--size-font-large: 1.5rem;
--size-font-xl: 2.25rem;
--size-padding-small: 0.5rem;
--size-padding-medium: 1rem;
--size-padding-large: 1rem;
--size-padding-xl: 1rem;
--foo: bar;
}
`;
/* end snapshot integration async hooks should match snapshot */

8 changes: 4 additions & 4 deletions __integration__/__snapshots__/compose.test.snap.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* @web/test-runner snapshot v1 */
export const snapshots = {};

snapshots["compose/object should match snapshot"] =
snapshots["integration compose compose/object should match snapshot"] =
`
// Do not edit directly
Expand Down Expand Up @@ -178,9 +178,9 @@ object StyleDictionary {
val sizePaddingSmall = 8.00.dp
val sizePaddingXl = 16.00.dp
}`;
/* end snapshot compose/object should match snapshot */
/* end snapshot integration compose compose/object should match snapshot */

snapshots["compose/object with references should match snapshot"] =
snapshots["integration compose compose/object with references should match snapshot"] =
`
// Do not edit directly
Expand Down Expand Up @@ -357,5 +357,5 @@ object StyleDictionary {
val colorFontInteractive = colorBrandPrimary
val colorBackgroundDisabled = colorBackgroundTertiary
}`;
/* end snapshot compose/object with references should match snapshot */
/* end snapshot integration compose compose/object with references should match snapshot */

12 changes: 6 additions & 6 deletions __integration__/__snapshots__/css.test.snap.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* @web/test-runner snapshot v1 */
export const snapshots = {};

snapshots["css/variables should match snapshot"] =
snapshots["integration css css/variables should match snapshot"] =
`/**
* Do not edit directly
* Generated on Sat, 01 Jan 2000 00:00:00 GMT
Expand Down Expand Up @@ -175,9 +175,9 @@ snapshots["css/variables should match snapshot"] =
--size-padding-xl: 1rem;
}
`;
/* end snapshot css/variables should match snapshot */
/* end snapshot integration css css/variables should match snapshot */

snapshots["css/variables with references should match snapshot"] =
snapshots["integration css css/variables with references should match snapshot"] =
`/**
* Do not edit directly
* Generated on Sat, 01 Jan 2000 00:00:00 GMT
Expand Down Expand Up @@ -351,9 +351,9 @@ snapshots["css/variables with references should match snapshot"] =
--color-background-disabled: var(--color-background-tertiary);
}
`;
/* end snapshot css/variables with references should match snapshot */
/* end snapshot integration css css/variables with references should match snapshot */

snapshots["css/variables with selector should match snapshot"] =
snapshots["integration css css/variables with selector should match snapshot"] =
`/**
* Do not edit directly
* Generated on Sat, 01 Jan 2000 00:00:00 GMT
Expand Down Expand Up @@ -527,5 +527,5 @@ snapshots["css/variables with selector should match snapshot"] =
--size-padding-xl: 1rem;
}
`;
/* end snapshot css/variables with selector should match snapshot */
/* end snapshot integration css css/variables with selector should match snapshot */

24 changes: 12 additions & 12 deletions __integration__/__snapshots__/customFileHeader.test.snap.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* @web/test-runner snapshot v1 */
export const snapshots = {};

snapshots["file options registered file header should match snapshot"] =
snapshots["integration valid custom file headers file options registered file header should match snapshot"] =
`/**
* hello
* Do not edit directly
Expand All @@ -12,9 +12,9 @@ snapshots["file options registered file header should match snapshot"] =
--color-red: #ff0000;
}
`;
/* end snapshot file options registered file header should match snapshot */
/* end snapshot integration valid custom file headers file options registered file header should match snapshot */

snapshots["file options config file header should match snapshot"] =
snapshots["integration valid custom file headers file options config file header should match snapshot"] =
`/**
* Do not edit directly
* Generated on Sat, 01 Jan 2000 00:00:00 GMT
Expand All @@ -25,9 +25,9 @@ snapshots["file options config file header should match snapshot"] =
--color-red: #ff0000;
}
`;
/* end snapshot file options config file header should match snapshot */
/* end snapshot integration valid custom file headers file options config file header should match snapshot */

snapshots["file options inline file header should match snapshot"] =
snapshots["integration valid custom file headers file options inline file header should match snapshot"] =
`/**
* build version 1.0.0
*/
Expand All @@ -36,9 +36,9 @@ snapshots["file options inline file header should match snapshot"] =
--color-red: #ff0000;
}
`;
/* end snapshot file options inline file header should match snapshot */
/* end snapshot integration valid custom file headers file options inline file header should match snapshot */

snapshots["platform options no file options should match snapshot"] =
snapshots["integration valid custom file headers platform options no file options should match snapshot"] =
`/**
* Do not edit directly
* Generated on Sat, 01 Jan 2000 00:00:00 GMT
Expand All @@ -65,9 +65,9 @@ module.exports = {
}
};
`;
/* end snapshot platform options no file options should match snapshot */
/* end snapshot integration valid custom file headers platform options no file options should match snapshot */

snapshots["platform options showFileHeader should match snapshot"] =
snapshots["integration valid custom file headers platform options showFileHeader should match snapshot"] =
`module.exports = {
"color": {
"red": {
Expand All @@ -88,9 +88,9 @@ snapshots["platform options showFileHeader should match snapshot"] =
}
};
`;
/* end snapshot platform options showFileHeader should match snapshot */
/* end snapshot integration valid custom file headers platform options showFileHeader should match snapshot */

snapshots["platform options file header override should match snapshot"] =
snapshots["integration valid custom file headers platform options file header override should match snapshot"] =
`/**
* Header overridden
*/
Expand All @@ -115,5 +115,5 @@ module.exports = {
}
};
`;
/* end snapshot platform options file header override should match snapshot */
/* end snapshot integration valid custom file headers platform options file header override should match snapshot */

Loading
Loading