• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MONEI / dynamoose / 38772476355
100%
main: 99%

Build:
Build:
LAST BUILD BRANCH: docs/upstream-prs
DEFAULT BRANCH: main
Ran 15 Oct 2026 04:52PM UTC
Jobs 1
Files 49
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Oct 2026 04:51PM UTC coverage: 99.828%. Remained the same
38772476355

push

github

jimmyn
Adding nested path support to Model.update

An update key can now be a path into a nested attribute: dots for map keys
and brackets for list indexes (address.city, tags[0], friends[0].name), for
$SET, $ADD, $REMOVE and $DELETE. Before, such a key was sent as one
attribute name, so DynamoDB created a top-level attribute literally named
"address.city".

The expression gets one name per path part, with list indexes literal
(#a0[0].#a1). Each nested value is wrapped in the object its path
describes and converted by objectFromSchema, so type checks, enum,
validate, set modifiers and custom types (Date storage, sets) apply as for
a full write. A new nestedScope setting limits defaults to the written
path and stops an ancestor rule from seeing a partial object:
- default and required are checked on the nested attribute, not its parent
- a nested key the schema drops (undeclared, not covered by saveUnknown)
  is skipped, as a full write would drop it; an update that writes
  nothing else throws instead of sending only timestamps
- a parent with declared children and its own set or validate refuses
  the nested write; a record or schemaless parent runs its rule on the
  written entry
- a value no definition of a multi-type parent accepts throws instead of
  removing the stored value
- __proto__ and constructor path parts throw
- a malformed path throws (empty part, unclosed or non-numeric index, a
  name right after an index); checks use the parsed path, so every
  spelling of a path resolves to the same schema attribute

Combine sources and forced defaults now match only the top-level name of
each expression term, since a nested path part can share a name with a
top-level attribute.

1549 of 1554 branches covered (99.68%)

Branch coverage included in aggregate %.

148 of 150 new or added lines in 2 files covered. (98.67%)

2511 of 2513 relevant lines covered (99.92%)

76858.69 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
99.21
0.0% packages/dynamoose/lib/Model/index.ts
Jobs
ID Job ID Ran Files Coverage
1 38772476355.1 15 Oct 2026 04:52PM UTC 49
99.83
GitHub Action Run
Source Files on build 38772476355
  • Tree
  • List 49
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 1fa0b841 on github
  • Prev Build on upstream-pr/feat-update-nested-paths (#38771885179)
  • Next Build on upstream-pr/feat-update-nested-paths (#38772966373)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc