Specify Docs
Specify ↗︎Changelog ↗︎Guide ↗︎
V2
V2
  • Getting started
    • Introduction
    • What is Specify?
    • Pulling your first tokens with the CLI
    • Glossary
  • Collect
    • What is a Source?
    • Available sources
      • Figma Variables & Styles
      • Tokens Studio
  • Distribute
    • What is a Destination?
    • Available destinations
      • GitHub
      • Specify CLI
      • Specify SDK
      • HTTP API
  • Concepts
    • Overview
    • Parsers Engine
    • SDTF Client
      • SDTF Engine
    • Specify Design Token Format
  • Guides
    • Configuration file 101
    • Specify CLI usage 101
      • Getting started
      • Authentication
      • Generate Files
    • Specify SDK usage 101
      • Getting started
      • Retrieving and working with the tokens
      • Updating tokens
      • Converting a token to XXX
      • Executing generation parsers
    • Specify SDK Cheatsheet
    • Manage font files
    • Querying a SDTF graph
  • Reference
    • Parsers Engine
    • Parsers
      • change-case
      • convert-color
      • convert-dimension
      • make-line-height-relative
      • filter
      • register-view
      • select-modes
      • prefix-by
      • suffix-by
      • replace-string
      • to-css-custom-properties
      • to-css-text-style
      • to-css-font-import
      • to-flutter
      • to-javascript
      • to-json
      • to-json-list
      • to-kotlin
      • to-react-native
      • to-scss-mixin-text-style
      • to-scss-map
      • to-sdtf
      • to-style-dictionary
      • to-swift
      • to-tailwind
      • to-typescript
      • svgo
      • svg-to-jsx
      • svg-to-tsx
      • to-svg-file
      • to-bitmap-file
      • to-file
    • Specify SDK
      • SpecifyClient
      • SDTFClient
      • Converters
        • CSS
      • ParsersEngineResults
    • SDTF Engine
      • Query API
      • Mutation API
      • SDTF Query Language
      • SDTF QueryResult
      • TokenState
        • Stateful Value
    • HTTP API
      • POST /parsers-engine-rpc
    • Specify CLI
  • Resources
    • Parser Rules templates
      • CSS Custom Properties
      • Tailwind
      • React Native
      • Flutter
      • SDTF
      • JSON
    • Specify CLI VS Specify SDK
    • Playground
    • Best practices
  • Useful links
    • Discord
    • YouTube
    • Twitter
    • Help Center
    • Canny
Powered by GitBook
On this page
  • Properties
  • aliases
  • type
  • value
  • modes
  • isTopLevelAlias
  • isFullyResolvable
  • modesResolvability
  • definition
  • Methods
  • getCollection
  • getStatefulValueResult
  • resolveDeepStatefulValueForMode
  • getUIValueResultOnMode
  • rename
  • renameMode
  • updateValue
  • updateModeValue
  • resolveValueAliases
  • createModeValue
  • deleteModeValue
  • getJSONValue
  • getJSONToken
  • move
  • matchByType
  • matchJSONValueByType
  • toTokenStateParams
  • toAnalyzedToken
  • Matchers
  • isString
  • isNumber
  • isBoolean
  • isNull
  • isArray
  • isObject
  • isIntegerNumber
  • isZeroToOneNumber
  • isArcDegreeNumber
  • isRgbColorNumber
  • isPositiveNumber
  • isPositiveIntegerNumber
  • isPercentageNumber
  • isHexadecimalColorString
  • isBitmap
  • isBitmapFormat
  • isBlur
  • isBorder
  • isBorderStyle
  • isBorderStyleLineCap
  • isBreakpoint
  • isColor
  • isCubicBezier
  • isDimension
  • isDimensionUnit
  • isDuration
  • isDurationUnit
  • isFont
  • isFontFamily
  • isFontFeature
  • isFontFeatures
  • isFontFormat
  • isFontStyle
  • isFontWeight
  • isGradient
  • isGradients
  • isOpacity
  • isRadius
  • isRadii
  • isShadow
  • isShadows
  • isShadowType
  • isSpacing
  • isSpacings
  • isStepsTimingFunction
  • isTextAlignHorizontal
  • isTextAlignVertical
  • isTextDecoration
  • isTextStyle
  • isTextTransform
  • isTransition
  • isVector
  • isVectorFormat
  • isZIndex

