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

18 lines (17 loc) 1.45 kB
import { Rule } from '@angular-devkit/schematics'; import { TsMorphAngularProjectTransformOptions } from '@rxap/workspace-ts-morph'; import { ClassDeclaration, CodeBlockWriter, Decorator, PropertyDeclaration, SourceFile } from 'ts-morph'; import { AbstractControl } from '../types/abstract-control'; export interface CoerceFormDefinitionControlOptions extends AbstractControl, TsMorphAngularProjectTransformOptions { tsMorphTransform?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration) => void; formName: string; coerceFormTypeControl?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, formTypeName: string, control: AbstractControl) => void; coerceFormControl?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, formTypeName: string, control: AbstractControl) => { propertyDeclaration: PropertyDeclaration; decoratorDeclaration: Decorator; } | void; } export declare function isAngularValidator(validator: string): boolean; export declare function CoerceFormDefinitionControl(options: Readonly<CoerceFormDefinitionControlOptions>): Rule; export declare function FormControlValidatorCodeBlockWriter(sourceFile: SourceFile, control: Pick<AbstractControl, 'validatorList' | 'isRequired'>): (w: CodeBlockWriter) => void; export declare function FormControlStateCodeBlockWriter(sourceFile: SourceFile, control: Required<Pick<AbstractControl, 'state'>>): (w: CodeBlockWriter) => void;