Skip to content

Commit 3be826c

Browse files
authored
fix issue with set api (#11915)
* fix issue with set api * remove test file * add test coverage and update api contract
1 parent e035a5c commit 3be826c

File tree

4 files changed

+15
-1
lines changed

4 files changed

+15
-1
lines changed

reports/api-extractor.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,9 @@ export type ResolverSuccess<TFieldValues extends FieldValues = FieldValues> = {
531531
errors: {};
532532
};
533533

534+
// @public (undocumented)
535+
export const set: (object: FieldValues, path: string, value?: unknown) => FieldValues | undefined;
536+
534537
// @public (undocumented)
535538
export type SetFieldValue<TFieldValues extends FieldValues> = FieldValue<TFieldValues>;
536539

src/__tests__/utils/set.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,9 @@ describe('set', () => {
5757
},
5858
});
5959
});
60+
61+
it('should not populate prototype', () => {
62+
set({}, '__proto__[test2]', '456');
63+
expect(Object.prototype).toEqual({});
64+
});
6065
});

src/utils/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
import get from './get';
2+
import set from './set';
23

3-
export { get };
4+
export { get, set };

src/utils/set.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ export default (object: FieldValues, path: string, value?: unknown) => {
2323
? []
2424
: {};
2525
}
26+
27+
if (key === '__proto__') {
28+
return;
29+
}
30+
2631
object[key] = newValue;
2732
object = object[key];
2833
}

0 commit comments

Comments
 (0)