- ✅ Ticket 1.1: Estructura Clean Architecture en backend - ✅ Ticket 1.2: Schemas Zod compartidos - ✅ Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares) - ✅ Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares) - ✅ Ticket 1.5: Eliminación de duplicidades (~50 líneas) Cambios principales: - Creada estructura Clean Architecture en backend/src/ - Schemas Zod compartidos en backend/src/shared/schemas/ - Refactorización modular de drugs y procedures - Utilidades genéricas en src/utils/ (filter, validation) - Eliminados scripts obsoletos y documentación antigua - Corregidos errores: QueryClient, import test-error-handling - Build verificado y funcionando correctamente
28 lines
1.5 KiB
TypeScript
28 lines
1.5 KiB
TypeScript
/**
|
|
* Create a hast element from a simple CSS selector.
|
|
*
|
|
* @template {string} Selector
|
|
* Type of selector.
|
|
* @template {string} [DefaultTagName='div']
|
|
* Type of default tag name (default: `'div'`).
|
|
* @param {Selector | null | undefined} [selector]
|
|
* Simple CSS selector (optional).
|
|
*
|
|
* Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).
|
|
* Multiple classes are allowed.
|
|
* Uses the last ID if multiple IDs are found.
|
|
* @param {DefaultTagName | null | undefined} [defaultTagName='div']
|
|
* Tag name to use if `selector` does not specify one (default: `'div'`).
|
|
* @returns {Element & {tagName: ExtractTagName<Selector, DefaultTagName>}}
|
|
* Built element.
|
|
*/
|
|
export function parseSelector<Selector extends string, DefaultTagName extends string = "div">(selector?: Selector | null | undefined, defaultTagName?: DefaultTagName | null | undefined): import("hast").Element & {
|
|
tagName: ExtractTagName<Selector, DefaultTagName>;
|
|
};
|
|
export type Element = import('hast').Element;
|
|
export type Properties = import('hast').Properties;
|
|
/**
|
|
* Extract tag name from a simple selector.
|
|
*/
|
|
export type ExtractTagName<SimpleSelector extends string, DefaultTagName extends string> = SimpleSelector extends "" ? DefaultTagName : SimpleSelector extends `${infer TagName}.${infer Rest}` ? ExtractTagName<TagName, DefaultTagName> : SimpleSelector extends `${infer TagName_1}#${infer Rest_1}` ? ExtractTagName<TagName_1, DefaultTagName> : SimpleSelector extends string ? SimpleSelector : DefaultTagName;
|