@sontrx/typia
Version:
Superfast runtime validators with only one line
34 lines (29 loc) • 917 B
text/typescript
import { Metadata } from "../../../schemas/metadata/Metadata";
import { MetadataAliasType } from "../../../schemas/metadata/MetadataAliasType";
import { ArrayUtil } from "../../../utils/ArrayUtil";
import { IMetadataIteratorProps } from "./IMetadataIteratorProps";
import { explore_metadata } from "./explore_metadata";
export const emplace_metadata_alias = (
props: IMetadataIteratorProps,
): MetadataAliasType => {
// CHECK EXISTENCE
const [alias, newbie, closure] = props.collection.emplaceAlias(
props.checker,
props.type,
props.type.aliasSymbol!,
);
ArrayUtil.add(alias.nullables, props.metadata.nullable);
if (newbie === false) return alias;
// CONSTRUCT VALUE TYPE
const value: Metadata = explore_metadata({
...props,
explore: {
...props.explore,
escaped: false,
aliased: true,
},
intersected: false,
});
closure(value);
return alias;
};