renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
31 lines (30 loc) • 953 B
TypeScript
export type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never;
export type TokenTypes<T> = keyof UnionToIntersection<T[keyof T]>;
export type ParsedEdnPrimitive = string | null;
export type ParsedEdnArray = ParsedEdnData[];
export type ParsedEdnRecord = {
[k: string]: ParsedEdnData;
};
export type ParsedEdnData = ParsedEdnPrimitive | ParsedEdnRecord | ParsedEdnArray;
export type ParserState = {
type: 'root';
data: ParsedEdnData;
} | {
type: 'array';
startIndex: number;
data: ParsedEdnArray;
} | {
type: 'record';
skipKey: boolean;
currentKey: string | null;
startIndex: number;
data: ParsedEdnRecord;
};
export interface EdnMetadata {
replaceString: string;
}
export type ParsedEdnMetadata = WeakMap<ParsedEdnRecord | ParsedEdnArray, EdnMetadata>;
export interface ParsedEdnResult {
data: ParsedEdnRecord;
metadata: ParsedEdnMetadata;
}