figma2flutter
figma2flutter copied to clipboard
Add Argument for Filtering Token Types
Addresses https://github.com/mark-nicepants/figma2flutter/issues/32
Pull Request: Add Argument for Filtering Token Types
Overview
This pull request introduces a new argument, filteredTokenTypes, to exclude specified token types from parsed results:
- New Argument:
filteredTokenTypes - Functionality: Omits specified token types from processing
- Usage:
--filtered-token-types=core,source
Files Modified
-
bin/figma2flutter.dart- Main Function:
- Added
filteredTokenTypesoption - Parsed argument into a list of token types
- Passed
filteredTypesto_processTokens
- Added
- Token Processing:
- Implemented filtering logic in
_processTokens
- Implemented filtering logic in
- Main Function:
-
lib/config/options.dart- Option Definitions:
- Added
filteredTokenTypesconstants and option for configuration
- Added
- Option Definitions:
-
lib/processor.dart- Processor Class:
- Updated
processmethod to acceptfilteredTypes - Added logic to remove tokens based on
filteredTypeslist
- Updated
- Processor Class:
Example Usage
To run the tool and exclude tokens of types core and source:
dart bin/figma2flutter.dart --filtered-token-types=core,source
This will filter out tokens with paths starting with core or source.
Conclusion
These updates provide more control over the token processing, enabling users to fine-tune their output. Please review the changes and provide your feedback.
Notes:
I tried skipping reading the "Core" tokens altogether, but other tokens rely on their processing to assign the correct values.
It's a bit too specific imo. Adding a filter options to filter an array of token types would be a better solution.
You have removed a lot of comments, I don't think it was necessary.
Please add unit tests.
Please update documentation.
Thank you for the quick comments. I made the recommended code changes. Let me know if that looks good and I'll update with tests and docs later
Thank you for the quick comments. I made the recommended code changes. Let me know if that looks good and I'll update with tests and docs later
Looks good to me :)
Should this be filteredTokenPaths or filteredTokenSets in place of filteredTokenTypes?
This filtering does what? It filters out all the tokens that were part of a token set while letting them be used as a base value for tokens that are retained?
It filters out all the tokens that were part of a token set
Yes, that is the intended usage. Technically there isn't enforcement regarding whether the filtered out items were used as a base value for other tokens, so it could be used to omit sets for other reasons if those exist. Happy to rename to filteredTokenSets
I renamed the argument and added tests
Somehow this got dropped. Was just looking at this...
Is this filteredTokenSets or filteredTokenPaths? At a quick look this remotes tokens that start with a certain path/prefix. The naming implies that it is by type like "Color" or "Text" but it is the path instead, yes?