mark-nicepants / figma2flutter

Converts design token json files to flutter
Apache License 2.0
17 stars 16 forks source link

Add Argument for Filtering Token Types #34

Open apackin opened 2 weeks ago

apackin commented 2 weeks ago

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:

Files Modified

  1. bin/figma2flutter.dart

    • Main Function:
      • Added filteredTokenTypes option
      • Parsed argument into a list of token types
      • Passed filteredTypes to _processTokens
    • Token Processing:
      • Implemented filtering logic in _processTokens
  2. lib/config/options.dart

    • Option Definitions:
      • Added filteredTokenTypes constants and option for configuration
  3. lib/processor.dart

    • Processor Class:
      • Updated process method to accept filteredTypes
      • Added logic to remove tokens based on filteredTypes list

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.

frederikstonge commented 2 weeks ago

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.

apackin commented 2 weeks ago

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

frederikstonge commented 2 weeks ago

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 :)

freemansoft commented 2 weeks ago

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?

apackin commented 2 weeks ago

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

apackin commented 1 week ago

I renamed the argument and added tests