Contents
🌳 SharedTree DDS Changes
Fix Tree.key and Tree.parent for Unhydrated nodes after edits (#24708)
In some cases, editing Unhydrated nodes could result in incorrect results being returned from Tree.key and Tree.parent. This has been fixed.
Change details
Commit: 8aa5c23
Affected packages:
- @fluidframework/tree
- fluid-framework
Name collisions from structurally named schema now error (#24707)
It is legal to have multiple TreeNodeSchema with the same name so long as they are not used together in the same tree. Using different schema with the same name when building otherwise identical structurally named in the same SchemaFactory is not valid, however. Previously doing this would not error, and instead return the first structurally named schema with that name. Now this case throws an informative error:
const factory = new SchemaFactory(undefined);
class Child1 extends factory.object("Child", {}) {}
class Child2 extends factory.object("Child", {}) {}
const a = factory.map(Child1);
// Throws a UsageError with the message:
// "Structurally named schema collision: two schema named "Array<["Child"]>" were defined with different input schema."
const b = factory.array(Child2);
Change details
Commit: a343f04
Affected packages:
- @fluidframework/tree
- fluid-framework
Defaulted identifier fields on unhydrated nodes are now enumerable (#24739)
Previously, there was a special case for defaulted identifier fields on unhydrated nodes where they were not enumerable. This special case has been removed: they are now enumerable independent of hydration status and defaulting.
Change details
Commit: 3a5d0ac
Affected packages:
- @fluidframework/tree
- fluid-framework
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!