From cd0515b1d8577cdac340e7b1c97bf5461101e975 Mon Sep 17 00:00:00 2001 From: "Alexander J. Vincent" Date: Tue, 2 Apr 2024 06:43:50 -0700 Subject: [PATCH] #88, ClassStatementsGetter rewrite, part 2. --- dist/exports.d.ts | 70 +++++++++++++------ dist/exports.js | 8 +-- ...essormirrorgetter.filteraccessormirror.md} | 6 +- ...accessormirrorgetter.getaccessormirror.md} | 6 +- ...s-morph-structures.accessormirrorgetter.md | 19 +++++ ...ystatementsgetter.filterbodystatements.md} | 6 +- ...bodystatementsgetter.getbodystatements.md} | 6 +- ...ph-structures.classbodystatementsgetter.md | 19 +++++ ...dstatementsgetter.filterheadstatements.md} | 6 +- ...headstatementsgetter.getheadstatements.md} | 6 +- ...ph-structures.classheadstatementsgetter.md | 19 +++++ ...atementsgetter.filterctorheadstatements.md | 22 ------ ...atementsgetter.filterctortailstatements.md | 22 ------ ...tementsgetter.filterpropertyinitializer.md | 22 ------ ...sstatementsgetter.getctorheadstatements.md | 15 ---- ...-morph-structures.classstatementsgetter.md | 34 +++------ ...statementsgetter.supportsstatementflags.md | 2 +- ...lstatementsgetter.filtertailstatements.md} | 6 +- ...tailstatementsgetter.gettailstatements.md} | 6 +- ...ph-structures.classtailstatementsgetter.md | 19 +++++ ...atementsgetter.filterctorbodystatements.md | 22 ++++++ ...statementsgetter.getctorbodystatements.md} | 6 +- ...uctures.constructorbodystatementsgetter.md | 19 +++++ ...atementsgetter.filterctorheadstatements.md | 22 ++++++ ...statementsgetter.getctorheadstatements.md} | 6 +- ...uctures.constructorheadstatementsgetter.md | 19 +++++ ...atementsgetter.filterctortailstatements.md | 22 ++++++ ...lstatementsgetter.getctortailstatements.md | 24 +++++++ ...uctures.constructortailstatementsgetter.md | 19 +++++ docs/api/ts-morph-structures.md | 8 +++ ...alizergetter.filterpropertyinitializer.md} | 6 +- ...itializergetter.getpropertyinitializer.md} | 6 +- ...ph-structures.propertyinitializergetter.md | 19 +++++ .../build/publicAndInternalExports.ts | 8 +++ .../source/toolbox/MemberedTypeToClass.ts | 9 +-- .../source/toolbox/types/toolbox.d.ts | 62 +++++++++++----- stage_2_snapshot/snapshot/source/exports.ts | 8 +++ .../source/toolbox/MemberedTypeToClass.ts | 6 +- .../source/toolbox/types/toolbox.d.ts | 68 ++++++++++++------ 39 files changed, 459 insertions(+), 219 deletions(-) rename docs/api/{ts-morph-structures.classstatementsgetter.filteraccessormirror.md => ts-morph-structures.accessormirrorgetter.filteraccessormirror.md} (53%) rename docs/api/{ts-morph-structures.classstatementsgetter.getaccessormirror.md => ts-morph-structures.accessormirrorgetter.getaccessormirror.md} (57%) create mode 100644 docs/api/ts-morph-structures.accessormirrorgetter.md rename docs/api/{ts-morph-structures.classstatementsgetter.filterbodystatements.md => ts-morph-structures.classbodystatementsgetter.filterbodystatements.md} (52%) rename docs/api/{ts-morph-structures.classstatementsgetter.getbodystatements.md => ts-morph-structures.classbodystatementsgetter.getbodystatements.md} (65%) create mode 100644 docs/api/ts-morph-structures.classbodystatementsgetter.md rename docs/api/{ts-morph-structures.classstatementsgetter.filterheadstatements.md => ts-morph-structures.classheadstatementsgetter.filterheadstatements.md} (52%) rename docs/api/{ts-morph-structures.classstatementsgetter.gettailstatements.md => ts-morph-structures.classheadstatementsgetter.getheadstatements.md} (65%) create mode 100644 docs/api/ts-morph-structures.classheadstatementsgetter.md delete mode 100644 docs/api/ts-morph-structures.classstatementsgetter.filterctorheadstatements.md delete mode 100644 docs/api/ts-morph-structures.classstatementsgetter.filterctortailstatements.md delete mode 100644 docs/api/ts-morph-structures.classstatementsgetter.filterpropertyinitializer.md delete mode 100644 docs/api/ts-morph-structures.classstatementsgetter.getctorheadstatements.md rename docs/api/{ts-morph-structures.classstatementsgetter.filtertailstatements.md => ts-morph-structures.classtailstatementsgetter.filtertailstatements.md} (52%) rename docs/api/{ts-morph-structures.classstatementsgetter.getheadstatements.md => ts-morph-structures.classtailstatementsgetter.gettailstatements.md} (65%) create mode 100644 docs/api/ts-morph-structures.classtailstatementsgetter.md create mode 100644 docs/api/ts-morph-structures.constructorbodystatementsgetter.filterctorbodystatements.md rename docs/api/{ts-morph-structures.classstatementsgetter.getctorbodystatements.md => ts-morph-structures.constructorbodystatementsgetter.getctorbodystatements.md} (62%) create mode 100644 docs/api/ts-morph-structures.constructorbodystatementsgetter.md create mode 100644 docs/api/ts-morph-structures.constructorheadstatementsgetter.filterctorheadstatements.md rename docs/api/{ts-morph-structures.classstatementsgetter.getctortailstatements.md => ts-morph-structures.constructorheadstatementsgetter.getctorheadstatements.md} (62%) create mode 100644 docs/api/ts-morph-structures.constructorheadstatementsgetter.md create mode 100644 docs/api/ts-morph-structures.constructortailstatementsgetter.filterctortailstatements.md create mode 100644 docs/api/ts-morph-structures.constructortailstatementsgetter.getctortailstatements.md create mode 100644 docs/api/ts-morph-structures.constructortailstatementsgetter.md rename docs/api/{ts-morph-structures.classstatementsgetter.filterctorbodystatements.md => ts-morph-structures.propertyinitializergetter.filterpropertyinitializer.md} (50%) rename docs/api/{ts-morph-structures.classstatementsgetter.getpropertyinitializer.md => ts-morph-structures.propertyinitializergetter.getpropertyinitializer.md} (62%) create mode 100644 docs/api/ts-morph-structures.propertyinitializergetter.md diff --git a/dist/exports.d.ts b/dist/exports.d.ts index 1c7e95b..57197a1 100644 --- a/dist/exports.d.ts +++ b/dist/exports.d.ts @@ -1,7 +1,7 @@ import * as ts_morph from 'ts-morph'; import { OptionalKind, Structures, WriterFunction, CodeBlockWriter, TypeNode, Node, StructureKind, KindedStructure, JsxNamespacedNameStructure, ModuleDeclarationKind, Scope, TypeParameterVariance, VariableDeclarationKind, TypeParameterDeclarationStructure, DecoratorStructure, ParameterDeclarationStructure, JSDocStructure, CallSignatureDeclarationStructure, ClassDeclarationStructure, ClassStaticBlockDeclarationStructure, ConstructorDeclarationStructure, ConstructorDeclarationOverloadStructure, ConstructSignatureDeclarationStructure, EnumDeclarationStructure, EnumMemberStructure, ExportAssignmentStructure, ExportDeclarationStructure, ExportSpecifierStructure, FunctionDeclarationStructure, FunctionDeclarationOverloadStructure, GetAccessorDeclarationStructure, ImportAttributeStructure, ImportDeclarationStructure, ImportSpecifierStructure, IndexSignatureDeclarationStructure, InterfaceDeclarationStructure, JSDocTagStructure, JsxAttributeStructure, JsxElementStructure, JsxSelfClosingElementStructure, JsxSpreadAttributeStructure, MethodDeclarationStructure, MethodDeclarationOverloadStructure, MethodSignatureStructure, ModuleDeclarationStructure, PropertyAssignmentStructure, PropertyDeclarationStructure, PropertySignatureStructure, SetAccessorDeclarationStructure, ShorthandPropertyAssignmentStructure, SourceFileStructure, SpreadAssignmentStructure, TypeAliasDeclarationStructure, VariableDeclarationStructure, VariableStatementStructure } from 'ts-morph'; import * as mixin_decorators from 'mixin-decorators'; -import { Writable, Simplify } from 'type-fest'; +import { Writable, Simplify, NonNegativeInteger } from 'type-fest'; declare const COPY_FIELDS: unique symbol; declare const REPLACE_WRITER_WITH_STRING: unique symbol; @@ -2294,47 +2294,73 @@ type stringWriterOrStatementImpl = | stringOrWriterFunction | StatementStructureImpls; -interface ClassStatementsGetter { - supportsStatementFlags: readonly number; - keyword: readonly string; - - filterPropertyInitializer?(key: MemberedStatementsKey): boolean; - getPropertyInitializer?( +interface PropertyInitializerGetter { + filterPropertyInitializer(key: MemberedStatementsKey): boolean; + getPropertyInitializer( key: MemberedStatementsKey, ): stringWriterOrStatementImpl; +} - filterAccessorMirror?(key: MemberedStatementsKey): boolean; - getAccessorMirror?(key: MemberedStatementsKey): stringWriterOrStatementImpl; +interface AccessorMirrorGetter { + filterAccessorMirror(key: MemberedStatementsKey): boolean; + getAccessorMirror(key: MemberedStatementsKey): stringWriterOrStatementImpl; +} - filterHeadStatements?(key: MemberedStatementsKey): boolean; - getHeadStatements?( +interface ClassHeadStatementsGetter { + filterHeadStatements(key: MemberedStatementsKey): boolean; + getHeadStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterBodyStatements?(key: MemberedStatementsKey): boolean; - getBodyStatements?( +interface ClassBodyStatementsGetter { + filterBodyStatements(key: MemberedStatementsKey): boolean; + getBodyStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterTailStatements?(key: MemberedStatementsKey): boolean; - getTailStatements?( +interface ClassTailStatementsGetter { + filterTailStatements(key: MemberedStatementsKey): boolean; + getTailStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterCtorHeadStatements?(key: MemberedStatementsKey): boolean; - getCtorHeadStatements?(): readonly stringWriterOrStatementImpl[]; +interface ConstructorHeadStatementsGetter { + filterCtorHeadStatements(key: MemberedStatementsKey): boolean; + getCtorHeadStatements( + key: MemberedStatementsKey, + ): readonly stringWriterOrStatementImpl[]; +} - filterCtorBodyStatements?(key: MemberedStatementsKey): boolean; - getCtorBodyStatements?( +interface ConstructorBodyStatementsGetter { + filterCtorBodyStatements(key: MemberedStatementsKey): boolean; + getCtorBodyStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterCtorTailStatements?(key: MemberedStatementsKey): boolean; - getCtorTailStatements?( +interface ConstructorTailStatementsGetter { + filterCtorTailStatements(key: MemberedStatementsKey): boolean; + getCtorTailStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; } +interface ClassStatementsGetter + extends Partial, + Partial, + Partial, + Partial, + Partial, + Partial, + Partial, + Partial { + keyword: readonly string; + supportsStatementFlags: readonly NonNegativeInteger; +} + type stringOrWriterFunction = string | WriterFunction; type ClassMemberStructureImpls = @@ -2423,4 +2449,4 @@ interface InterfaceDeclarationWithExtendsTypeStructures { extends: stringOrWriterFunction[]; } -export { type AbstractableNodeStructureClassIfc, type AddExportContext, type AddImportContext, type AmbientableNodeStructureClassIfc, ArrayTypeStructureImpl, type AsyncableNodeStructureClassIfc, CallSignatureDeclarationImpl, type CallSignatureDeclarationStructureClassIfc, type ClassAbstractMemberQuestion, type ClassAsyncMethodQuestion, ClassDeclarationImpl, type ClassDeclarationStructureClassIfc, type ClassDeclarationWithImplementsTypeStructures, type ClassFieldStatement, ClassFieldStatementsMap, type ClassGeneratorMethodQuestion, type ClassMemberImpl, type ClassMemberStructureImpls, ClassMembersMap, type ClassScopeMemberQuestion, type ClassStatementsGetter, ClassStaticBlockDeclarationImpl, type ClassStaticBlockDeclarationStructureClassIfc, ClassSupportsStatementsFlags, ConditionalTypeStructureImpl, type ConditionalTypeStructureParts, ConstructSignatureDeclarationImpl, type ConstructSignatureDeclarationStructureClassIfc, ConstructorDeclarationImpl, ConstructorDeclarationOverloadImpl, type ConstructorDeclarationOverloadStructureClassIfc, type ConstructorDeclarationStructureClassIfc, type DecoratableNodeStructureClassIfc, DecoratorImpl, type DecoratorStructureClassIfc, EnumDeclarationImpl, type EnumDeclarationStructureClassIfc, EnumMemberImpl, type EnumMemberStructureClassIfc, type ExclamationTokenableNodeStructureClassIfc, ExportAssignmentImpl, type ExportAssignmentStructureClassIfc, ExportDeclarationImpl, type ExportDeclarationStructureClassIfc, ExportManager, ExportSpecifierImpl, type ExportSpecifierStructureClassIfc, type ExportableNodeStructureClassIfc, FunctionDeclarationImpl, FunctionDeclarationOverloadImpl, type FunctionDeclarationOverloadStructureClassIfc, type FunctionDeclarationStructureClassIfc, type FunctionTypeContext, FunctionTypeStructureImpl, FunctionWriterStyle, type GeneratorableNodeStructureClassIfc, GetAccessorDeclarationImpl, type GetAccessorDeclarationStructureClassIfc, ImportAttributeImpl, type ImportAttributeStructureClassIfc, ImportDeclarationImpl, type ImportDeclarationStructureClassIfc, ImportManager, ImportSpecifierImpl, type ImportSpecifierStructureClassIfc, ImportTypeStructureImpl, IndexSignatureDeclarationImpl, type IndexSignatureDeclarationStructureClassIfc, type IndexSignatureResolver, IndexedAccessTypeStructureImpl, InferTypeStructureImpl, type InitializerExpressionableNodeStructureClassIfc, InterfaceDeclarationImpl, type InterfaceDeclarationStructureClassIfc, type InterfaceDeclarationWithExtendsTypeStructures, type InterfaceMemberStructureImpls, IntersectionTypeStructureImpl, JSDocImpl, type JSDocStructureClassIfc, JSDocTagImpl, type JSDocTagStructureClassIfc, type JSDocableNodeStructureClassIfc, JsxAttributeImpl, type JsxAttributeStructureClassIfc, JsxElementImpl, type JsxElementStructureClassIfc, JsxSelfClosingElementImpl, type JsxSelfClosingElementStructureClassIfc, JsxSpreadAttributeImpl, type JsxSpreadAttributeStructureClassIfc, type JsxStructureImpls, type KindedTypeStructure, LiteralTypeStructureImpl, MappedTypeStructureImpl, MemberedObjectTypeStructureImpl, type MemberedStatementsKey, MemberedTypeToClass, MethodDeclarationImpl, MethodDeclarationOverloadImpl, type MethodDeclarationOverloadStructureClassIfc, type MethodDeclarationStructureClassIfc, MethodSignatureImpl, type MethodSignatureStructureClassIfc, ModuleDeclarationImpl, type ModuleDeclarationStructureClassIfc, type NameableNodeStructureClassIfc, type NamedClassMemberImpl, type NamedNodeStructureClassIfc, type NamedTypeMemberImpl, NumberTypeStructureImpl, type ObjectLiteralExpressionPropertyStructureImpls, type OverrideableNodeStructureClassIfc, ParameterDeclarationImpl, type ParameterDeclarationStructureClassIfc, ParameterTypeStructureImpl, type ParameteredNodeStructureClassIfc, ParenthesesTypeStructureImpl, PrefixOperatorsTypeStructureImpl, type PrefixUnaryOperator, PropertyAssignmentImpl, type PropertyAssignmentStructureClassIfc, PropertyDeclarationImpl, type PropertyDeclarationStructureClassIfc, PropertySignatureImpl, type PropertySignatureStructureClassIfc, QualifiedNameTypeStructureImpl, type QuestionTokenableNodeStructureClassIfc, type ReadonlyTypeMembersMap, type ReadonlyableNodeStructureClassIfc, type ReturnTypedNodeStructureClassIfc, type ReturnTypedNodeTypeStructure, type ScopedNodeStructureClassIfc, SetAccessorDeclarationImpl, type SetAccessorDeclarationStructureClassIfc, ShorthandPropertyAssignmentImpl, type ShorthandPropertyAssignmentStructureClassIfc, SourceFileImpl, type SourceFileStructureClassIfc, SpreadAssignmentImpl, type SpreadAssignmentStructureClassIfc, type StatementStructureImpls, type StatementedNodeStructureClassIfc, StringTypeStructureImpl, type StructureClassIfc, type StructureImpls, TemplateLiteralTypeStructureImpl, TupleTypeStructureImpl, TypeAliasDeclarationImpl, type TypeAliasDeclarationStructureClassIfc, TypeArgumentedTypeStructureImpl, type TypeElementMemberStructureImpls, type TypeMemberImpl, TypeMembersMap, type TypeNodeToTypeStructureConsole, TypeParameterDeclarationImpl, type TypeParameterDeclarationStructureClassIfc, type TypeParameterWithTypeStructures, type TypeParameteredNodeStructureClassIfc, TypeStructureKind, type TypeStructureSet, type TypeStructures, type TypeStructuresOrNull, type TypedNodeStructureClassIfc, type TypedNodeTypeStructure, UnionTypeStructureImpl, VariableDeclarationImpl, type VariableDeclarationStructureClassIfc, VariableStatementImpl, type VariableStatementStructureClassIfc, VoidTypeNodeToTypeStructureConsole, WriterTypeStructureImpl, forEachAugmentedStructureChild, getTypeAugmentedStructure, parseLiteralType, type stringOrWriterFunction, type stringWriterOrStatementImpl }; +export { type AbstractableNodeStructureClassIfc, type AccessorMirrorGetter, type AddExportContext, type AddImportContext, type AmbientableNodeStructureClassIfc, ArrayTypeStructureImpl, type AsyncableNodeStructureClassIfc, CallSignatureDeclarationImpl, type CallSignatureDeclarationStructureClassIfc, type ClassAbstractMemberQuestion, type ClassAsyncMethodQuestion, type ClassBodyStatementsGetter, ClassDeclarationImpl, type ClassDeclarationStructureClassIfc, type ClassDeclarationWithImplementsTypeStructures, type ClassFieldStatement, ClassFieldStatementsMap, type ClassGeneratorMethodQuestion, type ClassHeadStatementsGetter, type ClassMemberImpl, type ClassMemberStructureImpls, ClassMembersMap, type ClassScopeMemberQuestion, type ClassStatementsGetter, ClassStaticBlockDeclarationImpl, type ClassStaticBlockDeclarationStructureClassIfc, ClassSupportsStatementsFlags, type ClassTailStatementsGetter, ConditionalTypeStructureImpl, type ConditionalTypeStructureParts, ConstructSignatureDeclarationImpl, type ConstructSignatureDeclarationStructureClassIfc, type ConstructorBodyStatementsGetter, ConstructorDeclarationImpl, ConstructorDeclarationOverloadImpl, type ConstructorDeclarationOverloadStructureClassIfc, type ConstructorDeclarationStructureClassIfc, type ConstructorHeadStatementsGetter, type ConstructorTailStatementsGetter, type DecoratableNodeStructureClassIfc, DecoratorImpl, type DecoratorStructureClassIfc, EnumDeclarationImpl, type EnumDeclarationStructureClassIfc, EnumMemberImpl, type EnumMemberStructureClassIfc, type ExclamationTokenableNodeStructureClassIfc, ExportAssignmentImpl, type ExportAssignmentStructureClassIfc, ExportDeclarationImpl, type ExportDeclarationStructureClassIfc, ExportManager, ExportSpecifierImpl, type ExportSpecifierStructureClassIfc, type ExportableNodeStructureClassIfc, FunctionDeclarationImpl, FunctionDeclarationOverloadImpl, type FunctionDeclarationOverloadStructureClassIfc, type FunctionDeclarationStructureClassIfc, type FunctionTypeContext, FunctionTypeStructureImpl, FunctionWriterStyle, type GeneratorableNodeStructureClassIfc, GetAccessorDeclarationImpl, type GetAccessorDeclarationStructureClassIfc, ImportAttributeImpl, type ImportAttributeStructureClassIfc, ImportDeclarationImpl, type ImportDeclarationStructureClassIfc, ImportManager, ImportSpecifierImpl, type ImportSpecifierStructureClassIfc, ImportTypeStructureImpl, IndexSignatureDeclarationImpl, type IndexSignatureDeclarationStructureClassIfc, type IndexSignatureResolver, IndexedAccessTypeStructureImpl, InferTypeStructureImpl, type InitializerExpressionableNodeStructureClassIfc, InterfaceDeclarationImpl, type InterfaceDeclarationStructureClassIfc, type InterfaceDeclarationWithExtendsTypeStructures, type InterfaceMemberStructureImpls, IntersectionTypeStructureImpl, JSDocImpl, type JSDocStructureClassIfc, JSDocTagImpl, type JSDocTagStructureClassIfc, type JSDocableNodeStructureClassIfc, JsxAttributeImpl, type JsxAttributeStructureClassIfc, JsxElementImpl, type JsxElementStructureClassIfc, JsxSelfClosingElementImpl, type JsxSelfClosingElementStructureClassIfc, JsxSpreadAttributeImpl, type JsxSpreadAttributeStructureClassIfc, type JsxStructureImpls, type KindedTypeStructure, LiteralTypeStructureImpl, MappedTypeStructureImpl, MemberedObjectTypeStructureImpl, type MemberedStatementsKey, MemberedTypeToClass, MethodDeclarationImpl, MethodDeclarationOverloadImpl, type MethodDeclarationOverloadStructureClassIfc, type MethodDeclarationStructureClassIfc, MethodSignatureImpl, type MethodSignatureStructureClassIfc, ModuleDeclarationImpl, type ModuleDeclarationStructureClassIfc, type NameableNodeStructureClassIfc, type NamedClassMemberImpl, type NamedNodeStructureClassIfc, type NamedTypeMemberImpl, NumberTypeStructureImpl, type ObjectLiteralExpressionPropertyStructureImpls, type OverrideableNodeStructureClassIfc, ParameterDeclarationImpl, type ParameterDeclarationStructureClassIfc, ParameterTypeStructureImpl, type ParameteredNodeStructureClassIfc, ParenthesesTypeStructureImpl, PrefixOperatorsTypeStructureImpl, type PrefixUnaryOperator, PropertyAssignmentImpl, type PropertyAssignmentStructureClassIfc, PropertyDeclarationImpl, type PropertyDeclarationStructureClassIfc, type PropertyInitializerGetter, PropertySignatureImpl, type PropertySignatureStructureClassIfc, QualifiedNameTypeStructureImpl, type QuestionTokenableNodeStructureClassIfc, type ReadonlyTypeMembersMap, type ReadonlyableNodeStructureClassIfc, type ReturnTypedNodeStructureClassIfc, type ReturnTypedNodeTypeStructure, type ScopedNodeStructureClassIfc, SetAccessorDeclarationImpl, type SetAccessorDeclarationStructureClassIfc, ShorthandPropertyAssignmentImpl, type ShorthandPropertyAssignmentStructureClassIfc, SourceFileImpl, type SourceFileStructureClassIfc, SpreadAssignmentImpl, type SpreadAssignmentStructureClassIfc, type StatementStructureImpls, type StatementedNodeStructureClassIfc, StringTypeStructureImpl, type StructureClassIfc, type StructureImpls, TemplateLiteralTypeStructureImpl, TupleTypeStructureImpl, TypeAliasDeclarationImpl, type TypeAliasDeclarationStructureClassIfc, TypeArgumentedTypeStructureImpl, type TypeElementMemberStructureImpls, type TypeMemberImpl, TypeMembersMap, type TypeNodeToTypeStructureConsole, TypeParameterDeclarationImpl, type TypeParameterDeclarationStructureClassIfc, type TypeParameterWithTypeStructures, type TypeParameteredNodeStructureClassIfc, TypeStructureKind, type TypeStructureSet, type TypeStructures, type TypeStructuresOrNull, type TypedNodeStructureClassIfc, type TypedNodeTypeStructure, UnionTypeStructureImpl, VariableDeclarationImpl, type VariableDeclarationStructureClassIfc, VariableStatementImpl, type VariableStatementStructureClassIfc, VoidTypeNodeToTypeStructureConsole, WriterTypeStructureImpl, forEachAugmentedStructureChild, getTypeAugmentedStructure, parseLiteralType, type stringOrWriterFunction, type stringWriterOrStatementImpl }; diff --git a/dist/exports.js b/dist/exports.js index 6d26acb..5df4862 100644 --- a/dist/exports.js +++ b/dist/exports.js @@ -6053,8 +6053,7 @@ class MemberedTypeToClass { if (getter.filterPropertyInitializer(key) === false) continue; const statement = getter.getPropertyInitializer(key); - if (statement) - this.#addStatementsToMap(key, [statement]); + this.#addStatementsToMap(key, [statement]); break; } catch (ex) { @@ -6077,8 +6076,7 @@ class MemberedTypeToClass { if (getter.filterAccessorMirror(key) === false) continue; const statement = getter.getAccessorMirror(key); - if (statement) - this.#addStatementsToMap(key, [statement]); + this.#addStatementsToMap(key, [statement]); break; } catch (ex) { @@ -6131,8 +6129,6 @@ class MemberedTypeToClass { return errors; } #addStatementsToMap(keyClass, statementsArray) { - if (statementsArray.length === 0) - return; const statementsMap = this.#classFieldStatementsByPurpose.get(keyClass.purpose); statementsMap.set(keyClass.fieldKey, keyClass.statementGroupKey, statementsArray.slice()); } diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filteraccessormirror.md b/docs/api/ts-morph-structures.accessormirrorgetter.filteraccessormirror.md similarity index 53% rename from docs/api/ts-morph-structures.classstatementsgetter.filteraccessormirror.md rename to docs/api/ts-morph-structures.accessormirrorgetter.filteraccessormirror.md index d19edc7..a5bcede 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.filteraccessormirror.md +++ b/docs/api/ts-morph-structures.accessormirrorgetter.filteraccessormirror.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterAccessorMirror](./ts-morph-structures.classstatementsgetter.filteraccessormirror.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [AccessorMirrorGetter](./ts-morph-structures.accessormirrorgetter.md) > [filterAccessorMirror](./ts-morph-structures.accessormirrorgetter.filteraccessormirror.md) -## ClassStatementsGetter.filterAccessorMirror() method +## AccessorMirrorGetter.filterAccessorMirror() method **Signature:** ```typescript -filterAccessorMirror?(key: MemberedStatementsKey): boolean; +filterAccessorMirror(key: MemberedStatementsKey): boolean; ``` ## Parameters diff --git a/docs/api/ts-morph-structures.classstatementsgetter.getaccessormirror.md b/docs/api/ts-morph-structures.accessormirrorgetter.getaccessormirror.md similarity index 57% rename from docs/api/ts-morph-structures.classstatementsgetter.getaccessormirror.md rename to docs/api/ts-morph-structures.accessormirrorgetter.getaccessormirror.md index eed94a9..a3f8766 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.getaccessormirror.md +++ b/docs/api/ts-morph-structures.accessormirrorgetter.getaccessormirror.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getAccessorMirror](./ts-morph-structures.classstatementsgetter.getaccessormirror.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [AccessorMirrorGetter](./ts-morph-structures.accessormirrorgetter.md) > [getAccessorMirror](./ts-morph-structures.accessormirrorgetter.getaccessormirror.md) -## ClassStatementsGetter.getAccessorMirror() method +## AccessorMirrorGetter.getAccessorMirror() method **Signature:** ```typescript -getAccessorMirror?(key: MemberedStatementsKey): stringWriterOrStatementImpl; +getAccessorMirror(key: MemberedStatementsKey): stringWriterOrStatementImpl; ``` ## Parameters diff --git a/docs/api/ts-morph-structures.accessormirrorgetter.md b/docs/api/ts-morph-structures.accessormirrorgetter.md new file mode 100644 index 0000000..a57562d --- /dev/null +++ b/docs/api/ts-morph-structures.accessormirrorgetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [AccessorMirrorGetter](./ts-morph-structures.accessormirrorgetter.md) + +## AccessorMirrorGetter interface + +**Signature:** + +```typescript +export interface AccessorMirrorGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterAccessorMirror(key)](./ts-morph-structures.accessormirrorgetter.filteraccessormirror.md) | | +| [getAccessorMirror(key)](./ts-morph-structures.accessormirrorgetter.getaccessormirror.md) | | + diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filterbodystatements.md b/docs/api/ts-morph-structures.classbodystatementsgetter.filterbodystatements.md similarity index 52% rename from docs/api/ts-morph-structures.classstatementsgetter.filterbodystatements.md rename to docs/api/ts-morph-structures.classbodystatementsgetter.filterbodystatements.md index ac167fa..9b47a7c 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.filterbodystatements.md +++ b/docs/api/ts-morph-structures.classbodystatementsgetter.filterbodystatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterBodyStatements](./ts-morph-structures.classstatementsgetter.filterbodystatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassBodyStatementsGetter](./ts-morph-structures.classbodystatementsgetter.md) > [filterBodyStatements](./ts-morph-structures.classbodystatementsgetter.filterbodystatements.md) -## ClassStatementsGetter.filterBodyStatements() method +## ClassBodyStatementsGetter.filterBodyStatements() method **Signature:** ```typescript -filterBodyStatements?(key: MemberedStatementsKey): boolean; +filterBodyStatements(key: MemberedStatementsKey): boolean; ``` ## Parameters diff --git a/docs/api/ts-morph-structures.classstatementsgetter.getbodystatements.md b/docs/api/ts-morph-structures.classbodystatementsgetter.getbodystatements.md similarity index 65% rename from docs/api/ts-morph-structures.classstatementsgetter.getbodystatements.md rename to docs/api/ts-morph-structures.classbodystatementsgetter.getbodystatements.md index 310f817..c88ac27 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.getbodystatements.md +++ b/docs/api/ts-morph-structures.classbodystatementsgetter.getbodystatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getBodyStatements](./ts-morph-structures.classstatementsgetter.getbodystatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassBodyStatementsGetter](./ts-morph-structures.classbodystatementsgetter.md) > [getBodyStatements](./ts-morph-structures.classbodystatementsgetter.getbodystatements.md) -## ClassStatementsGetter.getBodyStatements() method +## ClassBodyStatementsGetter.getBodyStatements() method **Signature:** ```typescript -getBodyStatements?( +getBodyStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; ``` diff --git a/docs/api/ts-morph-structures.classbodystatementsgetter.md b/docs/api/ts-morph-structures.classbodystatementsgetter.md new file mode 100644 index 0000000..8599a8e --- /dev/null +++ b/docs/api/ts-morph-structures.classbodystatementsgetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassBodyStatementsGetter](./ts-morph-structures.classbodystatementsgetter.md) + +## ClassBodyStatementsGetter interface + +**Signature:** + +```typescript +export interface ClassBodyStatementsGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterBodyStatements(key)](./ts-morph-structures.classbodystatementsgetter.filterbodystatements.md) | | +| [getBodyStatements(key)](./ts-morph-structures.classbodystatementsgetter.getbodystatements.md) | | + diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filterheadstatements.md b/docs/api/ts-morph-structures.classheadstatementsgetter.filterheadstatements.md similarity index 52% rename from docs/api/ts-morph-structures.classstatementsgetter.filterheadstatements.md rename to docs/api/ts-morph-structures.classheadstatementsgetter.filterheadstatements.md index 733b040..73b07b8 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.filterheadstatements.md +++ b/docs/api/ts-morph-structures.classheadstatementsgetter.filterheadstatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterHeadStatements](./ts-morph-structures.classstatementsgetter.filterheadstatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassHeadStatementsGetter](./ts-morph-structures.classheadstatementsgetter.md) > [filterHeadStatements](./ts-morph-structures.classheadstatementsgetter.filterheadstatements.md) -## ClassStatementsGetter.filterHeadStatements() method +## ClassHeadStatementsGetter.filterHeadStatements() method **Signature:** ```typescript -filterHeadStatements?(key: MemberedStatementsKey): boolean; +filterHeadStatements(key: MemberedStatementsKey): boolean; ``` ## Parameters diff --git a/docs/api/ts-morph-structures.classstatementsgetter.gettailstatements.md b/docs/api/ts-morph-structures.classheadstatementsgetter.getheadstatements.md similarity index 65% rename from docs/api/ts-morph-structures.classstatementsgetter.gettailstatements.md rename to docs/api/ts-morph-structures.classheadstatementsgetter.getheadstatements.md index c71b2f3..54e344f 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.gettailstatements.md +++ b/docs/api/ts-morph-structures.classheadstatementsgetter.getheadstatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getTailStatements](./ts-morph-structures.classstatementsgetter.gettailstatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassHeadStatementsGetter](./ts-morph-structures.classheadstatementsgetter.md) > [getHeadStatements](./ts-morph-structures.classheadstatementsgetter.getheadstatements.md) -## ClassStatementsGetter.getTailStatements() method +## ClassHeadStatementsGetter.getHeadStatements() method **Signature:** ```typescript -getTailStatements?( +getHeadStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; ``` diff --git a/docs/api/ts-morph-structures.classheadstatementsgetter.md b/docs/api/ts-morph-structures.classheadstatementsgetter.md new file mode 100644 index 0000000..5f7d949 --- /dev/null +++ b/docs/api/ts-morph-structures.classheadstatementsgetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassHeadStatementsGetter](./ts-morph-structures.classheadstatementsgetter.md) + +## ClassHeadStatementsGetter interface + +**Signature:** + +```typescript +export interface ClassHeadStatementsGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterHeadStatements(key)](./ts-morph-structures.classheadstatementsgetter.filterheadstatements.md) | | +| [getHeadStatements(key)](./ts-morph-structures.classheadstatementsgetter.getheadstatements.md) | | + diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filterctorheadstatements.md b/docs/api/ts-morph-structures.classstatementsgetter.filterctorheadstatements.md deleted file mode 100644 index c201881..0000000 --- a/docs/api/ts-morph-structures.classstatementsgetter.filterctorheadstatements.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterCtorHeadStatements](./ts-morph-structures.classstatementsgetter.filterctorheadstatements.md) - -## ClassStatementsGetter.filterCtorHeadStatements() method - -**Signature:** - -```typescript -filterCtorHeadStatements?(key: MemberedStatementsKey): boolean; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| key | [MemberedStatementsKey](./ts-morph-structures.memberedstatementskey.md) | | - -**Returns:** - -boolean - diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filterctortailstatements.md b/docs/api/ts-morph-structures.classstatementsgetter.filterctortailstatements.md deleted file mode 100644 index 6a1b6b9..0000000 --- a/docs/api/ts-morph-structures.classstatementsgetter.filterctortailstatements.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterCtorTailStatements](./ts-morph-structures.classstatementsgetter.filterctortailstatements.md) - -## ClassStatementsGetter.filterCtorTailStatements() method - -**Signature:** - -```typescript -filterCtorTailStatements?(key: MemberedStatementsKey): boolean; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| key | [MemberedStatementsKey](./ts-morph-structures.memberedstatementskey.md) | | - -**Returns:** - -boolean - diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filterpropertyinitializer.md b/docs/api/ts-morph-structures.classstatementsgetter.filterpropertyinitializer.md deleted file mode 100644 index 29d2c67..0000000 --- a/docs/api/ts-morph-structures.classstatementsgetter.filterpropertyinitializer.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterPropertyInitializer](./ts-morph-structures.classstatementsgetter.filterpropertyinitializer.md) - -## ClassStatementsGetter.filterPropertyInitializer() method - -**Signature:** - -```typescript -filterPropertyInitializer?(key: MemberedStatementsKey): boolean; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| key | [MemberedStatementsKey](./ts-morph-structures.memberedstatementskey.md) | | - -**Returns:** - -boolean - diff --git a/docs/api/ts-morph-structures.classstatementsgetter.getctorheadstatements.md b/docs/api/ts-morph-structures.classstatementsgetter.getctorheadstatements.md deleted file mode 100644 index 1180a1e..0000000 --- a/docs/api/ts-morph-structures.classstatementsgetter.getctorheadstatements.md +++ /dev/null @@ -1,15 +0,0 @@ - - -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getCtorHeadStatements](./ts-morph-structures.classstatementsgetter.getctorheadstatements.md) - -## ClassStatementsGetter.getCtorHeadStatements() method - -**Signature:** - -```typescript -getCtorHeadStatements?(): readonly stringWriterOrStatementImpl[]; -``` -**Returns:** - -readonly [stringWriterOrStatementImpl](./ts-morph-structures.stringwriterorstatementimpl.md)\[\] - diff --git a/docs/api/ts-morph-structures.classstatementsgetter.md b/docs/api/ts-morph-structures.classstatementsgetter.md index 06b1e8b..441bc6a 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.md +++ b/docs/api/ts-morph-structures.classstatementsgetter.md @@ -7,34 +7,22 @@ **Signature:** ```typescript -export interface ClassStatementsGetter +export interface ClassStatementsGetter + extends Partial, + Partial, + Partial, + Partial, + Partial, + Partial, + Partial, + Partial ``` +**Extends:** Partial<[PropertyInitializerGetter](./ts-morph-structures.propertyinitializergetter.md)>, Partial<[AccessorMirrorGetter](./ts-morph-structures.accessormirrorgetter.md)>, Partial<[ClassHeadStatementsGetter](./ts-morph-structures.classheadstatementsgetter.md)>, Partial<[ClassBodyStatementsGetter](./ts-morph-structures.classbodystatementsgetter.md)>, Partial<[ClassTailStatementsGetter](./ts-morph-structures.classtailstatementsgetter.md)>, Partial<[ConstructorHeadStatementsGetter](./ts-morph-structures.constructorheadstatementsgetter.md)>, Partial<[ConstructorBodyStatementsGetter](./ts-morph-structures.constructorbodystatementsgetter.md)>, Partial<[ConstructorTailStatementsGetter](./ts-morph-structures.constructortailstatementsgetter.md)> ## Properties | Property | Modifiers | Type | Description | | --- | --- | --- | --- | | [keyword](./ts-morph-structures.classstatementsgetter.keyword.md) | | readonly string | | -| [supportsStatementFlags](./ts-morph-structures.classstatementsgetter.supportsstatementflags.md) | | readonly number | | - -## Methods - -| Method | Description | -| --- | --- | -| [filterAccessorMirror(key)?](./ts-morph-structures.classstatementsgetter.filteraccessormirror.md) | _(Optional)_ | -| [filterBodyStatements(key)?](./ts-morph-structures.classstatementsgetter.filterbodystatements.md) | _(Optional)_ | -| [filterCtorBodyStatements(key)?](./ts-morph-structures.classstatementsgetter.filterctorbodystatements.md) | _(Optional)_ | -| [filterCtorHeadStatements(key)?](./ts-morph-structures.classstatementsgetter.filterctorheadstatements.md) | _(Optional)_ | -| [filterCtorTailStatements(key)?](./ts-morph-structures.classstatementsgetter.filterctortailstatements.md) | _(Optional)_ | -| [filterHeadStatements(key)?](./ts-morph-structures.classstatementsgetter.filterheadstatements.md) | _(Optional)_ | -| [filterPropertyInitializer(key)?](./ts-morph-structures.classstatementsgetter.filterpropertyinitializer.md) | _(Optional)_ | -| [filterTailStatements(key)?](./ts-morph-structures.classstatementsgetter.filtertailstatements.md) | _(Optional)_ | -| [getAccessorMirror(key)?](./ts-morph-structures.classstatementsgetter.getaccessormirror.md) | _(Optional)_ | -| [getBodyStatements(key)?](./ts-morph-structures.classstatementsgetter.getbodystatements.md) | _(Optional)_ | -| [getCtorBodyStatements(key)?](./ts-morph-structures.classstatementsgetter.getctorbodystatements.md) | _(Optional)_ | -| [getCtorHeadStatements()?](./ts-morph-structures.classstatementsgetter.getctorheadstatements.md) | _(Optional)_ | -| [getCtorTailStatements(key)?](./ts-morph-structures.classstatementsgetter.getctortailstatements.md) | _(Optional)_ | -| [getHeadStatements(key)?](./ts-morph-structures.classstatementsgetter.getheadstatements.md) | _(Optional)_ | -| [getPropertyInitializer(key)?](./ts-morph-structures.classstatementsgetter.getpropertyinitializer.md) | _(Optional)_ | -| [getTailStatements(key)?](./ts-morph-structures.classstatementsgetter.gettailstatements.md) | _(Optional)_ | +| [supportsStatementFlags](./ts-morph-structures.classstatementsgetter.supportsstatementflags.md) | | readonly NonNegativeInteger | | diff --git a/docs/api/ts-morph-structures.classstatementsgetter.supportsstatementflags.md b/docs/api/ts-morph-structures.classstatementsgetter.supportsstatementflags.md index 2f2141b..e3f6a18 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.supportsstatementflags.md +++ b/docs/api/ts-morph-structures.classstatementsgetter.supportsstatementflags.md @@ -7,5 +7,5 @@ **Signature:** ```typescript -supportsStatementFlags: readonly number; +supportsStatementFlags: readonly NonNegativeInteger; ``` diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filtertailstatements.md b/docs/api/ts-morph-structures.classtailstatementsgetter.filtertailstatements.md similarity index 52% rename from docs/api/ts-morph-structures.classstatementsgetter.filtertailstatements.md rename to docs/api/ts-morph-structures.classtailstatementsgetter.filtertailstatements.md index c56f442..c58c3f7 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.filtertailstatements.md +++ b/docs/api/ts-morph-structures.classtailstatementsgetter.filtertailstatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterTailStatements](./ts-morph-structures.classstatementsgetter.filtertailstatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassTailStatementsGetter](./ts-morph-structures.classtailstatementsgetter.md) > [filterTailStatements](./ts-morph-structures.classtailstatementsgetter.filtertailstatements.md) -## ClassStatementsGetter.filterTailStatements() method +## ClassTailStatementsGetter.filterTailStatements() method **Signature:** ```typescript -filterTailStatements?(key: MemberedStatementsKey): boolean; +filterTailStatements(key: MemberedStatementsKey): boolean; ``` ## Parameters diff --git a/docs/api/ts-morph-structures.classstatementsgetter.getheadstatements.md b/docs/api/ts-morph-structures.classtailstatementsgetter.gettailstatements.md similarity index 65% rename from docs/api/ts-morph-structures.classstatementsgetter.getheadstatements.md rename to docs/api/ts-morph-structures.classtailstatementsgetter.gettailstatements.md index 0c9948e..0b101e8 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.getheadstatements.md +++ b/docs/api/ts-morph-structures.classtailstatementsgetter.gettailstatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getHeadStatements](./ts-morph-structures.classstatementsgetter.getheadstatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassTailStatementsGetter](./ts-morph-structures.classtailstatementsgetter.md) > [getTailStatements](./ts-morph-structures.classtailstatementsgetter.gettailstatements.md) -## ClassStatementsGetter.getHeadStatements() method +## ClassTailStatementsGetter.getTailStatements() method **Signature:** ```typescript -getHeadStatements?( +getTailStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; ``` diff --git a/docs/api/ts-morph-structures.classtailstatementsgetter.md b/docs/api/ts-morph-structures.classtailstatementsgetter.md new file mode 100644 index 0000000..ec6bf2a --- /dev/null +++ b/docs/api/ts-morph-structures.classtailstatementsgetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassTailStatementsGetter](./ts-morph-structures.classtailstatementsgetter.md) + +## ClassTailStatementsGetter interface + +**Signature:** + +```typescript +export interface ClassTailStatementsGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterTailStatements(key)](./ts-morph-structures.classtailstatementsgetter.filtertailstatements.md) | | +| [getTailStatements(key)](./ts-morph-structures.classtailstatementsgetter.gettailstatements.md) | | + diff --git a/docs/api/ts-morph-structures.constructorbodystatementsgetter.filterctorbodystatements.md b/docs/api/ts-morph-structures.constructorbodystatementsgetter.filterctorbodystatements.md new file mode 100644 index 0000000..97afabe --- /dev/null +++ b/docs/api/ts-morph-structures.constructorbodystatementsgetter.filterctorbodystatements.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorBodyStatementsGetter](./ts-morph-structures.constructorbodystatementsgetter.md) > [filterCtorBodyStatements](./ts-morph-structures.constructorbodystatementsgetter.filterctorbodystatements.md) + +## ConstructorBodyStatementsGetter.filterCtorBodyStatements() method + +**Signature:** + +```typescript +filterCtorBodyStatements(key: MemberedStatementsKey): boolean; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| key | [MemberedStatementsKey](./ts-morph-structures.memberedstatementskey.md) | | + +**Returns:** + +boolean + diff --git a/docs/api/ts-morph-structures.classstatementsgetter.getctorbodystatements.md b/docs/api/ts-morph-structures.constructorbodystatementsgetter.getctorbodystatements.md similarity index 62% rename from docs/api/ts-morph-structures.classstatementsgetter.getctorbodystatements.md rename to docs/api/ts-morph-structures.constructorbodystatementsgetter.getctorbodystatements.md index f77f583..1e6a6ed 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.getctorbodystatements.md +++ b/docs/api/ts-morph-structures.constructorbodystatementsgetter.getctorbodystatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getCtorBodyStatements](./ts-morph-structures.classstatementsgetter.getctorbodystatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorBodyStatementsGetter](./ts-morph-structures.constructorbodystatementsgetter.md) > [getCtorBodyStatements](./ts-morph-structures.constructorbodystatementsgetter.getctorbodystatements.md) -## ClassStatementsGetter.getCtorBodyStatements() method +## ConstructorBodyStatementsGetter.getCtorBodyStatements() method **Signature:** ```typescript -getCtorBodyStatements?( +getCtorBodyStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; ``` diff --git a/docs/api/ts-morph-structures.constructorbodystatementsgetter.md b/docs/api/ts-morph-structures.constructorbodystatementsgetter.md new file mode 100644 index 0000000..941d258 --- /dev/null +++ b/docs/api/ts-morph-structures.constructorbodystatementsgetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorBodyStatementsGetter](./ts-morph-structures.constructorbodystatementsgetter.md) + +## ConstructorBodyStatementsGetter interface + +**Signature:** + +```typescript +export interface ConstructorBodyStatementsGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterCtorBodyStatements(key)](./ts-morph-structures.constructorbodystatementsgetter.filterctorbodystatements.md) | | +| [getCtorBodyStatements(key)](./ts-morph-structures.constructorbodystatementsgetter.getctorbodystatements.md) | | + diff --git a/docs/api/ts-morph-structures.constructorheadstatementsgetter.filterctorheadstatements.md b/docs/api/ts-morph-structures.constructorheadstatementsgetter.filterctorheadstatements.md new file mode 100644 index 0000000..04aa77e --- /dev/null +++ b/docs/api/ts-morph-structures.constructorheadstatementsgetter.filterctorheadstatements.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorHeadStatementsGetter](./ts-morph-structures.constructorheadstatementsgetter.md) > [filterCtorHeadStatements](./ts-morph-structures.constructorheadstatementsgetter.filterctorheadstatements.md) + +## ConstructorHeadStatementsGetter.filterCtorHeadStatements() method + +**Signature:** + +```typescript +filterCtorHeadStatements(key: MemberedStatementsKey): boolean; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| key | [MemberedStatementsKey](./ts-morph-structures.memberedstatementskey.md) | | + +**Returns:** + +boolean + diff --git a/docs/api/ts-morph-structures.classstatementsgetter.getctortailstatements.md b/docs/api/ts-morph-structures.constructorheadstatementsgetter.getctorheadstatements.md similarity index 62% rename from docs/api/ts-morph-structures.classstatementsgetter.getctortailstatements.md rename to docs/api/ts-morph-structures.constructorheadstatementsgetter.getctorheadstatements.md index e306b83..45ef0fc 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.getctortailstatements.md +++ b/docs/api/ts-morph-structures.constructorheadstatementsgetter.getctorheadstatements.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getCtorTailStatements](./ts-morph-structures.classstatementsgetter.getctortailstatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorHeadStatementsGetter](./ts-morph-structures.constructorheadstatementsgetter.md) > [getCtorHeadStatements](./ts-morph-structures.constructorheadstatementsgetter.getctorheadstatements.md) -## ClassStatementsGetter.getCtorTailStatements() method +## ConstructorHeadStatementsGetter.getCtorHeadStatements() method **Signature:** ```typescript -getCtorTailStatements?( +getCtorHeadStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; ``` diff --git a/docs/api/ts-morph-structures.constructorheadstatementsgetter.md b/docs/api/ts-morph-structures.constructorheadstatementsgetter.md new file mode 100644 index 0000000..ce1433d --- /dev/null +++ b/docs/api/ts-morph-structures.constructorheadstatementsgetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorHeadStatementsGetter](./ts-morph-structures.constructorheadstatementsgetter.md) + +## ConstructorHeadStatementsGetter interface + +**Signature:** + +```typescript +export interface ConstructorHeadStatementsGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterCtorHeadStatements(key)](./ts-morph-structures.constructorheadstatementsgetter.filterctorheadstatements.md) | | +| [getCtorHeadStatements(key)](./ts-morph-structures.constructorheadstatementsgetter.getctorheadstatements.md) | | + diff --git a/docs/api/ts-morph-structures.constructortailstatementsgetter.filterctortailstatements.md b/docs/api/ts-morph-structures.constructortailstatementsgetter.filterctortailstatements.md new file mode 100644 index 0000000..6370a70 --- /dev/null +++ b/docs/api/ts-morph-structures.constructortailstatementsgetter.filterctortailstatements.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorTailStatementsGetter](./ts-morph-structures.constructortailstatementsgetter.md) > [filterCtorTailStatements](./ts-morph-structures.constructortailstatementsgetter.filterctortailstatements.md) + +## ConstructorTailStatementsGetter.filterCtorTailStatements() method + +**Signature:** + +```typescript +filterCtorTailStatements(key: MemberedStatementsKey): boolean; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| key | [MemberedStatementsKey](./ts-morph-structures.memberedstatementskey.md) | | + +**Returns:** + +boolean + diff --git a/docs/api/ts-morph-structures.constructortailstatementsgetter.getctortailstatements.md b/docs/api/ts-morph-structures.constructortailstatementsgetter.getctortailstatements.md new file mode 100644 index 0000000..9572c8e --- /dev/null +++ b/docs/api/ts-morph-structures.constructortailstatementsgetter.getctortailstatements.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorTailStatementsGetter](./ts-morph-structures.constructortailstatementsgetter.md) > [getCtorTailStatements](./ts-morph-structures.constructortailstatementsgetter.getctortailstatements.md) + +## ConstructorTailStatementsGetter.getCtorTailStatements() method + +**Signature:** + +```typescript +getCtorTailStatements( + key: MemberedStatementsKey, + ): readonly stringWriterOrStatementImpl[]; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| key | [MemberedStatementsKey](./ts-morph-structures.memberedstatementskey.md) | | + +**Returns:** + +readonly [stringWriterOrStatementImpl](./ts-morph-structures.stringwriterorstatementimpl.md)\[\] + diff --git a/docs/api/ts-morph-structures.constructortailstatementsgetter.md b/docs/api/ts-morph-structures.constructortailstatementsgetter.md new file mode 100644 index 0000000..95d61d8 --- /dev/null +++ b/docs/api/ts-morph-structures.constructortailstatementsgetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ConstructorTailStatementsGetter](./ts-morph-structures.constructortailstatementsgetter.md) + +## ConstructorTailStatementsGetter interface + +**Signature:** + +```typescript +export interface ConstructorTailStatementsGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterCtorTailStatements(key)](./ts-morph-structures.constructortailstatementsgetter.filterctortailstatements.md) | | +| [getCtorTailStatements(key)](./ts-morph-structures.constructortailstatementsgetter.getctortailstatements.md) | | + diff --git a/docs/api/ts-morph-structures.md b/docs/api/ts-morph-structures.md index 323d6f8..315abc5 100644 --- a/docs/api/ts-morph-structures.md +++ b/docs/api/ts-morph-structures.md @@ -101,6 +101,7 @@ | Interface | Description | | --- | --- | | [AbstractableNodeStructureClassIfc](./ts-morph-structures.abstractablenodestructureclassifc.md) | | +| [AccessorMirrorGetter](./ts-morph-structures.accessormirrorgetter.md) | | | [AddExportContext](./ts-morph-structures.addexportcontext.md) | A description of the exports to add. | | [AddImportContext](./ts-morph-structures.addimportcontext.md) | A description of the imports to add. | | [AmbientableNodeStructureClassIfc](./ts-morph-structures.ambientablenodestructureclassifc.md) | | @@ -108,15 +109,21 @@ | [CallSignatureDeclarationStructureClassIfc](./ts-morph-structures.callsignaturedeclarationstructureclassifc.md) | | | [ClassAbstractMemberQuestion](./ts-morph-structures.classabstractmemberquestion.md) | | | [ClassAsyncMethodQuestion](./ts-morph-structures.classasyncmethodquestion.md) | | +| [ClassBodyStatementsGetter](./ts-morph-structures.classbodystatementsgetter.md) | | | [ClassDeclarationStructureClassIfc](./ts-morph-structures.classdeclarationstructureclassifc.md) | | | [ClassDeclarationWithImplementsTypeStructures](./ts-morph-structures.classdeclarationwithimplementstypestructures.md) | | | [ClassGeneratorMethodQuestion](./ts-morph-structures.classgeneratormethodquestion.md) | | +| [ClassHeadStatementsGetter](./ts-morph-structures.classheadstatementsgetter.md) | | | [ClassScopeMemberQuestion](./ts-morph-structures.classscopememberquestion.md) | | | [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) | | | [ClassStaticBlockDeclarationStructureClassIfc](./ts-morph-structures.classstaticblockdeclarationstructureclassifc.md) | | +| [ClassTailStatementsGetter](./ts-morph-structures.classtailstatementsgetter.md) | | | [ConditionalTypeStructureParts](./ts-morph-structures.conditionaltypestructureparts.md) | | +| [ConstructorBodyStatementsGetter](./ts-morph-structures.constructorbodystatementsgetter.md) | | | [ConstructorDeclarationOverloadStructureClassIfc](./ts-morph-structures.constructordeclarationoverloadstructureclassifc.md) | | | [ConstructorDeclarationStructureClassIfc](./ts-morph-structures.constructordeclarationstructureclassifc.md) | | +| [ConstructorHeadStatementsGetter](./ts-morph-structures.constructorheadstatementsgetter.md) | | +| [ConstructorTailStatementsGetter](./ts-morph-structures.constructortailstatementsgetter.md) | | | [ConstructSignatureDeclarationStructureClassIfc](./ts-morph-structures.constructsignaturedeclarationstructureclassifc.md) | | | [DecoratableNodeStructureClassIfc](./ts-morph-structures.decoratablenodestructureclassifc.md) | | | [DecoratorStructureClassIfc](./ts-morph-structures.decoratorstructureclassifc.md) | | @@ -160,6 +167,7 @@ | [ParameteredNodeStructureClassIfc](./ts-morph-structures.parameterednodestructureclassifc.md) | | | [PropertyAssignmentStructureClassIfc](./ts-morph-structures.propertyassignmentstructureclassifc.md) | | | [PropertyDeclarationStructureClassIfc](./ts-morph-structures.propertydeclarationstructureclassifc.md) | | +| [PropertyInitializerGetter](./ts-morph-structures.propertyinitializergetter.md) | | | [PropertySignatureStructureClassIfc](./ts-morph-structures.propertysignaturestructureclassifc.md) | | | [QuestionTokenableNodeStructureClassIfc](./ts-morph-structures.questiontokenablenodestructureclassifc.md) | | | [ReadonlyableNodeStructureClassIfc](./ts-morph-structures.readonlyablenodestructureclassifc.md) | | diff --git a/docs/api/ts-morph-structures.classstatementsgetter.filterctorbodystatements.md b/docs/api/ts-morph-structures.propertyinitializergetter.filterpropertyinitializer.md similarity index 50% rename from docs/api/ts-morph-structures.classstatementsgetter.filterctorbodystatements.md rename to docs/api/ts-morph-structures.propertyinitializergetter.filterpropertyinitializer.md index aed77f6..159396a 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.filterctorbodystatements.md +++ b/docs/api/ts-morph-structures.propertyinitializergetter.filterpropertyinitializer.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [filterCtorBodyStatements](./ts-morph-structures.classstatementsgetter.filterctorbodystatements.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [PropertyInitializerGetter](./ts-morph-structures.propertyinitializergetter.md) > [filterPropertyInitializer](./ts-morph-structures.propertyinitializergetter.filterpropertyinitializer.md) -## ClassStatementsGetter.filterCtorBodyStatements() method +## PropertyInitializerGetter.filterPropertyInitializer() method **Signature:** ```typescript -filterCtorBodyStatements?(key: MemberedStatementsKey): boolean; +filterPropertyInitializer(key: MemberedStatementsKey): boolean; ``` ## Parameters diff --git a/docs/api/ts-morph-structures.classstatementsgetter.getpropertyinitializer.md b/docs/api/ts-morph-structures.propertyinitializergetter.getpropertyinitializer.md similarity index 62% rename from docs/api/ts-morph-structures.classstatementsgetter.getpropertyinitializer.md rename to docs/api/ts-morph-structures.propertyinitializergetter.getpropertyinitializer.md index ae75f38..77a8ab8 100644 --- a/docs/api/ts-morph-structures.classstatementsgetter.getpropertyinitializer.md +++ b/docs/api/ts-morph-structures.propertyinitializergetter.getpropertyinitializer.md @@ -1,13 +1,13 @@ -[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [ClassStatementsGetter](./ts-morph-structures.classstatementsgetter.md) > [getPropertyInitializer](./ts-morph-structures.classstatementsgetter.getpropertyinitializer.md) +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [PropertyInitializerGetter](./ts-morph-structures.propertyinitializergetter.md) > [getPropertyInitializer](./ts-morph-structures.propertyinitializergetter.getpropertyinitializer.md) -## ClassStatementsGetter.getPropertyInitializer() method +## PropertyInitializerGetter.getPropertyInitializer() method **Signature:** ```typescript -getPropertyInitializer?( +getPropertyInitializer( key: MemberedStatementsKey, ): stringWriterOrStatementImpl; ``` diff --git a/docs/api/ts-morph-structures.propertyinitializergetter.md b/docs/api/ts-morph-structures.propertyinitializergetter.md new file mode 100644 index 0000000..830231f --- /dev/null +++ b/docs/api/ts-morph-structures.propertyinitializergetter.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [ts-morph-structures](./ts-morph-structures.md) > [PropertyInitializerGetter](./ts-morph-structures.propertyinitializergetter.md) + +## PropertyInitializerGetter interface + +**Signature:** + +```typescript +export interface PropertyInitializerGetter +``` + +## Methods + +| Method | Description | +| --- | --- | +| [filterPropertyInitializer(key)](./ts-morph-structures.propertyinitializergetter.filterpropertyinitializer.md) | | +| [getPropertyInitializer(key)](./ts-morph-structures.propertyinitializergetter.getpropertyinitializer.md) | | + diff --git a/stage_2_generation/build/publicAndInternalExports.ts b/stage_2_generation/build/publicAndInternalExports.ts index 9e84d04..db24548 100644 --- a/stage_2_generation/build/publicAndInternalExports.ts +++ b/stage_2_generation/build/publicAndInternalExports.ts @@ -186,19 +186,27 @@ function definePublicExports( dictionaries.publicExports.addExports({ absolutePathToModule: path.join(distDir, "source/toolbox/types/toolbox.d.ts"), exportNames: [ + "AccessorMirrorGetter", "AddExportContext", "AddImportContext", "ClassAbstractMemberQuestion", "ClassAsyncMethodQuestion", + "ClassBodyStatementsGetter", "ClassFieldStatement", "ClassGeneratorMethodQuestion", + "ClassHeadStatementsGetter", "ClassMemberImpl", "ClassScopeMemberQuestion", "ClassStatementsGetter", + "ClassTailStatementsGetter", + "ConstructorBodyStatementsGetter", + "ConstructorHeadStatementsGetter", + "ConstructorTailStatementsGetter", "IndexSignatureResolver", "MemberedStatementsKey", "NamedClassMemberImpl", "NamedTypeMemberImpl", + "PropertyInitializerGetter", "TypeMemberImpl", "stringWriterOrStatementImpl", ], diff --git a/stage_2_integration/source/toolbox/MemberedTypeToClass.ts b/stage_2_integration/source/toolbox/MemberedTypeToClass.ts index 93885a5..ab153e7 100644 --- a/stage_2_integration/source/toolbox/MemberedTypeToClass.ts +++ b/stage_2_integration/source/toolbox/MemberedTypeToClass.ts @@ -971,8 +971,7 @@ export default class MemberedTypeToClass { if (getter.filterPropertyInitializer!(key) === false) continue; const statement = getter.getPropertyInitializer!(key); - if (statement) - this.#addStatementsToMap(key, [statement]); + this.#addStatementsToMap(key, [statement]); break; } catch (ex) { @@ -1000,8 +999,7 @@ export default class MemberedTypeToClass { if (getter.filterAccessorMirror!(key) === false) continue; const statement = getter.getAccessorMirror!(key); - if (statement) - this.#addStatementsToMap(key, [statement]); + this.#addStatementsToMap(key, [statement]); break; } catch (ex) { @@ -1104,9 +1102,6 @@ export default class MemberedTypeToClass { statementsArray: readonly stringWriterOrStatementImpl[] ): void { - if (statementsArray.length === 0) - return; - const statementsMap: ClassFieldStatementsMap = this.#classFieldStatementsByPurpose.get(keyClass.purpose)!; statementsMap.set(keyClass.fieldKey, keyClass.statementGroupKey, statementsArray.slice()); diff --git a/stage_2_integration/source/toolbox/types/toolbox.d.ts b/stage_2_integration/source/toolbox/types/toolbox.d.ts index d033176..695509c 100644 --- a/stage_2_integration/source/toolbox/types/toolbox.d.ts +++ b/stage_2_integration/source/toolbox/types/toolbox.d.ts @@ -3,6 +3,10 @@ import type { WriterFunction, } from "ts-morph"; +import { + NonNegativeInteger +} from "type-fest"; + import type { CallSignatureDeclarationImpl, ConstructorDeclarationImpl, @@ -126,31 +130,51 @@ export type TypeMemberImpl = ( export type stringWriterOrStatementImpl = stringOrWriterFunction | StatementStructureImpls; -export interface ClassStatementsGetter { - supportsStatementFlags: readonly number; - keyword: readonly string; +export interface PropertyInitializerGetter { + filterPropertyInitializer(key: MemberedStatementsKey): boolean; + getPropertyInitializer(key: MemberedStatementsKey): stringWriterOrStatementImpl; +} - filterPropertyInitializer?(key: MemberedStatementsKey): boolean; - getPropertyInitializer?(key: MemberedStatementsKey): stringWriterOrStatementImpl; +export interface AccessorMirrorGetter { + filterAccessorMirror(key: MemberedStatementsKey): boolean; + getAccessorMirror(key: MemberedStatementsKey): stringWriterOrStatementImpl; +} - filterAccessorMirror?(key: MemberedStatementsKey): boolean; - getAccessorMirror?(key: MemberedStatementsKey): stringWriterOrStatementImpl; +export interface ClassHeadStatementsGetter { + filterHeadStatements(key: MemberedStatementsKey): boolean; + getHeadStatements(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +} - filterHeadStatements?(key: MemberedStatementsKey): boolean; - getHeadStatements?(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +export interface ClassBodyStatementsGetter { + filterBodyStatements(key: MemberedStatementsKey): boolean; + getBodyStatements(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +} - filterBodyStatements?(key: MemberedStatementsKey): boolean; - getBodyStatements?(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +export interface ClassTailStatementsGetter { + filterTailStatements(key: MemberedStatementsKey): boolean; + getTailStatements(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +} - filterTailStatements?(key: MemberedStatementsKey): boolean; - getTailStatements?(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +export interface ConstructorHeadStatementsGetter { + filterCtorHeadStatements(key: MemberedStatementsKey): boolean; + getCtorHeadStatements(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +} - filterCtorHeadStatements?(key: MemberedStatementsKey): boolean; - getCtorHeadStatements?(): readonly stringWriterOrStatementImpl[]; +export interface ConstructorBodyStatementsGetter { + filterCtorBodyStatements(key: MemberedStatementsKey): boolean; + getCtorBodyStatements(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +} - filterCtorBodyStatements?(key: MemberedStatementsKey): boolean; - getCtorBodyStatements?(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +export interface ConstructorTailStatementsGetter { + filterCtorTailStatements(key: MemberedStatementsKey): boolean; + getCtorTailStatements(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +} - filterCtorTailStatements?(key: MemberedStatementsKey): boolean; - getCtorTailStatements?(key: MemberedStatementsKey): readonly stringWriterOrStatementImpl[]; +export interface ClassStatementsGetter +extends Partial, Partial, +Partial, Partial, Partial, +Partial, Partial, Partial +{ + keyword: readonly string; + supportsStatementFlags: readonly NonNegativeInteger; } diff --git a/stage_2_snapshot/snapshot/source/exports.ts b/stage_2_snapshot/snapshot/source/exports.ts index e387bca..3dfd058 100644 --- a/stage_2_snapshot/snapshot/source/exports.ts +++ b/stage_2_snapshot/snapshot/source/exports.ts @@ -164,19 +164,27 @@ export { type ReadonlyTypeMembersMap, } from "./toolbox/TypeMembersMap.js"; export type { + AccessorMirrorGetter, AddExportContext, AddImportContext, ClassAbstractMemberQuestion, ClassAsyncMethodQuestion, + ClassBodyStatementsGetter, ClassFieldStatement, ClassGeneratorMethodQuestion, + ClassHeadStatementsGetter, ClassMemberImpl, ClassScopeMemberQuestion, ClassStatementsGetter, + ClassTailStatementsGetter, + ConstructorBodyStatementsGetter, + ConstructorHeadStatementsGetter, + ConstructorTailStatementsGetter, IndexSignatureResolver, MemberedStatementsKey, NamedClassMemberImpl, NamedTypeMemberImpl, + PropertyInitializerGetter, stringWriterOrStatementImpl, TypeMemberImpl, } from "./toolbox/types/toolbox.js"; diff --git a/stage_2_snapshot/snapshot/source/toolbox/MemberedTypeToClass.ts b/stage_2_snapshot/snapshot/source/toolbox/MemberedTypeToClass.ts index d913b16..bf0559a 100644 --- a/stage_2_snapshot/snapshot/source/toolbox/MemberedTypeToClass.ts +++ b/stage_2_snapshot/snapshot/source/toolbox/MemberedTypeToClass.ts @@ -1065,7 +1065,7 @@ export default class MemberedTypeToClass { try { if (getter.filterPropertyInitializer!(key) === false) continue; const statement = getter.getPropertyInitializer!(key); - if (statement) this.#addStatementsToMap(key, [statement]); + this.#addStatementsToMap(key, [statement]); break; } catch (ex) { errors.push(ex as Error); @@ -1096,7 +1096,7 @@ export default class MemberedTypeToClass { try { if (getter.filterAccessorMirror!(key) === false) continue; const statement = getter.getAccessorMirror!(key); - if (statement) this.#addStatementsToMap(key, [statement]); + this.#addStatementsToMap(key, [statement]); break; } catch (ex) { errors.push(ex as Error); @@ -1190,8 +1190,6 @@ export default class MemberedTypeToClass { keyClass: MemberedStatementsKey, statementsArray: readonly stringWriterOrStatementImpl[], ): void { - if (statementsArray.length === 0) return; - const statementsMap: ClassFieldStatementsMap = this.#classFieldStatementsByPurpose.get(keyClass.purpose)!; statementsMap.set( diff --git a/stage_2_snapshot/snapshot/source/toolbox/types/toolbox.d.ts b/stage_2_snapshot/snapshot/source/toolbox/types/toolbox.d.ts index ce5cd66..b27d39d 100644 --- a/stage_2_snapshot/snapshot/source/toolbox/types/toolbox.d.ts +++ b/stage_2_snapshot/snapshot/source/toolbox/types/toolbox.d.ts @@ -1,5 +1,7 @@ import type { Scope, WriterFunction } from "ts-morph"; +import { NonNegativeInteger } from "type-fest"; + import type { CallSignatureDeclarationImpl, ConstructorDeclarationImpl, @@ -120,43 +122,69 @@ export type stringWriterOrStatementImpl = | stringOrWriterFunction | StatementStructureImpls; -export interface ClassStatementsGetter { - supportsStatementFlags: readonly number; - keyword: readonly string; - - filterPropertyInitializer?(key: MemberedStatementsKey): boolean; - getPropertyInitializer?( +export interface PropertyInitializerGetter { + filterPropertyInitializer(key: MemberedStatementsKey): boolean; + getPropertyInitializer( key: MemberedStatementsKey, ): stringWriterOrStatementImpl; +} - filterAccessorMirror?(key: MemberedStatementsKey): boolean; - getAccessorMirror?(key: MemberedStatementsKey): stringWriterOrStatementImpl; +export interface AccessorMirrorGetter { + filterAccessorMirror(key: MemberedStatementsKey): boolean; + getAccessorMirror(key: MemberedStatementsKey): stringWriterOrStatementImpl; +} - filterHeadStatements?(key: MemberedStatementsKey): boolean; - getHeadStatements?( +export interface ClassHeadStatementsGetter { + filterHeadStatements(key: MemberedStatementsKey): boolean; + getHeadStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterBodyStatements?(key: MemberedStatementsKey): boolean; - getBodyStatements?( +export interface ClassBodyStatementsGetter { + filterBodyStatements(key: MemberedStatementsKey): boolean; + getBodyStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterTailStatements?(key: MemberedStatementsKey): boolean; - getTailStatements?( +export interface ClassTailStatementsGetter { + filterTailStatements(key: MemberedStatementsKey): boolean; + getTailStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterCtorHeadStatements?(key: MemberedStatementsKey): boolean; - getCtorHeadStatements?(): readonly stringWriterOrStatementImpl[]; +export interface ConstructorHeadStatementsGetter { + filterCtorHeadStatements(key: MemberedStatementsKey): boolean; + getCtorHeadStatements( + key: MemberedStatementsKey, + ): readonly stringWriterOrStatementImpl[]; +} - filterCtorBodyStatements?(key: MemberedStatementsKey): boolean; - getCtorBodyStatements?( +export interface ConstructorBodyStatementsGetter { + filterCtorBodyStatements(key: MemberedStatementsKey): boolean; + getCtorBodyStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; +} - filterCtorTailStatements?(key: MemberedStatementsKey): boolean; - getCtorTailStatements?( +export interface ConstructorTailStatementsGetter { + filterCtorTailStatements(key: MemberedStatementsKey): boolean; + getCtorTailStatements( key: MemberedStatementsKey, ): readonly stringWriterOrStatementImpl[]; } + +export interface ClassStatementsGetter + extends Partial, + Partial, + Partial, + Partial, + Partial, + Partial, + Partial, + Partial { + keyword: readonly string; + supportsStatementFlags: readonly NonNegativeInteger; +}