Add (Field|Schema).withMetadata() helper to match other Arrow bindings
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- typescript
- Domain
- api
Research direction
Start by locating the TypeScript definitions and tests for Field and Schema, then read how metadata is currently constructed and replaced. Done means both withMetadata() methods accept Map<string, string>, Record<string, string>, and null, return new objects with replacement semantics, and have coverage for setting and clearing metadata.
Written by the indexing model from the issue text.
Description
Describe the enhancement requested
Manipulating field and schema metadata in the JS bindings currently requires manually constructing Map<string, string> instances and re-instantiating Field/Objects objects.
Other Arrow implementations:
expose a helper that replaces a field/schema’s metadata map (and accepts null/None to clear it).
Request
Add a Field.withMetadata(), and Schema.withMetadata() method that:
- Accepts a
Map<string, string>, a plain objectRecord<string, string>, ornull(to clear metadata). - Returns a new Field with the supplied metadata (replacement semantics, not merging).
This brings the JavaScript bindings in line with the existing C++/PyArrow/Rust APIs and makes metadata updates more ergonomic (and less error-prone).
- Dominant language
- TypeScript
- Stars
- 112
- Forks
- 23
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 13
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/arrow-js
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
apache/arrow-js#484 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
apache/arrow-js#468 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
apache/arrow-js#423 · 1 reaction ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
openedx/frontend-app-authoring#3274 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
area/documentation status/need-triage
Difficulty 1/5 Under an hour Newbie friendliness 95/100
google-gemini/gemini-cli#29548 ·
Maintainers usually reply within 1 day
-
sdk-typescript vector-store
Difficulty 2/5 Half a day Newbie friendliness 82/100
mem0ai/mem0#7495 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day