Conversation
|
Thanks. Could you use our PR template instead of deleting it entirely? Could you rebase on main to remove needless changes? |
|
@kou |
kou
left a comment
There was a problem hiding this comment.
I've updated the PR to use the project's PR template instead of removing it.
Hmm. Our PR template is https://github.com/apache/arrow-js/blob/main/.github/pull_request_template.md . It seems that you didn't use it...
package.json
Outdated
| "command-line-args": "^6.0.1", | ||
| "command-line-usage": "^7.0.1", | ||
| "flatbuffers": "^25.1.24", | ||
| "is-relative": "1.0.0", |
There was a problem hiding this comment.
You're absolutely right to call that out. I apologize for the confusion in my previous response.
This dependency isn't needed. I added it by mistake while working locally. I've removed it now to keep the package.json clean. Thanks for pointing it out!
|
@kou Thanks for the feedback! I've updated the PR to use the project's PR template instead of removing it. |
|
Could you check CI failures? |
domoritz
left a comment
There was a problem hiding this comment.
Thanks for the patch. Please add a test case that uses the plain object case so we don't accidentally change the types in some incompatible way in the future.
- Override append() and set() methods in StructBuilder to accept plain objects - Create StructValue<T> type union for plain objects and StructRowProxy - Fix tsconfig.json moduleResolution to match module setting - Resolve Issue apache#90: Strong typing for builders
@kou I’ve addressed the TypeScript error that was causing the CLI build failure. |
raulcd
left a comment
There was a problem hiding this comment.
Thanks for the PR! I think you can revert the changes on yarn.lock and eslint.config.js not sure why we are removing the empty line there.
Thanks for the review! Let me know if anything else needs to be updated! |
|
|
There was a request to add a test but it hasn't been added, right? You also haven't pushed the revert for the file changes, right? |
I have added a test case and pushed the revert the file change. |
|
#90 fixed and fixed CI failure and added a test case. |
|
Just to check. Originally, this pull request was just fixing a type but now it's also changing logic. Was the original patch not enough (as you noticed after writing a test case)? |
yarn.lock
Outdated
| version "0.1.5" | ||
| resolved "https://registry.yarnpkg.com/zstd-codec/-/zstd-codec-0.1.5.tgz#c180193e4603ef74ddf704bcc835397d30a60e42" | ||
| integrity sha512-v3fyjpK8S/dpY/X5WxqTK3IoCnp/ZOLxn144GZVlNUjtwAchzrVo03h+oMATFhCIiJ5KTr4V3vDQQYz4RU684g== | ||
| integrity sha512-v3fyjpK8S/dpY/X5WxqTK3IoCnp/ZOLxn144GZVlNUjtwAchzrVo03h+oMATFhCIiJ5KTr4V3vDQQYz4RU684g== No newline at end of file |
a2e1d81 to
957d656
Compare
|
@kou I have fixed the issue can you merge this. |
|
Could you answer #340 (comment) before we merge this? |
No. Writing test cases revealed that: Changing the type definition broke Vector access patterns |
|
| import { Struct, TypeMap } from '../type.js'; | ||
|
|
||
| /** @ignore */ | ||
| type StructValue<T extends TypeMap = any> = Struct<T>['TValue'] | { [P in keyof T]: T[P]['TValue'] }; |
There was a problem hiding this comment.
Is this needed because of a Typescript version bump? This used to work because the mapping is part of the Struct<T>['TValue'] aka StructRowProxy<T>.
What's Changed
Fixed the strict typing in
StructBuilder.append()that required aStructRowProxyinstead of allowing plain JavaScript objects. Updated theTValuedefinition inStruct<T>to correctly map struct fields to standard object shapes, restoring the intended ergonomic behavior.Closes #90.