Skip to content

Commit

Permalink
chore: delete AnyObject and use Object instead
Browse files Browse the repository at this point in the history
  • Loading branch information
YumoImer committed Jul 10, 2024
1 parent ece47aa commit 13a5d6e
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 34 deletions.
1 change: 0 additions & 1 deletion src/_util/type.ts

This file was deleted.

3 changes: 1 addition & 2 deletions src/context/configProvider.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React from 'react';
import type { AnyObject } from '../_util/type';

export interface DefaultConfigConsumerProps extends AnyObject {
export interface DefaultConfigConsumerProps extends Object {
getPrefixCls?: (suffixCls?: string, customizePrefixCls?: string) => string;
iconPrefixCls?: string;
csp?: CSPConfig;
Expand Down
9 changes: 4 additions & 5 deletions src/context/themeProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import type { Theme } from '@ant-design/cssinjs';

import defaultSeedToken from '../themes/seed';

import type { AnyObject } from '../_util/type';
import type { AliasToken, OverrideToken, MapToken, SeedToken, GlobalToken } from '../interface';

export const unitless: {
Expand Down Expand Up @@ -41,13 +40,13 @@ export const ignore: {
motionUnit: true,
};

type ComponentsToken<CompTokenMap extends AnyObject> = {
type ComponentsToken<CompTokenMap extends Object> = {
[key in keyof OverrideToken<CompTokenMap>]?: OverrideToken<CompTokenMap>[key] & {
theme?: Theme<SeedToken, MapToken>;
};
};

export interface DesignTokenProviderProps<CompTokenMap extends AnyObject> {
export interface DesignTokenProviderProps<CompTokenMap extends Object> {
token: GlobalToken<CompTokenMap>;
/** Just merge `token` & `override` at top to save perf */
override: { override: Partial<AliasToken> } & ComponentsToken<CompTokenMap>;
Expand All @@ -69,9 +68,9 @@ export const DefaultThemeProviderContextConfig = {
hashed: true,
};

export type GetThemeProviderContext<CompTokenMap extends AnyObject> = () => [React.Context<DesignTokenProviderProps<CompTokenMap>>];
export type GetThemeProviderContext<CompTokenMap extends Object> = () => [React.Context<DesignTokenProviderProps<CompTokenMap>>];

export function useMergedThemeContext<CompTokenMap extends AnyObject> (getThemeProviderContext?: GetThemeProviderContext<CompTokenMap>) {
export function useMergedThemeContext<CompTokenMap extends Object> (getThemeProviderContext?: GetThemeProviderContext<CompTokenMap>) {
const DefaultThemeProviderContext = React.createContext<DesignTokenProviderProps<CompTokenMap>>(
DefaultThemeProviderContextConfig as DesignTokenProviderProps<CompTokenMap>
);
Expand Down
5 changes: 2 additions & 3 deletions src/interface/components.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import type { AnyObject } from '../_util/type';
import type { AliasToken } from './alias';

export type OverrideToken<CompTokenMap extends AnyObject> = {
export type OverrideToken<CompTokenMap extends Object> = {
[key in keyof CompTokenMap]: Partial<CompTokenMap[key]> & Partial<AliasToken>;
};

/** Final token which contains the components level override */
export type GlobalToken<CompTokenMap extends AnyObject> = AliasToken & CompTokenMap;
export type GlobalToken<CompTokenMap extends Object> = AliasToken & CompTokenMap;
3 changes: 1 addition & 2 deletions src/interface/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import type { CSSInterpolation, DerivativeFunc } from '@ant-design/cssinjs';
import type { AliasToken } from './alias';
import type { MapToken } from './maps';
import type { SeedToken } from './seeds';
import type { AnyObject } from '../_util/type';

export type MappingAlgorithm = DerivativeFunc<SeedToken, MapToken>;

Expand Down Expand Up @@ -37,6 +36,6 @@ export type { SeedToken } from './seeds';
export type UseComponentStyleResult = [(node: React.ReactNode) => React.ReactElement, string];

export type GenerateStyle<
ComponentToken extends AnyObject = AliasToken,
ComponentToken extends Object = AliasToken,
ReturnType = CSSInterpolation,
> = (token: ComponentToken) => ReturnType;
13 changes: 6 additions & 7 deletions src/util/alias.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
import { TinyColor } from '@ant-design/fast-color';
import { FastColor } from '@ant-design/fast-color';

import type { AliasToken, MapToken, OverrideToken, SeedToken } from '../interface';
import seedToken from '../themes/seed';
import getAlphaColor from './getAlphaColor';
import type { AnyObject } from '../_util/type';

/** Raw merge of `@ant-design/cssinjs` token. Which need additional process */
// type RawMergedToken = MapToken & { override: Partial<AliasToken> };
type RawMergedToken<CompTokenMap extends AnyObject> = MapToken & OverrideToken<CompTokenMap> & { override: Partial<AliasToken> };
type RawMergedToken<CompTokenMap extends Object> = MapToken & OverrideToken<CompTokenMap> & { override: Partial<AliasToken> };

/**
* Seed (designer) > Derivative (designer) > Alias (developer).
*
* Merge seed & derivative & override token and generate alias token for developer.
*/
export default function formatToken<CompTokenMap extends AnyObject> (derivativeToken: RawMergedToken<CompTokenMap>): AliasToken {
export default function formatToken<CompTokenMap extends Object> (derivativeToken: RawMergedToken<CompTokenMap>): AliasToken {
const { override, ...restToken } = derivativeToken;
const overrideTokens = { ...override };

Expand Down Expand Up @@ -169,9 +168,9 @@ export default function formatToken<CompTokenMap extends AnyObject> (derivativeT

boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',
boxShadowCard: `
0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},
0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},
0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}
0 1px 2px -2px ${new FastColor('rgba(0, 0, 0, 0.16)').toRgbString()},
0 3px 6px 0 ${new FastColor('rgba(0, 0, 0, 0.12)').toRgbString()},
0 5px 12px 4px ${new FastColor('rgba(0, 0, 0, 0.09)').toRgbString()}
`,
boxShadowDrawerRight: `
-6px 0 16px 0 rgba(0, 0, 0, 0.08),
Expand Down
21 changes: 10 additions & 11 deletions src/util/genStyleUtils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,15 @@ import getDefaultComponentToken from './getDefaultComponentToken';
import statisticToken, { merge as mergeToken } from './statistic';

import useUniqueMemo from '../_util/hooks/useUniqueMemo';
import type { AnyObject } from '../_util/type';


export type OverrideComponent<CompTokenMap extends AnyObject> = Extract<keyof CompTokenMap, string>;
export type OverrideComponent<CompTokenMap extends Object> = Extract<keyof CompTokenMap, string>;

export type GlobalTokenWithComponent<CompTokenMap extends AnyObject, C extends OverrideComponent<CompTokenMap>> = GlobalToken<CompTokenMap> &
export type GlobalTokenWithComponent<CompTokenMap extends Object, C extends OverrideComponent<CompTokenMap>> = GlobalToken<CompTokenMap> &
CompTokenMap[C];

export type ComponentToken<CompTokenMap extends AnyObject, C extends OverrideComponent<CompTokenMap>> = Exclude<OverrideToken<CompTokenMap>[C], undefined>;
export type ComponentTokenKey<CompTokenMap extends AnyObject, C extends OverrideComponent<CompTokenMap>> = keyof ComponentToken<CompTokenMap, C>;
export type ComponentToken<CompTokenMap extends Object, C extends OverrideComponent<CompTokenMap>> = Exclude<OverrideToken<CompTokenMap>[C], undefined>;
export type ComponentTokenKey<CompTokenMap extends Object, C extends OverrideComponent<CompTokenMap>> = keyof ComponentToken<CompTokenMap, C>;

export interface StyleInfo {
hashId: string;
Expand All @@ -71,21 +70,21 @@ export type TokenWithCommonCls<T> = T & {
antCls: string;
} & CSSUtil;

export type FullToken<CompTokenMap extends AnyObject, C extends OverrideComponent<CompTokenMap>> = TokenWithCommonCls<
export type FullToken<CompTokenMap extends Object, C extends OverrideComponent<CompTokenMap>> = TokenWithCommonCls<
GlobalTokenWithComponent<CompTokenMap, C>
>;

export type GenStyleFn<CompTokenMap extends AnyObject, C extends OverrideComponent<CompTokenMap>> = (
export type GenStyleFn<CompTokenMap extends Object, C extends OverrideComponent<CompTokenMap>> = (
token: FullToken<CompTokenMap, C>,
info: StyleInfo,
) => CSSInterpolation;

export type GetDefaultTokenFn<
CompTokenMap extends AnyObject,
CompTokenMap extends Object,
C extends OverrideComponent<CompTokenMap>
> = (token: AliasToken & Partial<CompTokenMap[C]>) => CompTokenMap[C];

export type GetDefaultToken<CompTokenMap extends AnyObject, C extends OverrideComponent<CompTokenMap>> =
export type GetDefaultToken<CompTokenMap extends Object, C extends OverrideComponent<CompTokenMap>> =
| null
| CompTokenMap[C]
| GetDefaultTokenFn<CompTokenMap, C>
Expand All @@ -104,7 +103,7 @@ export type CSSVarRegisterProps = {
};
};

export default function genStyleUtils<CompTokenMap extends AnyObject>(
export default function genStyleUtils<CompTokenMap extends Object>(
getConfigProviderContext?: GetConfigProviderContext,
getThemeProviderContext?: GetThemeProviderContext<CompTokenMap>,
) {
Expand Down Expand Up @@ -369,7 +368,7 @@ export default function genStyleUtils<CompTokenMap extends AnyObject>(
)})`;
});
}
const mergedToken = mergeToken(
const mergedToken = mergeToken<any>(
proxyToken,
{
componentCls,
Expand Down
5 changes: 2 additions & 3 deletions src/util/statistic.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import type { AnyObject } from '../_util/type';

declare const CSSINJS_STATISTIC: any;

Expand All @@ -10,7 +9,7 @@ let recording = true;
* This function will do as `Object.assign` in production. But will use Object.defineProperty:get to
* pass all value access in development. To support statistic field usage with alias token.
*/
export function merge<T extends AnyObject>(...objs: Partial<T>[]): T {
export function merge<T extends Object>(...objs: Partial<T>[]): T {
/* istanbul ignore next */
if (!enableStatistic) {
return Object.assign({}, ...objs);
Expand Down Expand Up @@ -49,7 +48,7 @@ export const _statistic_build_: typeof statistic = {};
function noop() {}

/** Statistic token usage case. Should use `merge` function if you do not want spread record. */
const statisticToken = <T extends AnyObject>(token: T) => {
const statisticToken = <T extends Object>(token: T) => {
let tokenKeys: Set<string> | undefined;
let proxy = token;
let flush: (componentName: string, componentToken: Record<string, string | number>) => void =
Expand Down

0 comments on commit 13a5d6e

Please sign in to comment.