UNPKG

@rxap/schematics-ts-morph

Version:

This package provides utilities for manipulating TypeScript code using ts-morph, particularly for Angular and NestJS projects. It offers functions to add, coerce, and modify code elements like classes, methods, decorators, and imports. The package also in

31 lines (30 loc) 3.6 kB
import { NormalizedUpstreamOptions, OperationParameter, TypeImport } from '@rxap/ts-morph'; import { ClassDeclaration, Project, SourceFile, WriterFunction } from 'ts-morph'; import { CoerceOperationOptions as NEW_CoerceOperationOptions, CoerceDtoClassOutput, TransformOperation } from '@rxap/ts-morph'; import { CoerceOperationOptions } from './coerce-operation'; import { DtoClassProperty } from '@rxap/ts-morph'; export interface CoerceGetPageOperationOptions extends Omit<CoerceOperationOptions, 'operationName' | 'tsMorphTransform' | 'coerceOperationDtoClass'> { tsMorphTransform?: (project: Project, sourceFile: SourceFile, classDeclaration: ClassDeclaration, controllerName: string, moduleSourceFile: SourceFile, pageClassName: string, rowClassName: string) => Partial<NEW_CoerceOperationOptions>; /** * the name of the property used as row id value. defaults to the value 'uuid'. If null the __rowId property will be * set to the absolute row index absolute row index = page * pageSize + rowIndex */ operationName?: string; coerceToRowDtoMethod?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, rowClassName: string, options: CoerceGetPageOperationOptions) => void; coerceToPageDtoMethod?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, pageClassName: string, rowClassName: string, options: CoerceGetPageOperationOptions) => void; coerceGetPageDataMethod?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, moduleSourceFile: SourceFile, options: CoerceGetPageOperationOptions) => void; coerceOperationDtoClass?: (classDeclaration: ClassDeclaration, controllerName: string, moduleSourceFile: SourceFile, options: Readonly<CoerceGetPageOperationOptions>) => CoerceDtoClassOutput | null; upstream?: NormalizedUpstreamOptions | null; idProperty?: OperationParameter; rowId: DtoClassProperty | null; } export declare function GetPageOperationColumnToCodeText(property: DtoClassProperty): string; export declare function CoerceToRowDtoMethod(sourceFile: SourceFile, classDeclaration: ClassDeclaration, rowClassName: string, options: CoerceGetPageOperationOptions): void; export declare function CoerceToPageDtoMethod(sourceFile: SourceFile, classDeclaration: ClassDeclaration, pageClassName: string, rowClassName: string, options: CoerceGetPageOperationOptions): void; export declare function CoerceGetPageDataMethod(sourceFile: SourceFile, classDeclaration: ClassDeclaration, moduleSourceFile: SourceFile, options: CoerceGetPageOperationOptions): void; export declare function GetResponseTypeFromUpstream(upstream: NormalizedUpstreamOptions): TypeImport; export declare function GetRawRowDataType(options: Readonly<CoerceGetPageOperationOptions>): TypeImport; export declare function BuildGetPageGetDataImplementation(classDeclaration: ClassDeclaration, moduleSourceFile: SourceFile, dto: CoerceDtoClassOutput | null, options: Readonly<CoerceOperationOptions>): TransformOperation; export declare function CoerceGetPageOperationDtoClass(classDeclaration: ClassDeclaration, controllerName: string, moduleSourceFile: SourceFile, options: Readonly<CoerceGetPageOperationOptions>): CoerceDtoClassOutput | null; export declare function BuiltGetPageDtoDataMapperImplementation(classDeclaration: ClassDeclaration, moduleSourceFile: SourceFile, dto: CoerceDtoClassOutput | null, options: Readonly<CoerceOperationOptions>): TransformOperation<string | WriterFunction>; export declare function CoerceGetPageOperation(options: Readonly<CoerceGetPageOperationOptions>): import("@angular-devkit/schematics").Rule;