Was this helpful?

Export as PDF
  1. Reference
  2. SDTF Engine

TokenState

The TokenState class API reference

The TokenState is accessible via the SDTFEngine API over methods like: getTokenState, getAllTokenStates…

The TokenState host all the methods to work with the token value, read, update, resolve aliases…

Properties

aliases

This getter returns the stateful alias references of the token.

get aliases: Array<StatefulAliasReference>;

type

This getter returns the type of the token.

get type: SpecifyDesignTokenTypeName;

value

This getter returns the SDTF JSON representation of the token value.

get value: SpecifyDesignToken['$value'];

modes

This getter returns the resolved modes of the token.

get modes: Array<string>;

isTopLevelAlias

This getter indicates whether the token is a top level alias.

get isTopLevelAlias: boolean;

isFullyResolvable

This getter indicates whether the token holds unresolvable aliases.

get isFullyResolvable: boolean;

modesResolvability

This getter returns a map representation of whether the token holds unresolvable aliases per mode.

get modesResolvability: Record<string, boolean>;

definition

This getter returns the design token definition - containing validation schemas of the token.

get definition: DesignTokenDefinition<Type>;

Methods

getCollection

This method returns the parent collection of the token if any.

getCollection(): import("./CollectionState.js").CollectionState | undefined;

getStatefulValueResult

This method returns a StatefulValueResult instance allowing to map over the token possible values for modes and aliases.

getStatefulValueResult(): StatefulValueResult<Type>;

resolveDeepStatefulValueForMode

This method resolves the stateful value for a given mode.

resolveDeepStatefulValueForMode<T extends SpecifyDesignTokenTypeName = Type>(mode: string): ResolvedDeepStatefulValueForMode<T>;

getUIValueResultOnMode

This method returns the Stateful Value representation for frontend usage.

getUIValueResultOnMode(targetMode: string): UIValueResultSignature<Type>;

rename

This method renames the token.

rename(newName: string): boolean;

renameMode

This method renames a mode of the token.

renameMode(fromMode: string, toMode: string): void;

updateValue

This method updates the whole value of the token (including modes).

updateValue(nextValue: Partial<PickSpecifyDesignToken<Type, string, false, true>['$value']>, { allowModeCreation, overrideAliases }?: UpdateOptions): void;

updateModeValue

This method updates the value of a specific mode of the token.

updateModeValue(mode: string, nextValue: Partial<PickSpecifyDesignToken<Type, string, true, false>['$value']>, { overrideAliases, allowModeCreation }?: UpdateOptions): void;

resolveValueAliases

This method resolves the aliases from the token.

resolveValueAliases(): void;

createModeValue

This method creates a new mode for the token.

createModeValue(mode: string, nextValue: PickSpecifyDesignToken<Type, string, true, false>['$value']): void;

deleteModeValue

This method deletes a mode of the token.

deleteModeValue(mode: string): void;

getJSONValue

This method returns the JSON representation of the Token value.

getJSONValue<ResolveAliases extends boolean, AllowUnresolvable extends boolean = true, TargetMode extends Mode | null = null>(options?: GetJSONTokenValueOptions<ResolveAliases, AllowUnresolvable, TargetMode>): PickSpecifyDesignToken<Type, Mode, AllowUnresolvable extends true ? true : false, TargetMode extends string ? false : true>['$value'];

getJSONToken

This method returns the JSON representation of the Token.

getJSONToken<ResolveAliases extends boolean, AllowUnresolvable extends boolean = true, TargetMode extends Mode | null = null>(options?: GetJSONTokenValueOptions<ResolveAliases, AllowUnresolvable, TargetMode>): PickSpecifyDesignToken<Type, Mode, AllowUnresolvable extends true ? true : false, TargetMode extends string ? false : true>;

move

