typia
Version:
Superfast runtime validators with only one line
58 lines (51 loc) • 1.35 kB
text/typescript
import { ClassProperties } from "../../typings/ClassProperties";
import { IMetadataArrayType } from "./IMetadataArrayType";
import { Metadata } from "./Metadata";
export class MetadataArrayType {
public readonly name: string;
public readonly value: Metadata;
public readonly nullables: boolean[];
public readonly recursive: boolean;
public readonly index: number | null;
/**
* @hidden
*/
private constructor(props: ClassProperties<MetadataArrayType>) {
this.name = props.name;
this.value = props.value;
this.index = props.index;
this.recursive = props.recursive;
this.nullables = props.nullables;
}
/**
* @internal
*/
public static _From_without_value(
props: Omit<IMetadataArrayType, "value">,
): MetadataArrayType {
return MetadataArrayType.create({
name: props.name,
value: null!,
index: props.index,
recursive: props.recursive,
nullables: props.nullables,
});
}
/**
* @internal
*/
public static create(
props: ClassProperties<MetadataArrayType>,
): MetadataArrayType {
return new MetadataArrayType(props);
}
public toJSON(): IMetadataArrayType {
return {
name: this.name,
value: this.value.toJSON(),
nullables: this.nullables,
recursive: this.recursive,
index: this.index,
};
}
}