@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
TypeScript
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;