-
Notifications
You must be signed in to change notification settings - Fork 59
Add modified inline data mapper #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add modified inline data mapper #18
Conversation
…arnings instead of errors, allowing builds to continue with empty env vars
Add fallback support for environment variables from .env to process.env
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR enhances the inline data mapper by introducing a sub-mapping feature, refining environment variable handling in Webpack configs, and adding support for primitive and query-based nodes. Key changes include:
- Replaced manual environment variable definitions with
createEnvDefinePluginin multiplewebpack.config.jsfiles. - Added full sub-mapping support (visitor, context, store, UI components, and node factories/widgets).
- Introduced new node types and factories for primitive and query outputs.
Reviewed Changes
Copilot reviewed 124 out of 126 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| workspaces/**/webpack.config.js | Plug in createEnvDefinePlugin with warnings on failure |
| workspaces/**/package.json | Updated fontCharacter values for icons |
| workspaces/common-libs/ui-toolkit/src/components/SidePanel/SidePanel.tsx | Made subPanelWidth optional with fallback calculation |
| workspaces/ballerina/inline-data-mapper/src/visitors/SubMappingNodeInitVisitor.ts | Added visitor for sub-mapping node initialization |
| workspaces/ballerina/inline-data-mapper/src/visitors/IntermediateNodeInitVisitor.ts | Added visitor for intermediate nodes |
| workspaces/ballerina/inline-data-mapper/src/visitors/IONodeInitVisitor.ts | Renamed and enhanced node init visitor |
| workspaces/ballerina/inline-data-mapper/src/visitors/BaseVisitor.ts | Extended BaseVisitor interface for sub-mappings |
| workspaces/ballerina/inline-data-mapper/src/utils/model-utils.ts | Added traverseSubMappingType and renamed traversal helpers |
| workspaces/ballerina/inline-data-mapper/src/utils/DataMapperContext/DataMapperContext.ts | Expanded context API (views, queries, conversions) |
| workspaces/ballerina/inline-data-mapper/src/store/store.ts | Added stores for sub-mapping and query clauses configuration |
| workspaces/ballerina/inline-data-mapper/src/index.tsx | Updated DataMapperViewProps and minor typo in error message |
| workspaces/ballerina/inline-data-mapper/src/components/Diagram/utils/modification-utils.ts | Refactored mapping creation/update functions |
| workspaces/ballerina/inline-data-mapper/src/components/Diagram/Port/model/InputOutputPortModel.ts | Dropped updateExistingMapping import in favor of new logic |
| workspaces/ballerina/inline-data-mapper/src/components/Diagram/Node/LinkConnector/LinkConnectorNode.ts | Replaced hasInitialized with shouldInitLinks flag |
Files not reviewed (1)
- common/config/rush/pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (3)
workspaces/ballerina/inline-data-mapper/src/components/Diagram/Node/LinkConnector/LinkConnectorNode.ts:28
- The
shouldInitLinksflag is declared but not initialized, so its defaultundefinedvalue prevents any links from being created ininitLinks. Initialize it totruein the constructor so links are built at least once.
import { ArrayOutputNode } from "../ArrayOutput";
workspaces/ballerina/inline-data-mapper/src/visitors/SubMappingNodeInitVisitor.ts:1
- [nitpick] There are no corresponding unit tests for
SubMappingNodeInitVisitor. Consider adding tests to verify that sub-mapping nodes are initialized correctly based on providedIOTypenodes.
/**
workspaces/ballerina/inline-data-mapper/src/components/Diagram/Port/model/InputOutputPortModel.ts:88
- The old logic that used
updateExistingMappingwhen a target port already had links was removed, so every new link always creates a fresh mapping. Reinstate a branch to callupdateExistingMappingfor existing links to avoid duplicating mappings.
await createNewMapping(lm);
workspaces/ballerina/inline-data-mapper/src/components/Diagram/utils/modification-utils.ts
Show resolved
Hide resolved
fb60a02 to
6a1e1aa
Compare
Purpose
$title