Closed Romakita closed 6 days ago
The pull request introduces significant updates across various files, primarily enhancing type safety and functionality within the Ts.ED framework. A new enumeration EventType
is added, improving the handling of event types in the Event
class. The documentation is refined to clarify the usage of decorators and new features. Additionally, several functions are modified to improve their logic and type safety, particularly concerning JSON schema processing. New files for handling discriminator mappings and enums are introduced, while existing exports are updated to reflect these changes.
File | Change Summary |
---|---|
docs/docs/model.md |
Added EventType enum with values PAGE_VIEW , ACTION , CLICK_ACTION . Updated @DiscriminatorValue annotations in PageView and Action classes to use enum values. Enhanced documentation on decorators. |
packages/specs/schema/src/components/default/requiredMapper.ts |
Added imports for createRef , createRefName , toRef . No functional changes. |
packages/specs/schema/src/components/default/schemaMapper.ts |
Modified mapKeys to directly modify item instead of creating new objects. Updated serializeSchema to include calls for "enums" and "discriminatorMapping". |
packages/specs/schema/src/components/index.ts |
Added exports for new mappers and removed export for inlineEnumsMapper . |
packages/specs/schema/src/domain/JsonSchema.ts |
Enhanced setManyOf method to include mapping property for discriminators. |
packages/specs/schema/src/utils/ref.ts |
Updated toRef function to enhance type safety by changing parameter type from any to unknown | undefined . |
packages/specs/schema/test/integrations/discriminator.integration.spec.ts |
Introduced EventType enum and updated tests to reflect changes in the Event class. |
.gitignore |
Added entry for coverage-* . |
packages/core/src/utils/objects/cleanObject.ts |
Updated cleanObject function for better type safety and logic. |
packages/core/src/utils/objects/deepMerge.ts |
Modified deepMerge function to use mutable merging logic. |
packages/specs/schema/src/utils/transformToOS2.ts |
Enhanced type safety in transformSecurity function and updated logic for handling security definitions. |
packages/platform/platform-express/test/discriminator.spec.ts |
Commented out status expectation in a test case, affecting validation of successful responses. |
packages/specs/schema/src/components/default/discriminatorMappingMapper.ts |
Introduced new mapper for handling discriminator mappings in JSON schemas. |
packages/specs/schema/src/components/default/enumsMapper.spec.ts |
Updated test suite to reference enumsMapper instead of inlineEnumsMapper . |
packages/specs/schema/src/components/default/enumsMapper.ts |
Renamed inlineEnumsMapper to enumsMapper and updated registration. |
packages/specs/schema/src/components/open-spec/discriminatorMappingMapper.ts |
Registered discriminatorMappingMapper for multiple specification types. |
packages/specs/schema/src/components/open-spec/enumsMapper.ts |
Introduced wrapEnumsMapper and registered it for multiple specification types. |
packages/specs/schema/src/decorators/common/const.spec.ts |
Updated schema generation for @Const properties to include enum field. |
packages/specs/schema/src/index.ts |
Updated exports to include new mappers and removed outdated export. |
packages/specs/schema/src/interfaces/JsonSchemaOptions.ts |
Added inlineEnums optional property to JsonSchemaOptions interface. |
packages/third-parties/schema-formio/src/utils/getFormioSchema.ts |
Updated getFormioSchema to include inlineEnums option in schema generation. |
sequenceDiagram
participant User
participant API
participant Event
participant Mapper
User->>API: Send Event Data
API->>Event: Create Event Instance
Event->>Event: Set Type using EventType Enum
Event->>Mapper: Map Event to Schema
Mapper->>API: Return Mapped Schema
API->>User: Respond with Schema
[!WARNING]
Rate limit exceeded
@Romakita has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 26 seconds before requesting another review.
⌛ How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.🚦 How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://docs.coderabbit.ai/faq) for further information.📥 Commits
Reviewing files that changed from the base of the PR and between 8dfcd4aabbe8232743618bec334c9eb1e59a0d92 and 0f61bd9fcfa384b356fafa700cfd14aba44fde2f.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
:tada: This PR is included in version 7.84.1 :tada:
The release is available on:
v7.84.1
Your semantic-release bot :package::rocket:
:tada: This PR is included in version 8.0.0-rc.5 :tada:
The release is available on:
v8.0.0-rc.5
Your semantic-release bot :package::rocket:
Information
Improve discriminator mappings
Todos
Summary by CodeRabbit
New Features
EventType
enumeration for better type safety in event handling.inlineEnums
option toJsonSchemaOptions
for inline enum support.Bug Fixes
toRef
function to prevent issues with undefined schemas.Documentation
Refactor
Chores
.gitignore
to exclude coverage files.