@terrazzo/parser
Version:
Parser/validator for the Design Tokens Community Group (DTCG) standard.
63 lines • 3.92 kB
TypeScript
import { type AnyNode, type MemberNode, type ValueNode } from '@humanwhocodes/momoa';
import { type Token, type TokenNormalized } from '@terrazzo/token-tools';
import type Logger from '../logger.js';
import type { ConfigInit } from '../types.js';
export interface ValidateOptions {
filename?: URL;
src: string;
logger: Logger;
}
export declare const VALID_COLORSPACES: Set<string>;
export declare const FONT_WEIGHT_VALUES: Set<string>;
export declare const STROKE_STYLE_VALUES: Set<string>;
export declare const STROKE_STYLE_LINE_CAP_VALUES: Set<string>;
/** Verify an Alias $value is formatted correctly */
export declare function validateAliasSyntax($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Border token is valid */
export declare function validateBorder($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Color token is valid */
export declare function validateColor($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Cubic Bézier token is valid */
export declare function validateCubicBezier($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Dimension token is valid */
export declare function validateDimension($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Duration token is valid */
export declare function validateDuration($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Font Family token is valid */
export declare function validateFontFamily($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Font Weight token is valid */
export declare function validateFontWeight($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Gradient token is valid */
export declare function validateGradient($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Number token is valid */
export declare function validateNumber($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Boolean token is valid */
export declare function validateBoolean($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Shadow token’s value is valid */
export declare function validateShadowLayer($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Stroke Style token is valid. */
export declare function validateStrokeStyle($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/** Verify a Transition token is valid */
export declare function validateTransition($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
/**
* Validate a MemberNode (the entire token object, plus its key in the parent
* object) to see if it’s a valid DTCG token or not. Keeping the parent key
* really helps in debug messages.
*/
export declare function validateTokenMemberNode(node: MemberNode, { filename, src, logger }: ValidateOptions): void;
export interface ValidateTokenNodeOptions {
subpath: string[];
src: string;
filename: URL;
config: ConfigInit;
logger: Logger;
parent?: AnyNode;
$typeInheritance?: Record<string, Token['$type']>;
}
/**
* Validate does a little more than validate; it also converts to TokenNormalized
* and sets up the basic data structure. But aliases are unresolved, and we need
* a 2nd normalization pass afterward.
*/
export default function validateTokenNode(node: MemberNode, { config, filename, logger, parent, src, subpath, $typeInheritance }: ValidateTokenNodeOptions): TokenNormalized | undefined;
//# sourceMappingURL=validate.d.ts.map