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

MONEI / dynamoose / 38902333962
100%
main: 99%

Build:
Build:
LAST BUILD BRANCH: docs/upstream-prs
DEFAULT BRANCH: main
Ran 16 Oct 2026 12:42PM 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

16 Oct 2026 12:39PM UTC coverage: 99.902% (+0.03%) from 99.877%
38902333962

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,
  and required also on what a written object holds below it
- 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.

1565 of 1568 branches covered (99.81%)

Branch coverage included in aggregate %.

166 of 167 new or added lines in 2 files covered. (99.4%)

2529 of 2530 relevant lines covered (99.96%)

77312.93 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
99.56
0.12% packages/dynamoose/lib/Model/index.ts
Jobs
ID Job ID Ran Files Coverage
1 38902333962.1 16 Oct 2026 12:42PM UTC 49
99.9
GitHub Action Run
Source Files on build 38902333962
  • 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
  • 724a1ca4 on github
  • Prev Build on upstream-pr/feat-update-nested-paths (#38800922246)
  • Next Build on upstream-pr/feat-update-nested-paths (#38905040194)
  • 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