UNPKG

@matatbread/typia

Version:

Superfast runtime validators with only one line

29 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.iterate_metadata_set = void 0; const MetadataSet_1 = require("../../../schemas/metadata/MetadataSet"); const ArrayUtil_1 = require("../../../utils/ArrayUtil"); const TypeFactory_1 = require("../../TypeFactory"); const explore_metadata_1 = require("./explore_metadata"); const iterate_metadata_set = (props) => { const type = props.checker.getApparentType(props.type); const name = TypeFactory_1.TypeFactory.getFullName({ checker: props.checker, type: type, symbol: type.getSymbol(), }); const generic = type.aliasSymbol ? type.aliasTypeArguments : props.checker.getTypeArguments(type); if (name.substring(0, 4) !== "Set<" || (generic === null || generic === void 0 ? void 0 : generic.length) !== 1) return false; const key = generic[0]; const value = (0, explore_metadata_1.explore_metadata)(Object.assign(Object.assign({}, props), { type: key, explore: Object.assign(Object.assign({}, props.explore), { escaped: false, aliased: false }), intersected: false })); ArrayUtil_1.ArrayUtil.take(props.metadata.sets, (elem) => elem.value.getName() === value.getName(), () => MetadataSet_1.MetadataSet.create({ value: (0, explore_metadata_1.explore_metadata)(Object.assign(Object.assign({}, props), { type: key, explore: Object.assign(Object.assign({}, props.explore), { escaped: false, aliased: false }), intersected: false })), tags: [], })); return true; }; exports.iterate_metadata_set = iterate_metadata_set; //# sourceMappingURL=iterate_metadata_set.js.map