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

Types: allow for arbitrary theme values (for 3rd party plugins) #7926

Merged
merged 4 commits into from Mar 31, 2022

Commits on Mar 31, 2022

  1. allow for arbitrary configuration in the theme section

    This is useful for third party plugins otherwise you will get an error.
    RobinMalfait committed Mar 31, 2022
    Copy the full SHA
    df79c13 View commit details
    Browse the repository at this point in the history
  2. WIP: theme() utility function code completion

    This will give you code completion in the `theme()` function. The reason
    it is still a WIP is that this only works with the default config right
    now and not 100% sure if it is possible to define generics in JSDoc.
    
    The idea would be to:
    - Provide types from the default config
    - Provide types from the custom config (e.g.: 3rd party plugin)
    - Override default config types with the overrides of the user's config
    
    Right now this only provides types for the defaultConfig which might
    result in dropping all of this in favor of a much simpler:
    
    ```ts
    theme<D = any>(path: string, defaultValue: D) => D
    ```
    
    But this sadly doesn't give you "nice" auto completion. However, the
    default might be good enough if we don't error on for example
    `theme('customPlugin')` which is currently not the case.
    RobinMalfait committed Mar 31, 2022
    Copy the full SHA
    ad98f8b View commit details
    Browse the repository at this point in the history
  3. update changelog

    RobinMalfait committed Mar 31, 2022
    Copy the full SHA
    e918485 View commit details
    Browse the repository at this point in the history
  4. undo all theme types, and type it as theme(path: string): any

    Since currently we don't want to investigate time to make the code
    completion *perfect* (because it might be even impossible to do it
    properly due to resolving of overrides, extend and deeply nested presets)
    
    For now we will provide a way simpler type, which is better than
    incorrect types. So far we only had types for the default config theme
    *only*.
    RobinMalfait committed Mar 31, 2022
    Copy the full SHA
    acb49e4 View commit details
    Browse the repository at this point in the history