@fluojs/core
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/metadata/validation.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAsBpE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAG,uBAAuB,GAAG,SAAS,CAiBhI;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,uBAAuB,GAChC,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mBAAmB,EAChC,IAAI,EAAE,sBAAsB,GAC3B,IAAI,CAEN;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAI3F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,qBAAqB,EAAE,CA8B7E;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAG,SAAS,sBAAsB,EAAE,CAQ9H;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,wBAAwB,EAAE,CAiBnF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,mBAAmB,EAAE,CAExF"} | ||
| {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/metadata/validation.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EAGzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA0FpE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAG,uBAAuB,GAAG,SAAS,CAiBhI;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,uBAAuB,GAChC,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mBAAmB,EAChC,IAAI,EAAE,sBAAsB,GAC3B,IAAI,CAEN;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAI3F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,qBAAqB,EAAE,CA8B7E;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAG,SAAS,sBAAsB,EAAE,CAQ9H;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,wBAAwB,EAAE,CAiBnF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,mBAAmB,EAAE,CAExF"} |
@@ -6,2 +6,50 @@ import { appendPropertyMapValue, cloneMutableValue, getOrCreatePropertyMap, getStandardConstructorMetadataMap, getStandardMetadataBag, mergeMetadataPropertyKeys, standardMetadataKeys } from './shared.js'; | ||
| const classValidationStore = createClonedWeakMapStore(rules => rules.map(rule => cloneMutableValue(rule))); | ||
| function getInheritedTargets(target) { | ||
| const targets = []; | ||
| let current = target; | ||
| while (current && current !== Object.prototype) { | ||
| targets.unshift(current); | ||
| current = Object.getPrototypeOf(current); | ||
| } | ||
| return targets; | ||
| } | ||
| function getInheritedConstructors(target) { | ||
| const targets = []; | ||
| let current = target; | ||
| while (current && current !== Function.prototype) { | ||
| targets.unshift(current); | ||
| current = Object.getPrototypeOf(current); | ||
| } | ||
| return targets; | ||
| } | ||
| function getInheritedStoredDtoBindingMap(target) { | ||
| const merged = new Map(); | ||
| for (const current of getInheritedTargets(target)) { | ||
| const stored = dtoFieldBindingStore.get(current); | ||
| if (!stored) { | ||
| continue; | ||
| } | ||
| for (const [propertyKey, metadata] of stored) { | ||
| merged.set(propertyKey, cloneMutableValue(metadata)); | ||
| } | ||
| } | ||
| return merged; | ||
| } | ||
| function getInheritedStoredDtoValidationMap(target) { | ||
| const merged = new Map(); | ||
| for (const current of getInheritedTargets(target)) { | ||
| const stored = dtoFieldValidationStore.get(current); | ||
| if (!stored) { | ||
| continue; | ||
| } | ||
| for (const [propertyKey, rules] of stored) { | ||
| const existing = merged.get(propertyKey) ?? []; | ||
| merged.set(propertyKey, [...existing, ...rules.map(rule => cloneMutableValue(rule))]); | ||
| } | ||
| } | ||
| return merged; | ||
| } | ||
| function getInheritedStoredClassValidationRules(target) { | ||
| return getInheritedConstructors(target).flatMap(current => classValidationStore.read(current) ?? []); | ||
| } | ||
| function getStandardDtoBindingMap(target) { | ||
@@ -26,3 +74,3 @@ return getStandardConstructorMetadataMap(target, standardMetadataKeys.dtoFieldBinding); | ||
| export function getDtoFieldBindingMetadata(target, propertyKey) { | ||
| const stored = dtoFieldBindingStore.get(target)?.get(propertyKey); | ||
| const stored = getInheritedStoredDtoBindingMap(target).get(propertyKey); | ||
| const standard = getStandardDtoBindingMap(target)?.get(propertyKey); | ||
@@ -87,3 +135,3 @@ const source = stored?.source ?? standard?.source; | ||
| export function getDtoBindingSchema(dto) { | ||
| const stored = dtoFieldBindingStore.get(dto.prototype) ?? new Map(); | ||
| const stored = getInheritedStoredDtoBindingMap(dto.prototype); | ||
| const standard = getStandardMetadataBag(dto)?.[standardMetadataKeys.dtoFieldBinding] ?? new Map(); | ||
@@ -121,3 +169,3 @@ const keys = mergeMetadataPropertyKeys(stored, standard); | ||
| export function getDtoFieldValidationRules(target, propertyKey) { | ||
| const stored = dtoFieldValidationStore.get(target)?.get(propertyKey) ?? []; | ||
| const stored = getInheritedStoredDtoValidationMap(target).get(propertyKey) ?? []; | ||
| const standard = getStandardDtoValidationMap(target)?.get(propertyKey) ?? []; | ||
@@ -134,3 +182,3 @@ return [...standard.map(rule => cloneMutableValue(rule)), ...stored.map(rule => cloneMutableValue(rule))]; | ||
| export function getDtoValidationSchema(dto) { | ||
| const stored = dtoFieldValidationStore.get(dto.prototype) ?? new Map(); | ||
| const stored = getInheritedStoredDtoValidationMap(dto.prototype); | ||
| const standard = getStandardDtoValidationMap(dto.prototype) ?? new Map(); | ||
@@ -157,3 +205,3 @@ const keys = mergeMetadataPropertyKeys(stored, standard); | ||
| export function getClassValidationRules(target) { | ||
| return [...(getStandardClassValidationRules(target) ?? []), ...(classValidationStore.read(target) ?? [])]; | ||
| return [...(getStandardClassValidationRules(target) ?? []), ...getInheritedStoredClassValidationRules(target)]; | ||
| } |
+1
-1
@@ -12,3 +12,3 @@ { | ||
| ], | ||
| "version": "1.0.0", | ||
| "version": "1.0.1", | ||
| "private": false, | ||
@@ -15,0 +15,0 @@ "license": "MIT", |
111378
1.35%1983
2.48%