This method moves the item to the specified path.

move(toPath: Array<string>): void;

matchByType

This method matches the token by type.

matchByType<Return>(matcher: {
    [K in SpecifyDesignTokenTypeName]?: (token: TokenState<K, Value, Mode>) => Return;
}, missingFn: (token: TokenState) => Return): Return;

matchJSONValueByType

This method matches the JSON value of the token by type.

matchJSONValueByType<MatchReturn, MissingReturn = undefined>(matcher: {
    [K in Type]?: (token: PickSpecifyDesignToken<K, string, false, false>['$value'], mode: string) => MatchReturn;
}, missingFn: (token: TokenState) => MissingReturn): {
    [mode: string]: MatchReturn;
} | MissingReturn | undefined;

toTokenStateParams

This method returns the token state parameters.

toTokenStateParams(): TokenStateParams;

toAnalyzedToken

This method returns the analyzed token.

toAnalyzedToken(): AnalyzedToken;

Matchers

isString

This method checks if the token state is of type 'string'.

isString(): this is TokenState<'string'>;

isNumber

This method checks if the token state is of type 'number'.

isNumber(): this is TokenState<'number'>;

isBoolean

This method checks if the token state is of type 'boolean'.

isBoolean(): this is TokenState<'boolean'>;

isNull

This method checks if the token state is of type 'null'.

isNull(): this is TokenState<'null'>;

isArray

This method checks if the token state is of type 'array'.

isArray(): this is TokenState<'array'>;

isObject

This method checks if the token state is of type 'object'.

isObject(): this is TokenState<'object'>;

isIntegerNumber

This method checks if the token state is of type 'integerNumber'.

isIntegerNumber(): this is TokenState<'integerNumber'>;

isZeroToOneNumber

This method checks if the token state is of type 'zeroToOneNumber'.

isZeroToOneNumber(): this is TokenState<'zeroToOneNumber'>;

isArcDegreeNumber

This method checks if the token state is of type 'arcDegreeNumber'.

isArcDegreeNumber(): this is TokenState<'arcDegreeNumber'>;

isRgbColorNumber

This method checks if the token state is of type 'rgbColorNumber'.

isRgbColorNumber(): this is TokenState<'rgbColorNumber'>;

isPositiveNumber

This method checks if the token state is of type 'positiveNumber'.

isPositiveNumber(): this is TokenState<'positiveNumber'>;

isPositiveIntegerNumber

This method checks if the token state is of type 'positiveIntegerNumber'.

isPositiveIntegerNumber(): this is TokenState<'positiveIntegerNumber'>;

isPercentageNumber

This method checks if the token state is of type 'percentageNumber'.

isPercentageNumber(): this is TokenState<'percentageNumber'>;

isHexadecimalColorString

This method checks if the token state is of type 'hexadecimalColorString'.

isHexadecimalColorString(): this is TokenState<'hexadecimalColorString'>;

isBitmap

This method checks if the token state is of type 'bitmap'.

isBitmap(): this is TokenState<'bitmap'>;

isBitmapFormat

This method checks if the token state is of type 'bitmapFormat'.

isBitmapFormat(): this is TokenState<'bitmapFormat'>;

isBlur

This method checks if the token state is of type 'blur'.

isBlur(): this is TokenState<'blur'>;

isBorder

This method checks if the token state is of type 'border'.

isBorder(): this is TokenState<'border'>;

isBorderStyle

This method checks if the token state is of type 'borderStyle'.

isBorderStyle(): this is TokenState<'borderStyle'>;

isBorderStyleLineCap

This method checks if the token state is of type 'borderStyleLineCap'.

isBorderStyleLineCap(): this is TokenState<'borderStyleLineCap'>;

isBreakpoint

This method checks if the token state is of type 'breakpoint'.

isBreakpoint(): this is TokenState<'breakpoint'>;

isColor

This method checks if the token state is of type 'color'.

isColor(): this is TokenState<'color'>;

isCubicBezier

This method checks if the token state is of type 'cubicBezier'.

isCubicBezier(): this is TokenState<'cubicBezier'>;

