@solidstarters/solid-code-builder 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/code-builder/lib/field/FieldManager.d.ts +2 -1
- package/dist/code-builder/lib/field/FieldManager.js +1 -0
- package/dist/code-builder/lib/field/FieldManager.js.map +1 -1
- package/{src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.d.ts → dist/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.d.ts} +7 -7
- package/{src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js → dist/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.js} +10 -10
- package/dist/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.js.map +1 -0
- package/dist/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.d.ts +2 -2
- package/dist/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js +8 -8
- package/dist/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js.map +1 -1
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.d.ts +1 -0
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js +12 -4
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js.map +1 -1
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js +2 -2
- package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +1 -1
- package/package.json +1 -1
- package/src/code-builder/lib/field/FieldManager.ts +1 -0
- package/src/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.ts +127 -0
- package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.ts +10 -10
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.ts +13 -3
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.ts +2 -2
- package/solidstarters-solid-code-builder-1.0.7.tgz +0 -0
- package/src/code-builder/index.d.ts +0 -9
- package/src/code-builder/index.js +0 -178
- package/src/code-builder/index.js.map +0 -1
- package/src/code-builder/index_spec.d.ts +0 -1
- package/src/code-builder/index_spec.js +0 -46
- package/src/code-builder/index_spec.js.map +0 -1
- package/src/code-builder/lib/field/FieldManager.d.ts +0 -106
- package/src/code-builder/lib/field/FieldManager.js +0 -236
- package/src/code-builder/lib/field/FieldManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.d.ts +0 -26
- package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js +0 -107
- package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js +0 -100
- package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js +0 -102
- package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js +0 -106
- package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js +0 -112
- package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js +0 -99
- package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js +0 -100
- package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js +0 -100
- package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.js +0 -104
- package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js +0 -103
- package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js +0 -103
- package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js +0 -102
- package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js +0 -112
- package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.d.ts +0 -26
- package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js +0 -104
- package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js +0 -102
- package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js +0 -100
- package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js +0 -99
- package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.d.ts +0 -25
- package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js +0 -102
- package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.d.ts +0 -30
- package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js +0 -140
- package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.d.ts +0 -34
- package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js +0 -178
- package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.d.ts +0 -24
- package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js +0 -79
- package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.d.ts +0 -29
- package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js +0 -118
- package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.d.ts +0 -37
- package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js +0 -175
- package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.d.ts +0 -34
- package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js +0 -179
- package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.d.ts +0 -33
- package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js +0 -155
- package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.d.ts +0 -31
- package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js +0 -174
- package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.d.ts +0 -51
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js +0 -345
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.d.ts +0 -58
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js +0 -373
- package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/base/DeleteType.d.ts +0 -6
- package/src/code-builder/lib/field/field-managers/base/DeleteType.js +0 -11
- package/src/code-builder/lib/field/field-managers/base/DeleteType.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.d.ts +0 -23
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js +0 -81
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js +0 -55
- package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js +0 -75
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js +0 -51
- package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js +0 -30
- package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.d.ts +0 -11
- package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js +0 -33
- package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js +0 -81
- package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js +0 -59
- package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js +0 -77
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js +0 -53
- package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.js +0 -34
- package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js +0 -72
- package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.d.ts +0 -12
- package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js +0 -44
- package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js +0 -76
- package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js +0 -52
- package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.js +0 -34
- package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.d.ts +0 -20
- package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js +0 -57
- package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.d.ts +0 -9
- package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js +0 -21
- package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js +0 -34
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js +0 -63
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.d.ts +0 -11
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js +0 -34
- package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.d.ts +0 -23
- package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js +0 -72
- package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.d.ts +0 -12
- package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js +0 -57
- package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js +0 -27
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.d.ts +0 -24
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.js +0 -75
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.d.ts +0 -12
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.js +0 -35
- package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js +0 -34
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.d.ts +0 -29
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js +0 -121
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.d.ts +0 -11
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js +0 -37
- package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.d.ts +0 -51
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js +0 -366
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.d.ts +0 -30
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js +0 -158
- package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.d.ts +0 -13
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js +0 -33
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.d.ts +0 -43
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js +0 -294
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.d.ts +0 -31
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js +0 -177
- package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js +0 -34
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js +0 -63
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.d.ts +0 -11
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js +0 -34
- package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js +0 -34
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.d.ts +0 -22
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js +0 -63
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.d.ts +0 -11
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js +0 -37
- package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.d.ts +0 -14
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js +0 -34
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.d.ts +0 -8
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js +0 -15
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js.map +0 -1
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.d.ts +0 -11
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js +0 -33
- package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js.map +0 -1
- package/src/code-builder/lib/model/helpers.d.ts +0 -49
- package/src/code-builder/lib/model/helpers.js +0 -407
- package/src/code-builder/lib/model/helpers.js.map +0 -1
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.MinDecoratorManager = void 0;
|
|
7
|
-
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
8
|
-
const typescript_1 = __importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
|
|
9
|
-
class MinDecoratorManager {
|
|
10
|
-
constructor(options, fieldNode) {
|
|
11
|
-
this.options = options;
|
|
12
|
-
this.fieldNode = fieldNode;
|
|
13
|
-
}
|
|
14
|
-
isApplyDecorator() {
|
|
15
|
-
return this.options.isApplyMin && this.options.min > 0;
|
|
16
|
-
}
|
|
17
|
-
buildDecorator() {
|
|
18
|
-
const fieldSourceLines = [];
|
|
19
|
-
const changes = [];
|
|
20
|
-
fieldSourceLines.push(`@Min(${this.options.min})`);
|
|
21
|
-
changes.push(...this.decoratorImports());
|
|
22
|
-
return {
|
|
23
|
-
filePath: this.options.source.fileName,
|
|
24
|
-
field: this.options.field,
|
|
25
|
-
changes: changes,
|
|
26
|
-
fieldSourceLines: fieldSourceLines,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
setFieldNode(fieldNode) {
|
|
30
|
-
this.fieldNode = fieldNode;
|
|
31
|
-
}
|
|
32
|
-
decoratorName() {
|
|
33
|
-
return 'Min';
|
|
34
|
-
}
|
|
35
|
-
decoratorImports() {
|
|
36
|
-
return [(0, ast_utils_1.insertImport)(this.options.source, this.options.source.fileName, this.decoratorName(), 'class-validator')];
|
|
37
|
-
}
|
|
38
|
-
updateDecorator() {
|
|
39
|
-
if (!this.fieldNode)
|
|
40
|
-
throw new Error(`Field node is required for updating the ${this.decoratorName()} decorator`);
|
|
41
|
-
let newModifiers = [];
|
|
42
|
-
let existingModifiers = this.fieldNode.modifiers;
|
|
43
|
-
// Check if the field has an Length decorator.
|
|
44
|
-
//@ts-ignore
|
|
45
|
-
const existingDecorator = this.findDecorator(this.decoratorName(), existingModifiers);
|
|
46
|
-
//Remove the column decorator if the column decorator exists
|
|
47
|
-
//TODO probably this too can be done in a lesser intrusive way i.e update everything instead of removing and adding
|
|
48
|
-
newModifiers = [...this.filterNonDecorators(existingModifiers), ...this.filterOtherDecorators(this.decoratorName(), existingModifiers)];
|
|
49
|
-
//Add the column decorator if column decorator is required
|
|
50
|
-
const changes = [];
|
|
51
|
-
if (this.isApplyDecorator()) {
|
|
52
|
-
newModifiers = [...newModifiers, this.createDecorator(existingDecorator)];
|
|
53
|
-
changes.push(...this.decoratorImports());
|
|
54
|
-
}
|
|
55
|
-
const updatedProperty = typescript_1.default.factory.updatePropertyDeclaration(this.fieldNode, newModifiers, //Replace with new modifiers
|
|
56
|
-
this.fieldNode.name, this.fieldNode.questionToken, this.fieldNode.type, this.fieldNode.initializer);
|
|
57
|
-
return [updatedProperty, changes];
|
|
58
|
-
}
|
|
59
|
-
createDecorator(existingDecorator) {
|
|
60
|
-
// Capture the existing column decorator options
|
|
61
|
-
let validationOptions = [];
|
|
62
|
-
if (existingDecorator !== undefined) {
|
|
63
|
-
//Pre-set the column options from the existing column decorator
|
|
64
|
-
const existingCallExpression = existingDecorator.expression;
|
|
65
|
-
// Check if call expression has at least 1 arguments
|
|
66
|
-
if (existingCallExpression.arguments.length > 1) {
|
|
67
|
-
if (!typescript_1.default.isObjectLiteralExpression(existingCallExpression.arguments[1])) {
|
|
68
|
-
throw new Error('Min decorator 2nd argument must be an object literal containing the validation options');
|
|
69
|
-
}
|
|
70
|
-
const existingObjectLiteralExpression = existingCallExpression.arguments[1];
|
|
71
|
-
validationOptions.push(...existingObjectLiteralExpression.properties);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Re-create the column decorator with the merged column decorator options
|
|
75
|
-
const decoratorIdentifier = typescript_1.default.factory.createIdentifier("Max");
|
|
76
|
-
const argumentsArray = [];
|
|
77
|
-
const min = typescript_1.default.factory.createNumericLiteral(this.options.min);
|
|
78
|
-
argumentsArray.push(min);
|
|
79
|
-
if (validationOptions.length > 0) {
|
|
80
|
-
const validationOptionsObjectLiteral = typescript_1.default.factory.createObjectLiteralExpression(validationOptions);
|
|
81
|
-
argumentsArray.push(validationOptionsObjectLiteral);
|
|
82
|
-
}
|
|
83
|
-
const call = typescript_1.default.factory.createCallExpression(decoratorIdentifier, undefined, argumentsArray);
|
|
84
|
-
return typescript_1.default.factory.createDecorator(call);
|
|
85
|
-
}
|
|
86
|
-
findDecorator(name, existingModifiers) {
|
|
87
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => this.containsIdentifierName(m, name)).pop() : undefined;
|
|
88
|
-
}
|
|
89
|
-
filterOtherDecorators(name, existingModifiers) {
|
|
90
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => !this.containsIdentifierName(m, name)) : [];
|
|
91
|
-
}
|
|
92
|
-
filterNonDecorators(existingModifiers) {
|
|
93
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind !== typescript_1.default.SyntaxKind.Decorator)).map(m => m) : [];
|
|
94
|
-
}
|
|
95
|
-
containsIdentifierName(m, identifierName) {
|
|
96
|
-
const callExpression = m.expression;
|
|
97
|
-
const identifier = callExpression.expression;
|
|
98
|
-
return identifier.text === identifierName;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.MinDecoratorManager = MinDecoratorManager;
|
|
102
|
-
//# sourceMappingURL=MinDecoratorManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MinDecoratorManager.js","sourceRoot":"","sources":["MinDecoratorManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import ts, { PropertyDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
|
|
2
|
-
import { DecoratorManager, PartialAddFieldChange } from "../../FieldManager";
|
|
3
|
-
import { Change } from "@schematics/angular/utility/change";
|
|
4
|
-
export interface MinLengthDecoratorOptions {
|
|
5
|
-
isApplyMinLength: boolean;
|
|
6
|
-
length: number;
|
|
7
|
-
source: ts.SourceFile;
|
|
8
|
-
field: any;
|
|
9
|
-
}
|
|
10
|
-
export declare class MinLengthDecoratorManager implements DecoratorManager {
|
|
11
|
-
options: MinLengthDecoratorOptions;
|
|
12
|
-
fieldNode?: any;
|
|
13
|
-
constructor(options: MinLengthDecoratorOptions, fieldNode?: any);
|
|
14
|
-
isApplyDecorator(): boolean;
|
|
15
|
-
setFieldNode(fieldNode: ts.PropertyDeclaration): void;
|
|
16
|
-
buildDecorator(): PartialAddFieldChange;
|
|
17
|
-
decoratorName(): string;
|
|
18
|
-
decoratorImports(): Change[];
|
|
19
|
-
updateDecorator(): [PropertyDeclaration, Change[]];
|
|
20
|
-
createDecorator(existingDecorator: ts.Decorator | undefined): ts.Decorator;
|
|
21
|
-
private findDecorator;
|
|
22
|
-
private filterOtherDecorators;
|
|
23
|
-
private filterNonDecorators;
|
|
24
|
-
private containsIdentifierName;
|
|
25
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MinLengthDecoratorManager.js","sourceRoot":"","sources":["MinLengthDecoratorManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import ts, { PropertyDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
|
|
2
|
-
import { DecoratorManager, PartialAddFieldChange } from "../../FieldManager";
|
|
3
|
-
import { Change } from "@schematics/angular/utility/change";
|
|
4
|
-
export interface NumberDecoratorOptions {
|
|
5
|
-
isNumber: boolean;
|
|
6
|
-
source: ts.SourceFile;
|
|
7
|
-
field: any;
|
|
8
|
-
}
|
|
9
|
-
export declare class NumberDecoratorManager implements DecoratorManager {
|
|
10
|
-
options: NumberDecoratorOptions;
|
|
11
|
-
fieldNode?: any;
|
|
12
|
-
constructor(options: NumberDecoratorOptions, fieldNode?: any);
|
|
13
|
-
isApplyDecorator(): boolean;
|
|
14
|
-
buildDecorator(): PartialAddFieldChange;
|
|
15
|
-
setFieldNode(fieldNode: ts.PropertyDeclaration): void;
|
|
16
|
-
decoratorName(): string;
|
|
17
|
-
decoratorImports(): Change[];
|
|
18
|
-
updateDecorator(): [PropertyDeclaration, Change[]];
|
|
19
|
-
createDecorator(existingDecorator: ts.Decorator | undefined): ts.Decorator;
|
|
20
|
-
private findDecorator;
|
|
21
|
-
private filterOtherDecorators;
|
|
22
|
-
private filterNonDecorators;
|
|
23
|
-
private containsIdentifierName;
|
|
24
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NumberDecoratorManager = void 0;
|
|
7
|
-
const typescript_1 = __importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
|
|
8
|
-
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
9
|
-
class NumberDecoratorManager {
|
|
10
|
-
constructor(options, fieldNode) {
|
|
11
|
-
this.options = options;
|
|
12
|
-
this.fieldNode = fieldNode;
|
|
13
|
-
}
|
|
14
|
-
isApplyDecorator() {
|
|
15
|
-
return this.options.isNumber;
|
|
16
|
-
}
|
|
17
|
-
buildDecorator() {
|
|
18
|
-
const fieldSourceLines = [];
|
|
19
|
-
const changes = [];
|
|
20
|
-
fieldSourceLines.push(`@IsNumber()`);
|
|
21
|
-
changes.push(...this.decoratorImports());
|
|
22
|
-
return {
|
|
23
|
-
filePath: this.options.source.fileName,
|
|
24
|
-
field: this.options.field,
|
|
25
|
-
changes: changes,
|
|
26
|
-
fieldSourceLines: fieldSourceLines,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
setFieldNode(fieldNode) {
|
|
30
|
-
this.fieldNode = fieldNode;
|
|
31
|
-
}
|
|
32
|
-
decoratorName() {
|
|
33
|
-
return 'IsNumber';
|
|
34
|
-
}
|
|
35
|
-
decoratorImports() {
|
|
36
|
-
return [(0, ast_utils_1.insertImport)(this.options.source, this.options.source.fileName, this.decoratorName(), 'class-validator')];
|
|
37
|
-
}
|
|
38
|
-
updateDecorator() {
|
|
39
|
-
if (!this.fieldNode)
|
|
40
|
-
throw new Error(`Field node is required for updating the ${this.decoratorName()} decorator`);
|
|
41
|
-
let newModifiers = [];
|
|
42
|
-
let existingModifiers = this.fieldNode.modifiers;
|
|
43
|
-
// Check if the field has an Length decorator.
|
|
44
|
-
//@ts-ignore
|
|
45
|
-
const existingDecorator = this.findDecorator(this.decoratorName(), existingModifiers);
|
|
46
|
-
//Remove the column decorator if the column decorator exists
|
|
47
|
-
//TODO probably this too can be done in a lesser intrusive way i.e update everything instead of removing and adding
|
|
48
|
-
newModifiers = [...this.filterNonDecorators(existingModifiers), ...this.filterOtherDecorators(this.decoratorName(), existingModifiers)];
|
|
49
|
-
//Add the column decorator if column decorator is required
|
|
50
|
-
const changes = [];
|
|
51
|
-
if (this.isApplyDecorator()) {
|
|
52
|
-
newModifiers = [...newModifiers, this.createDecorator(existingDecorator)];
|
|
53
|
-
changes.push(...this.decoratorImports());
|
|
54
|
-
}
|
|
55
|
-
const updatedProperty = typescript_1.default.factory.updatePropertyDeclaration(this.fieldNode, newModifiers, //Replace with new modifiers
|
|
56
|
-
this.fieldNode.name, this.fieldNode.questionToken, this.fieldNode.type, this.fieldNode.initializer);
|
|
57
|
-
return [updatedProperty, changes];
|
|
58
|
-
}
|
|
59
|
-
createDecorator(existingDecorator) {
|
|
60
|
-
// Capture the existing column decorator options
|
|
61
|
-
const numberOptions = [];
|
|
62
|
-
const validationOptions = [];
|
|
63
|
-
if (existingDecorator !== undefined) {
|
|
64
|
-
//Pre-set the column options from the existing column decorator
|
|
65
|
-
const existingCallExpression = existingDecorator.expression;
|
|
66
|
-
// Check if call expression has at least 1 arguments
|
|
67
|
-
if (existingCallExpression.arguments.length > 0) {
|
|
68
|
-
if (!typescript_1.default.isObjectLiteralExpression(existingCallExpression.arguments[0])) {
|
|
69
|
-
throw new Error('Number decorator 2nd argument must be an object literal containing the validation options');
|
|
70
|
-
}
|
|
71
|
-
const existingObjectLiteralExpression = existingCallExpression.arguments[0];
|
|
72
|
-
numberOptions.push(...existingObjectLiteralExpression.properties);
|
|
73
|
-
if (existingCallExpression.arguments.length > 1) {
|
|
74
|
-
if (!typescript_1.default.isObjectLiteralExpression(existingCallExpression.arguments[1])) {
|
|
75
|
-
throw new Error('Number decorator 3rd argument must be an object literal containing the validation options');
|
|
76
|
-
}
|
|
77
|
-
const existingObjectLiteralExpression = existingCallExpression.arguments[1];
|
|
78
|
-
validationOptions.push(...existingObjectLiteralExpression.properties);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
// Re-create the column decorator with the merged column decorator options
|
|
83
|
-
const decoratorIdentifier = typescript_1.default.factory.createIdentifier("IsNumber");
|
|
84
|
-
const argumentsArray = [];
|
|
85
|
-
if (numberOptions.length > 0) {
|
|
86
|
-
const numberOptionsObjectLiteral = typescript_1.default.factory.createObjectLiteralExpression(numberOptions);
|
|
87
|
-
argumentsArray.push(numberOptionsObjectLiteral);
|
|
88
|
-
}
|
|
89
|
-
if (validationOptions.length > 0) {
|
|
90
|
-
const validationOptionsObjectLiteral = typescript_1.default.factory.createObjectLiteralExpression(validationOptions);
|
|
91
|
-
argumentsArray.push(validationOptionsObjectLiteral);
|
|
92
|
-
}
|
|
93
|
-
const call = typescript_1.default.factory.createCallExpression(decoratorIdentifier, undefined, argumentsArray);
|
|
94
|
-
return typescript_1.default.factory.createDecorator(call);
|
|
95
|
-
}
|
|
96
|
-
findDecorator(name, existingModifiers) {
|
|
97
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => this.containsIdentifierName(m, name)).pop() : undefined;
|
|
98
|
-
}
|
|
99
|
-
filterOtherDecorators(name, existingModifiers) {
|
|
100
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => !this.containsIdentifierName(m, name)) : [];
|
|
101
|
-
}
|
|
102
|
-
filterNonDecorators(existingModifiers) {
|
|
103
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind !== typescript_1.default.SyntaxKind.Decorator)).map(m => m) : [];
|
|
104
|
-
}
|
|
105
|
-
containsIdentifierName(m, identifierName) {
|
|
106
|
-
const callExpression = m.expression;
|
|
107
|
-
const identifier = callExpression.expression;
|
|
108
|
-
return identifier.text === identifierName;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.NumberDecoratorManager = NumberDecoratorManager;
|
|
112
|
-
//# sourceMappingURL=NumberDecoratorManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NumberDecoratorManager.js","sourceRoot":"","sources":["NumberDecoratorManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import ts, { PropertyDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
|
|
2
|
-
import { DecoratorManager, PartialAddFieldChange } from "../../FieldManager";
|
|
3
|
-
import { Change } from "@schematics/angular/utility/change";
|
|
4
|
-
export interface OptionalDecoratorOptions {
|
|
5
|
-
isApplyOptional: boolean;
|
|
6
|
-
optional: boolean;
|
|
7
|
-
source: ts.SourceFile;
|
|
8
|
-
field: any;
|
|
9
|
-
}
|
|
10
|
-
export declare class OptionalDecoratorManager implements DecoratorManager {
|
|
11
|
-
options: OptionalDecoratorOptions;
|
|
12
|
-
fieldNode?: any;
|
|
13
|
-
constructor(options: OptionalDecoratorOptions, fieldNode?: any);
|
|
14
|
-
isApplyDecorator(): boolean;
|
|
15
|
-
buildDecorator(): PartialAddFieldChange;
|
|
16
|
-
setFieldNode(fieldNode: ts.PropertyDeclaration): void;
|
|
17
|
-
decoratorName(): string;
|
|
18
|
-
decoratorImports(): Change[];
|
|
19
|
-
updateDecorator(): [PropertyDeclaration, Change[]];
|
|
20
|
-
createDecorator(existingDecorator: ts.Decorator | undefined): ts.Decorator;
|
|
21
|
-
private existingDecoratorOptions;
|
|
22
|
-
private findDecorator;
|
|
23
|
-
private filterOtherDecorators;
|
|
24
|
-
private filterNonDecorators;
|
|
25
|
-
private containsIdentifierName;
|
|
26
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.OptionalDecoratorManager = void 0;
|
|
7
|
-
const typescript_1 = __importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
|
|
8
|
-
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
9
|
-
class OptionalDecoratorManager {
|
|
10
|
-
constructor(options, fieldNode) {
|
|
11
|
-
this.options = options;
|
|
12
|
-
this.fieldNode = fieldNode;
|
|
13
|
-
}
|
|
14
|
-
isApplyDecorator() {
|
|
15
|
-
return this.options.isApplyOptional && this.options.optional;
|
|
16
|
-
}
|
|
17
|
-
buildDecorator() {
|
|
18
|
-
const fieldSourceLines = [];
|
|
19
|
-
const changes = [];
|
|
20
|
-
fieldSourceLines.push(`@${this.decoratorName()}()`);
|
|
21
|
-
changes.push(...this.decoratorImports());
|
|
22
|
-
return {
|
|
23
|
-
filePath: this.options.source.fileName,
|
|
24
|
-
field: this.options.field,
|
|
25
|
-
changes: changes,
|
|
26
|
-
fieldSourceLines: fieldSourceLines,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
setFieldNode(fieldNode) {
|
|
30
|
-
this.fieldNode = fieldNode;
|
|
31
|
-
}
|
|
32
|
-
decoratorName() {
|
|
33
|
-
return 'IsOptional';
|
|
34
|
-
}
|
|
35
|
-
decoratorImports() {
|
|
36
|
-
return [(0, ast_utils_1.insertImport)(this.options.source, this.options.source.fileName, this.decoratorName(), 'class-validator')];
|
|
37
|
-
}
|
|
38
|
-
updateDecorator() {
|
|
39
|
-
if (!this.fieldNode)
|
|
40
|
-
throw new Error(`Field node is required for updating the ${this.decoratorName()} decorator`);
|
|
41
|
-
let newModifiers = [];
|
|
42
|
-
let existingModifiers = this.fieldNode.modifiers;
|
|
43
|
-
// Check if the field has an Length decorator.
|
|
44
|
-
//@ts-ignore
|
|
45
|
-
const existingDecorator = this.findDecorator(this.decoratorName(), existingModifiers);
|
|
46
|
-
//Remove the column decorator if the column decorator exists
|
|
47
|
-
//TODO probably this too can be done in a lesser intrusive way i.e update everything instead of removing and adding
|
|
48
|
-
newModifiers = [...this.filterNonDecorators(existingModifiers), ...this.filterOtherDecorators(this.decoratorName(), existingModifiers)];
|
|
49
|
-
//Add the column decorator if column decorator is required
|
|
50
|
-
const changes = [];
|
|
51
|
-
if (this.isApplyDecorator()) {
|
|
52
|
-
newModifiers = [...newModifiers, this.createDecorator(existingDecorator)];
|
|
53
|
-
changes.push(...this.decoratorImports());
|
|
54
|
-
}
|
|
55
|
-
const updatedProperty = typescript_1.default.factory.updatePropertyDeclaration(this.fieldNode, newModifiers, //Replace with new modifiers
|
|
56
|
-
this.fieldNode.name, this.fieldNode.questionToken, this.fieldNode.type, this.fieldNode.initializer);
|
|
57
|
-
return [updatedProperty, changes];
|
|
58
|
-
}
|
|
59
|
-
createDecorator(existingDecorator) {
|
|
60
|
-
// Capture the existing column decorator options
|
|
61
|
-
let existingValidationOptions = this.existingDecoratorOptions(existingDecorator);
|
|
62
|
-
// Re-create the decorator with the existing decorator options
|
|
63
|
-
const decoratorIdentifier = typescript_1.default.factory.createIdentifier(this.decoratorName());
|
|
64
|
-
const argumentsArray = [];
|
|
65
|
-
if (existingValidationOptions.length > 0) {
|
|
66
|
-
const validationOptionsObjectLiteral = typescript_1.default.factory.createObjectLiteralExpression(existingValidationOptions);
|
|
67
|
-
argumentsArray.push(validationOptionsObjectLiteral);
|
|
68
|
-
}
|
|
69
|
-
const call = typescript_1.default.factory.createCallExpression(decoratorIdentifier, undefined, argumentsArray);
|
|
70
|
-
return typescript_1.default.factory.createDecorator(call);
|
|
71
|
-
}
|
|
72
|
-
existingDecoratorOptions(existingDecorator) {
|
|
73
|
-
let validationOptions = [];
|
|
74
|
-
if (existingDecorator !== undefined) {
|
|
75
|
-
//Pre-set the column options from the existing column decorator
|
|
76
|
-
const existingCallExpression = existingDecorator.expression;
|
|
77
|
-
// Check if call expression has at least 1 arguments
|
|
78
|
-
if (existingCallExpression.arguments.length > 0) {
|
|
79
|
-
if (!typescript_1.default.isObjectLiteralExpression(existingCallExpression.arguments[0])) {
|
|
80
|
-
throw new Error('IsOptional decorator 1st argument must be an object literal containing the validation options');
|
|
81
|
-
}
|
|
82
|
-
const existingObjectLiteralExpression = existingCallExpression.arguments[0];
|
|
83
|
-
validationOptions.push(...existingObjectLiteralExpression.properties);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return validationOptions;
|
|
87
|
-
}
|
|
88
|
-
findDecorator(name, existingModifiers) {
|
|
89
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => this.containsIdentifierName(m, name)).pop() : undefined;
|
|
90
|
-
}
|
|
91
|
-
filterOtherDecorators(name, existingModifiers) {
|
|
92
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => !this.containsIdentifierName(m, name)) : [];
|
|
93
|
-
}
|
|
94
|
-
filterNonDecorators(existingModifiers) {
|
|
95
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind !== typescript_1.default.SyntaxKind.Decorator)).map(m => m) : [];
|
|
96
|
-
}
|
|
97
|
-
containsIdentifierName(m, identifierName) {
|
|
98
|
-
const callExpression = m.expression;
|
|
99
|
-
const identifier = callExpression.expression;
|
|
100
|
-
return identifier.text === identifierName;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
exports.OptionalDecoratorManager = OptionalDecoratorManager;
|
|
104
|
-
//# sourceMappingURL=OptionalDecoratorManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OptionalDecoratorManager.js","sourceRoot":"","sources":["OptionalDecoratorManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import ts, { PropertyDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
|
|
2
|
-
import { Change } from "@schematics/angular/utility/change";
|
|
3
|
-
import { DecoratorManager, PartialAddFieldChange } from "../../FieldManager";
|
|
4
|
-
export interface RegexDecoratorOptions {
|
|
5
|
-
isApplyRegex: boolean;
|
|
6
|
-
regexPattern: string;
|
|
7
|
-
source: ts.SourceFile;
|
|
8
|
-
field: any;
|
|
9
|
-
}
|
|
10
|
-
export declare class RegexDecoratorManager implements DecoratorManager {
|
|
11
|
-
options: RegexDecoratorOptions;
|
|
12
|
-
fieldNode?: ts.PropertyDeclaration | undefined;
|
|
13
|
-
constructor(options: RegexDecoratorOptions, fieldNode?: ts.PropertyDeclaration | undefined);
|
|
14
|
-
isApplyDecorator(): boolean;
|
|
15
|
-
buildDecorator(): PartialAddFieldChange;
|
|
16
|
-
setFieldNode(fieldNode: PropertyDeclaration): void;
|
|
17
|
-
decoratorName(): string;
|
|
18
|
-
decoratorImports(): Change[];
|
|
19
|
-
updateDecorator(): [PropertyDeclaration, Change[]];
|
|
20
|
-
createDecorator(existingDecorator: ts.Decorator | undefined): ts.Decorator;
|
|
21
|
-
private findDecorator;
|
|
22
|
-
private filterOtherDecorators;
|
|
23
|
-
private filterNonDecorators;
|
|
24
|
-
private containsIdentifierName;
|
|
25
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RegexDecoratorManager = void 0;
|
|
7
|
-
const typescript_1 = __importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
|
|
8
|
-
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
9
|
-
class RegexDecoratorManager {
|
|
10
|
-
constructor(options, fieldNode) {
|
|
11
|
-
this.options = options;
|
|
12
|
-
this.fieldNode = fieldNode;
|
|
13
|
-
}
|
|
14
|
-
isApplyDecorator() {
|
|
15
|
-
return this.options.isApplyRegex && this.options.regexPattern !== null && this.options.regexPattern !== undefined && this.options.regexPattern.trim().length > 0;
|
|
16
|
-
}
|
|
17
|
-
buildDecorator() {
|
|
18
|
-
const fieldSourceLines = [];
|
|
19
|
-
const changes = [];
|
|
20
|
-
fieldSourceLines.push(`@Matches(/${this.options.regexPattern}/)`);
|
|
21
|
-
changes.push(...this.decoratorImports());
|
|
22
|
-
return {
|
|
23
|
-
filePath: this.options.source.fileName,
|
|
24
|
-
field: this.options.field,
|
|
25
|
-
changes: changes,
|
|
26
|
-
fieldSourceLines: fieldSourceLines,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
setFieldNode(fieldNode) {
|
|
30
|
-
this.fieldNode = fieldNode;
|
|
31
|
-
}
|
|
32
|
-
decoratorName() {
|
|
33
|
-
return 'Matches';
|
|
34
|
-
}
|
|
35
|
-
decoratorImports() {
|
|
36
|
-
return [(0, ast_utils_1.insertImport)(this.options.source, this.options.source.fileName, this.decoratorName(), 'class-validator')];
|
|
37
|
-
}
|
|
38
|
-
updateDecorator() {
|
|
39
|
-
if (!this.fieldNode)
|
|
40
|
-
throw new Error(`Field node is required for updating the ${this.decoratorName()} decorator`);
|
|
41
|
-
let newModifiers = [];
|
|
42
|
-
let existingModifiers = this.fieldNode.modifiers;
|
|
43
|
-
// Check if the field has an Length decorator.
|
|
44
|
-
//@ts-ignore
|
|
45
|
-
const existingDecorator = this.findDecorator(this.decoratorName(), existingModifiers);
|
|
46
|
-
//Remove the column decorator if the column decorator exists
|
|
47
|
-
//TODO probably this too can be done in a lesser intrusive way i.e update everything instead of removing and adding
|
|
48
|
-
newModifiers = [...this.filterNonDecorators(existingModifiers), ...this.filterOtherDecorators(this.decoratorName(), existingModifiers)];
|
|
49
|
-
//Add the column decorator if column decorator is required
|
|
50
|
-
const changes = [];
|
|
51
|
-
if (this.isApplyDecorator()) {
|
|
52
|
-
newModifiers = [...newModifiers, this.createDecorator(existingDecorator)];
|
|
53
|
-
changes.push(...this.decoratorImports());
|
|
54
|
-
}
|
|
55
|
-
const updatedProperty = typescript_1.default.factory.updatePropertyDeclaration(this.fieldNode, newModifiers, //Replace with new modifiers
|
|
56
|
-
this.fieldNode.name, this.fieldNode.questionToken, this.fieldNode.type, this.fieldNode.initializer);
|
|
57
|
-
return [updatedProperty, changes];
|
|
58
|
-
}
|
|
59
|
-
createDecorator(existingDecorator) {
|
|
60
|
-
// Capture the existing column decorator options
|
|
61
|
-
let validationOptions = [];
|
|
62
|
-
if (existingDecorator !== undefined) {
|
|
63
|
-
//Pre-set the column options from the existing column decorator
|
|
64
|
-
const existingCallExpression = existingDecorator.expression;
|
|
65
|
-
// Check if call expression has at least 1 arguments
|
|
66
|
-
if (existingCallExpression.arguments.length > 1) {
|
|
67
|
-
if (!typescript_1.default.isObjectLiteralExpression(existingCallExpression.arguments[1])) {
|
|
68
|
-
throw new Error('Regex decorator 2nd argument must be an object literal containing the validation options');
|
|
69
|
-
}
|
|
70
|
-
const existingObjectLiteralExpression = existingCallExpression.arguments[1];
|
|
71
|
-
validationOptions.push(...existingObjectLiteralExpression.properties);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Re-create the column decorator with the merged column decorator options
|
|
75
|
-
const decoratorIdentifier = typescript_1.default.factory.createIdentifier("Matches");
|
|
76
|
-
const argumentsArray = [];
|
|
77
|
-
const regexPattern = typescript_1.default.factory.createRegularExpressionLiteral(`/${this.options.regexPattern}/`);
|
|
78
|
-
argumentsArray.push(regexPattern);
|
|
79
|
-
if (validationOptions.length > 0) {
|
|
80
|
-
const validationOptionsObjectLiteral = typescript_1.default.factory.createObjectLiteralExpression(validationOptions);
|
|
81
|
-
argumentsArray.push(validationOptionsObjectLiteral);
|
|
82
|
-
}
|
|
83
|
-
const call = typescript_1.default.factory.createCallExpression(decoratorIdentifier, undefined, argumentsArray);
|
|
84
|
-
return typescript_1.default.factory.createDecorator(call);
|
|
85
|
-
}
|
|
86
|
-
findDecorator(name, existingModifiers) {
|
|
87
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => this.containsIdentifierName(m, name)).pop() : undefined;
|
|
88
|
-
}
|
|
89
|
-
filterOtherDecorators(name, existingModifiers) {
|
|
90
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => !this.containsIdentifierName(m, name)) : [];
|
|
91
|
-
}
|
|
92
|
-
filterNonDecorators(existingModifiers) {
|
|
93
|
-
return existingModifiers ? existingModifiers.filter((m) => (m.kind !== typescript_1.default.SyntaxKind.Decorator)).map(m => m) : [];
|
|
94
|
-
}
|
|
95
|
-
containsIdentifierName(m, identifierName) {
|
|
96
|
-
const callExpression = m.expression;
|
|
97
|
-
const identifier = callExpression.expression;
|
|
98
|
-
return identifier.text === identifierName;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.RegexDecoratorManager = RegexDecoratorManager;
|
|
102
|
-
//# sourceMappingURL=RegexDecoratorManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RegexDecoratorManager.js","sourceRoot":"","sources":["RegexDecoratorManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import ts, { PropertyDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
|
|
2
|
-
import { DecoratorManager, PartialAddFieldChange } from "../../FieldManager";
|
|
3
|
-
import { Change } from "@schematics/angular/utility/change";
|
|
4
|
-
export interface RequiredDecoratorOptions {
|
|
5
|
-
isApplyRequired: boolean;
|
|
6
|
-
required: boolean;
|
|
7
|
-
source: ts.SourceFile;
|
|
8
|
-
field: any;
|
|
9
|
-
}
|
|
10
|
-
export declare class RequiredDecoratorManager implements DecoratorManager {
|
|
11
|
-
options: RequiredDecoratorOptions;
|
|
12
|
-
fieldNode?: any;
|
|
13
|
-
constructor(options: RequiredDecoratorOptions, fieldNode?: any);
|
|
14
|
-
isApplyDecorator(): boolean;
|
|
15
|
-
buildDecorator(): PartialAddFieldChange;
|
|
16
|
-
setFieldNode(fieldNode: ts.PropertyDeclaration): void;
|
|
17
|
-
decoratorName(): string;
|
|
18
|
-
decoratorImports(): Change[];
|
|
19
|
-
updateDecorator(): [PropertyDeclaration, Change[]];
|
|
20
|
-
createDecorator(existingDecorator: ts.Decorator | undefined): ts.Decorator;
|
|
21
|
-
private findDecorator;
|
|
22
|
-
private filterOtherDecorators;
|
|
23
|
-
private filterNonDecorators;
|
|
24
|
-
private containsIdentifierName;
|
|
25
|
-
}
|