kjelsrud.dev/node_modules/hast-util-parse-selector/lib/extract.ts
2023-07-19 21:31:30 +02:00

16 lines
516 B
TypeScript

export type ExtractTagName<
SimpleSelector extends string,
DefaultTagName extends string
> = SimpleSelector extends `#${infer Rest}`
? DefaultTagName
: SimpleSelector extends `.${infer Rest}`
? DefaultTagName
: SimpleSelector extends `${infer TagName}.${infer Rest}`
? ExtractTagName<TagName, DefaultTagName>
: SimpleSelector extends `${infer TagName}#${infer Rest}`
? TagName
: SimpleSelector extends ''
? DefaultTagName
: SimpleSelector extends string
? SimpleSelector
: DefaultTagName