Link

概述


目录


ExtendRuleModule (接口)

以一个 RuleModule 为基础,建立新的 RuleModule

签名

interface ExtendRuleModule {}

v0.2.0 中添加

ParseRule (接口)

解析 RuleModule 到 ThemeNode

签名

interface ParseRule {}

v0.2.0 中添加

RuleModule (接口)

Rule Module 包含一个规则和缺省的 Theme 以及父规则 解析的顺序是 规则>父规则

签名

interface RuleModule {
  next?: RuleModule<N>
  rule: R
  theme: T
}

v0.2.0 中添加

ExtendRule (类型)

签名

export type ExtendRule<R extends Rule, S extends CssProperties, E extends object = {}, T extends CssTheme = {}> = Rule<
  S,
  E,
  GetRuleProp<R>,
  T,
  GetRuleTheme<R>
>

v0.2.0 中添加

GetRuleInput (类型)

得到 Rule 中的输入属性.E & S

签名

export type GetRuleInput<R extends Rule> = NonNullable<R['_I']>

v0.2.0 中添加

GetRuleOTheme (类型)

得到 Rule 中的父 Theme 类型.

签名

export type GetRuleOTheme<R extends Rule> = NonNullable<R['_OT']>

v0.2.0 中添加

GetRuleOutput (类型)

得到 Rule 中的输出类型.

签名

export type GetRuleOutput<R extends Rule> = NonNullable<R['_O']>

v0.2.0 中添加

GetRuleProp (类型)

Properties is css properties’s type

签名

export type GetRuleProp<R extends Rule> = NonNullable<R['_P']>

v0.2.0 中添加

GetRuleSTheme (类型)

得到 Rule 中的本身 Theme 类型.

签名

export type GetRuleSTheme<R extends Rule> = NonNullable<R['_ST']>

v0.2.0 中添加

GetRuleTheme (类型)

得到 Rule 中的 Theme 类型.

签名

export type GetRuleTheme<R extends Rule> = NonNullable<R['_T']>

v0.2.0 中添加

ParseProp (类型)

解析 RuleModule 到 CssThemeNode

签名

export type ParseProp = <R extends Rule>(
  rules: RuleModule<R>
) => (value: CssThemeNode<GetRuleProp<R>, GetRuleTheme<R>>) => GetRuleOutput<R>

v0.2.0 中添加

ParseString (类型)

解析 RuleModule 到 css 文本

签名

export type ParseString = <R extends Rule>(
  rules: RuleModule<R>
) => (value: CssThemeNode<Input<GetRuleInput<R>, GetRuleOutput<R>>, GetRuleTheme<R>>) => string

v0.2.0 中添加

Rule (类型)

定义了一个规则,转换 A 的全部属性名到 B

签名

export type Rule<
  S extends object = {},
  E extends object = {},
  O extends object = {},
  T extends object = {},
  OT extends object = {}
> = {
  readonly _E?: E
  readonly _S?: S
  readonly _I?: E & S
  readonly _ST?: T
  readonly _T?: OT & T
  readonly _OT?: OT
  readonly _O?: O
  readonly _P?: Input<E & S, O>
  /**
   * stand rule
   */
  rule?: StandRule<S, O, T>
  /**
   * enum rule
   */
  ruleEnum?: EnumRule<E, O, T>
  /**
   * default style
   */
  style?: CssNode<O>
}

v0.2.0 中添加

extendRuleModule (函数)

签名


export const extendRuleModule: ExtendRuleModule = a => b => ...

v0.2.0 中添加

foldRuleModule (函数)

合并以同一个 RuleModule 为基础的 RuleModule 数组到 RuleModule

签名


export const foldRuleModule=<R extends Rule = Rule>()=><N extends Rule>(as:NonEmptyArray<RuleModule<any,N>>):RuleModule<R,N>=>{
   const folds= getFold()(as)
   return{
       rule:folds.rule,
       theme:folds.theme,
       next:as[0].next
   }
} => ...

v0.2.0 中添加

parse (函数)

签名


export const parse: ParseString = rule => value => ...

v0.2.0 中添加

parseProp (函数)

签名


export const parseProp: ParseProp = rule => value => ...

v0.2.0 中添加

parseRule (函数)

签名


export const parseRule: ParseRule = ({ rule, theme = {}, next }) => (value) => ...

v0.2.0 中添加

Input (导出)

签名

any

v0.2.0 中添加

InputNode (导出)

签名

any

v0.2.0 中添加

dataToInputNode (导出)

签名


<O extends object, T extends object>(input: ThemeNode<O, T>) => CssThemeNode<O, T>

v0.2.0 中添加

inputNodeToData (导出)

签名


<P extends object, T extends object>(a: CssThemeNode<P, T>) => ThemeNode<P, T>

v0.2.0 中添加