-
Notifications
You must be signed in to change notification settings - Fork 566
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fd8c3b5
commit 618dd1e
Showing
9 changed files
with
107 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'style-dictionary': minor | ||
--- | ||
|
||
options.log to be respected in all error logging, including platform specific logs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'style-dictionary': major | ||
--- | ||
|
||
BREAKING: StyleDictionaryInstance.properties & .allProperties have been removed. They were deprecated in v3 in favor of .tokens and .allTokens. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
--- | ||
'style-dictionary': major | ||
--- | ||
|
||
BREAKING: StyleDictionary to be initialized with a new API and have async methods. Use: | ||
|
||
```js | ||
import StyleDictionary from 'style-dictionary'; | ||
|
||
/** | ||
* old: | ||
* const sd = StyleDictionary.extend({ source: ['tokens.json'], platforms: {} }); | ||
* sd.buildAllPlatforms(); | ||
*/ | ||
const sd = new StyleDictionary({ source: ['tokens.json'], platforms: {} }); | ||
await sd.buildAllPlatforms(); | ||
``` | ||
|
||
You can still extend a dictionary instance with an extended config, but `.extend()` is only used for this, it is no longer used to initialize the first instance: | ||
|
||
```js | ||
import StyleDictionary from 'style-dictionary'; | ||
|
||
const sd = new StyleDictionary({ source: ['tokens.json'], platforms: {} }); | ||
const extended = await sd.extend({ | ||
fileHeader: { | ||
myFileHeader: (defaultMessage) => { | ||
return [...defaultMessage, 'hello, world!']; | ||
} | ||
} | ||
}); | ||
``` | ||
|
||
To ensure your initialized StyleDictionary instance is fully ready and has imported all your tokens, you can await `hasInitialized`: | ||
|
||
```js | ||
import StyleDictionary from 'style-dictionary'; | ||
|
||
const sd = new StyleDictionary({ source: ['tokens.json'], platforms: {} }); | ||
await sd.hasInitialized; | ||
console.log(sd.allTokens); | ||
``` | ||
|
||
For error handling and testing purposes, you can also manually initialize the style-dictionary config: | ||
|
||
```js | ||
import StyleDictionary from 'style-dictionary'; | ||
|
||
const sd = new StyleDictionary({ source: ['tokens.js'], platforms: {} }, { init: false }); | ||
try { | ||
await sd.init(); | ||
} catch(e) { | ||
// handle error, e.g. when tokens.js file has syntax errors and cannot be imported | ||
} | ||
console.log(sd.allTokens); | ||
``` | ||
|
||
The main reason for an initialize step after class instantiation is that async constructors are not a thing in JavaScript, and if you return a promise from a constructor to "hack it", TypeScript will eventually trip over it. | ||
|
||
Due to being able to dynamically (asynchronously) import ES Modules rather than synchronously require CommonJS modules, we had to make the APIs asynchronous, so the following methods are now async: | ||
|
||
- extend | ||
- exportPlatform | ||
- buildAllPlatforms & buildPlatform | ||
- cleanAllPlatforms & cleanPlatform | ||
|
||
In a future release, most other methods will be made async or support async as well, such as parsers, transforms, formats etc. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters