codigo0/node_modules/date-fns/locale/_lib/buildMatchFn.d.mts
planetazuzu 5d7a6500fe refactor: Fase 1 - Clean Architecture, refactorización modular y eliminación de duplicidades
-  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
2026-01-25 21:09:47 +01:00

68 lines
2 KiB
TypeScript

import type { Quarter, Era, Day, Month } from "../../types.js";
import type {
LocaleUnitValue,
LocaleWidth,
LocaleDayPeriod,
MatchFn,
MatchValueCallback,
} from "../types.js";
export interface BuildMatchFnArgs<
Result extends LocaleUnitValue,
DefaultMatchWidth extends LocaleWidth,
DefaultParseWidth extends LocaleWidth,
> {
matchPatterns: BuildMatchFnMatchPatterns<DefaultMatchWidth>;
defaultMatchWidth: DefaultMatchWidth;
parsePatterns: BuildMatchFnParsePatterns<Result, DefaultParseWidth>;
defaultParseWidth: DefaultParseWidth;
valueCallback?: MatchValueCallback<
Result extends LocaleDayPeriod ? string : number,
Result
>;
}
export type BuildMatchFnMatchPatterns<DefaultWidth extends LocaleWidth> = {
[Width in LocaleWidth]?: RegExp;
} & {
[Width in DefaultWidth]: RegExp;
};
export type BuildMatchFnParsePatterns<
Value extends LocaleUnitValue,
DefaultWidth extends LocaleWidth,
> = {
[Width in LocaleWidth]?: ParsePattern<Value>;
} & {
[Width in DefaultWidth]: ParsePattern<Value>;
};
export type ParsePattern<Value extends LocaleUnitValue> =
Value extends LocaleDayPeriod
? Record<LocaleDayPeriod, RegExp>
: Value extends Quarter
? readonly [RegExp, RegExp, RegExp, RegExp]
: Value extends Era
? readonly [RegExp, RegExp]
: Value extends Day
? readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp]
: Value extends Month
? readonly [
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
RegExp,
]
: never;
export declare function buildMatchFn<
Value extends LocaleUnitValue,
DefaultMatchWidth extends LocaleWidth,
DefaultParseWidth extends LocaleWidth,
>(
args: BuildMatchFnArgs<Value, DefaultMatchWidth, DefaultParseWidth>,
): MatchFn<Value>;