UNPKG

typia

Version:

Superfast runtime validators with only one line

48 lines (45 loc) 1.52 kB
import { MetadataMap } from '../../../schemas/metadata/MetadataMap.mjs'; import { ArrayUtil } from '../../../utils/ArrayUtil.mjs'; import { TypeFactory } from '../../TypeFactory.mjs'; import { explore_metadata } from './explore_metadata.mjs'; const iterate_metadata_map = (props) => { const type = props.checker.getApparentType(props.type); const name = TypeFactory.getFullName({ checker: props.checker, type, symbol: type.getSymbol(), }); const generic = type.aliasSymbol ? type.aliasTypeArguments : props.checker.getTypeArguments(type); if (name.substring(0, 4) !== "Map<" || generic?.length !== 2) return false; const key = generic[0]; const value = generic[1]; ArrayUtil.set(props.metadata.maps, MetadataMap.create({ key: explore_metadata({ ...props, type: key, explore: { ...props.explore, escaped: false, aliased: false, }, intersected: false, }), value: explore_metadata({ ...props, type: value, explore: { ...props.explore, escaped: false, aliased: false, }, intersected: false, }), tags: [], }), (elem) => `Map<${elem.key.getName()}, ${elem.value.getName()}>`); return true; }; export { iterate_metadata_map }; //# sourceMappingURL=iterate_metadata_map.mjs.map