@trapi/metadata
Version:
Generate REST-API metadata scheme from TypeScript Decorators.
57 lines • 2.23 kB
TypeScript
import * as ts from 'typescript';
import type { MetadataGenerator } from '../generator';
import type { Extension } from './extension';
import type { Type } from './type';
type UsableDeclaration = ts.InterfaceDeclaration | ts.ClassDeclaration | ts.PropertySignature | ts.TypeAliasDeclaration | ts.EnumMember;
interface TypeNodeResolverContext {
[name: string]: ts.TypeReferenceNode | ts.TypeNode;
}
export interface UtilityTypeOptions {
keys: Array<string | number | boolean>;
}
export declare class TypeNodeResolver {
private readonly typeNode;
private readonly current;
private readonly parentNode?;
private context;
private readonly referencer;
constructor(typeNode: ts.TypeNode, current: MetadataGenerator, parentNode?: ts.Node, context?: TypeNodeResolverContext, referencer?: ts.TypeNode);
static clearCache(): void;
resolve(): Type;
private static toUtilityType;
private static getUtilityTypeOptions;
private filterUtilityProperties;
private static resolveSpecialReference;
private static getLiteralValue;
private getPrimitiveType;
private getDateType;
private static getDesignatedModels;
private getEnumerateType;
private getReferenceType;
private getTypeAliasReference;
private getModelReference;
private static getRefTypeName;
private attemptToResolveKindToPrimitive;
private contextualizedName;
private handleCachingAndCircularReferences;
private createCircularDependencyResolver;
private static nodeIsUsable;
private getModelTypeDeclaration;
private hasFlag;
private getSymbolAtLocation;
private getModelProperties;
private propertyFromSignature;
private propertyFromDeclaration;
private getModelAdditionalProperties;
private typeArgumentsToContext;
private getModelInheritedProperties;
private hasPublicModifier;
private hasStaticModifier;
private isAccessibleParameter;
private getNodeDescription;
private static getNodeFormat;
private getNodeExample;
protected getNodeExtensions(node: UsableDeclaration | ts.PropertyDeclaration | ts.ParameterDeclaration | ts.EnumDeclaration): Extension[];
}
export {};
//# sourceMappingURL=module.d.ts.map