useCacheToken.d.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import type Theme from '../theme/Theme';
  2. import type { Ref } from 'vue';
  3. export interface Option<DerivativeToken, DesignToken> {
  4. /**
  5. * Generate token with salt.
  6. * This is used to generate different hashId even same derivative token for different version.
  7. */
  8. salt?: string;
  9. override?: object;
  10. /**
  11. * Format token as you need. Such as:
  12. *
  13. * - rename token
  14. * - merge token
  15. * - delete token
  16. *
  17. * This should always be the same since it's one time process.
  18. * It's ok to useMemo outside but this has better cache strategy.
  19. */
  20. formatToken?: (mergedToken: any) => DerivativeToken;
  21. /**
  22. * Get final token with origin token, override token and theme.
  23. * The parameters do not contain formatToken since it's passed by user.
  24. * @param origin The original token.
  25. * @param override Extra tokens to override.
  26. * @param theme Theme instance. Could get derivative token by `theme.getDerivativeToken`
  27. */
  28. getComputedToken?: (origin: DesignToken, override: object, theme: Theme<any, any>) => DerivativeToken;
  29. }
  30. export declare const getComputedToken: <DerivativeToken = object, DesignToken = DerivativeToken>(originToken: DesignToken, overrideToken: object, theme: Theme<any, any>, format?: (token: DesignToken) => DerivativeToken) => any;
  31. /**
  32. * Cache theme derivative token as global shared one
  33. * @param theme Theme entity
  34. * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly
  35. * @param option Additional config
  36. * @returns Call Theme.getDerivativeToken(tokenObject) to get token
  37. */
  38. export default function useCacheToken<DerivativeToken = object, DesignToken = DerivativeToken>(theme: Ref<Theme<any, any>>, tokens: Ref<Partial<DesignToken>[]>, option?: Ref<Option<DerivativeToken, DesignToken>>): import("vue").ShallowRef<[DerivativeToken & {
  39. _tokenKey: string;
  40. }, string]>;