@terrazzo/parser
Version:
Parser/validator for the Design Tokens Community Group (DTCG) standard.
66 lines • 2.85 kB
TypeScript
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