UNPKG

@terrazzo/parser

Version:

Parser/validator for the Design Tokens Community Group (DTCG) standard.

66 lines 2.85 kB
import * as momoa from '@humanwhocodes/momoa'; import { type InputSourceWithDocument } from '@terrazzo/json-schema-tools'; import { type GroupNormalized, type TokenNormalized, type TokenNormalizedSet } from '@terrazzo/token-tools'; import type { default as Logger } from '../logger.js'; import type { Config, ReferenceObject, RefMap } from '../types.js'; /** Convert valid DTCG alias to $ref */ export declare function aliasToGroupRef(alias: string): ReferenceObject | undefined; /** Convert valid DTCG alias to $ref */ export declare function aliasToTokenRef(alias: string, mode?: string): ReferenceObject | undefined; export interface TokenFromNodeOptions { groups: Record<string, GroupNormalized>; path: string[]; source: InputSourceWithDocument; ignore: Config['ignore']; } /** Generate a TokenNormalized from a Momoa node */ export declare function tokenFromNode(node: momoa.AnyNode, { groups, path, source, ignore }: TokenFromNodeOptions): TokenNormalized | undefined; export interface TokenRawValues { jsonID: string; originalValue: any; source: TokenNormalized['source']; mode: Record<string, { originalValue: any; source: TokenNormalized['source']; }>; } /** Generate originalValue and source from node */ export declare function tokenRawValuesFromNode(node: momoa.AnyNode, { filename, path }: { filename: string; path: string[]; }): TokenRawValues | undefined; /** * Generate a group from a node. * This method mutates the groups index as it goes because of group inheritance. * As it encounters new groups it may have to update other groups. */ export declare function groupFromNode(node: momoa.ObjectNode, { path, groups }: { path: string[]; groups: Record<string, GroupNormalized>; }): GroupNormalized; export interface GraphAliasesOptions { tokens: TokenNormalizedSet; sources: Record<string, InputSourceWithDocument>; logger: Logger; } /** * Link and reverse-link tokens in one pass. */ export declare function graphAliases(refMap: RefMap, { tokens, logger, sources }: GraphAliasesOptions): void; /** Convert valid DTCG alias to $ref Momoa Node */ export declare function aliasToMomoa(alias: string, loc?: momoa.ObjectNode['loc']): momoa.ObjectNode | undefined; /** * Convert Reference Object to token ID. * This can then be turned into an alias by surrounding with { … } * ⚠️ This is not mode-aware. This will flatten multiple modes into the same root token. */ export declare function refToTokenID($ref: ReferenceObject | string): string | undefined; /** * Resolve DTCG aliases, $extends, and $ref */ export declare function resolveAliases(tokens: TokenNormalizedSet, { logger, refMap, sources, }: { logger: Logger; refMap: RefMap; sources: Record<string, InputSourceWithDocument>; }): void; //# sourceMappingURL=token.d.ts.map