isDimension

This method checks if the token state is of type 'dimension'.

isDimension(): this is TokenState<'dimension'>;

isDimensionUnit

This method checks if the token state is of type 'dimensionUnit'.

isDimensionUnit(): this is TokenState<'dimensionUnit'>;

isDuration

This method checks if the token state is of type 'duration'.

isDuration(): this is TokenState<'duration'>;

isDurationUnit

This method checks if the token state is of type 'durationUnit'.

isDurationUnit(): this is TokenState<'durationUnit'>;

isFont

This method checks if the token state is of type 'font'.

isFont(): this is TokenState<'font'>;

isFontFamily

This method checks if the token state is of type 'fontFamily'.

isFontFamily(): this is TokenState<'fontFamily'>;

isFontFeature

This method checks if the token state is of type 'fontFeature'.

isFontFeature(): this is TokenState<'fontFeature'>;

isFontFeatures

This method checks if the token state is of type 'fontFeatures'.

isFontFeatures(): this is TokenState<'fontFeatures'>;

isFontFormat

This method checks if the token state is of type 'fontFormat'.

isFontFormat(): this is TokenState<'fontFormat'>;

isFontStyle

This method checks if the token state is of type 'fontStyle'.

isFontStyle(): this is TokenState<'fontStyle'>;

isFontWeight

This method checks if the token state is of type 'fontWeight'.

isFontWeight(): this is TokenState<'fontWeight'>;

isGradient

This method checks if the token state is of type 'gradient'.

isGradient(): this is TokenState<'gradient'>;

isGradients

This method checks if the token state is of type 'gradients'.

isGradients(): this is TokenState<'gradients'>;

isOpacity

This method checks if the token state is of type 'opacity'.

isOpacity(): this is TokenState<'opacity'>;

isRadius

This method checks if the token state is of type 'radius'.

isRadius(): this is TokenState<'radius'>;

isRadii

This method checks if the token state is of type 'radii'.

isRadii(): this is TokenState<'radii'>;

isShadow

This method checks if the token state is of type 'shadow'.

isShadow(): this is TokenState<'shadow'>;

isShadows

This method checks if the token state is of type 'shadows'.

isShadows(): this is TokenState<'shadows'>;

isShadowType

This method checks if the token state is of type 'shadowType'.

isShadowType(): this is TokenState<'shadowType'>;

isSpacing

This method checks if the token state is of type 'spacing'.

isSpacing(): this is TokenState<'spacing'>;

isSpacings

This method checks if the token state is of type 'spacings'.

isSpacings(): this is TokenState<'spacings'>;

isStepsTimingFunction

This method checks if the token state is of type 'stepsTimingFunction'.

isStepsTimingFunction(): this is TokenState<'stepsTimingFunction'>;

isTextAlignHorizontal

This method checks if the token state is of type 'textAlignHorizontal'.

isTextAlignHorizontal(): this is TokenState<'textAlignHorizontal'>;

isTextAlignVertical

This method checks if the token state is of type 'textAlignVertical'.

isTextAlignVertical(): this is TokenState<'textAlignVertical'>;

isTextDecoration

This method checks if the token state is of type 'textDecoration'.

isTextDecoration(): this is TokenState<'textDecoration'>;

isTextStyle

This method checks if the token state is of type 'textStyle'.

isTextStyle(): this is TokenState<'textStyle'>;

isTextTransform

This method checks if the token state is of type 'textTransform'.

isTextTransform(): this is TokenState<'textTransform'>;

isTransition

This method checks if the token state is of type 'transition'.

isTransition(): this is TokenState<'transition'>;

isVector

This method checks if the token state is of type 'vector'.

isVector(): this is TokenState<'vector'>;

isVectorFormat

This method checks if the token state is of type 'vectorFormat'.

isVectorFormat(): this is TokenState<'vectorFormat'>;

isZIndex

This method checks if the token state is of type 'zIndex'.

isZIndex(): this is TokenState<'zIndex'>;
PreviousSDTF QueryResultNextStateful Value

Last updated 1 year ago

Was this helpful?