Skip to content

Commit 3d56c45

Browse files
committed
Using WeakMap to make componentMap field private.
1 parent 2940df5 commit 3d56c45

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

dist/react-json-schema.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
1212

1313
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1414

15+
var _componentMap = new WeakMap();
16+
1517
var ReactJsonSchema = function () {
1618
function ReactJsonSchema() {
1719
_classCallCheck(this, ReactJsonSchema);
18-
19-
this._componentMap = null;
2020
}
2121

2222
_createClass(ReactJsonSchema, [{
@@ -82,7 +82,7 @@ var ReactJsonSchema = function () {
8282
}, {
8383
key: 'resolveComponent',
8484
value: function resolveComponent(schema) {
85-
var _componentMap = this._componentMap;
85+
var _componentMap = this.getComponentMap();
8686
var Component = null;
8787
if (schema.hasOwnProperty('component')) {
8888
if (schema.component === Object(schema.component)) {
@@ -105,12 +105,12 @@ var ReactJsonSchema = function () {
105105
}, {
106106
key: 'getComponentMap',
107107
value: function getComponentMap() {
108-
return this._componentMap;
108+
return _componentMap.get(this);
109109
}
110110
}, {
111111
key: 'setComponentMap',
112112
value: function setComponentMap(componentMap) {
113-
this._componentMap = componentMap;
113+
_componentMap.set(this, componentMap);
114114
}
115115
}]);
116116

dist/react-json-schema.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/ReactJsonSchema.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { DOM, createElement } from 'react';
22

3-
export default class ReactJsonSchema {
3+
const _componentMap = new WeakMap();
44

5-
constructor(){
6-
this._componentMap = null;
7-
}
5+
export default class ReactJsonSchema {
86

97
parseSchema(schema) {
108
let element = null;
@@ -29,20 +27,20 @@ export default class ReactJsonSchema {
2927
}
3028

3129
createComponent(schema) {
32-
const { component, children, text, ...rest} = schema;
30+
const { component, children, text, ...rest } = schema;
3331
const Component = this.resolveComponent(schema);
3432
const Children = typeof text !== 'undefined' ? text : this.resolveComponentChildren(schema);
3533
return createElement(Component, rest, Children);
3634
}
3735

3836
resolveComponent(schema) {
39-
const _componentMap = this._componentMap;
37+
const componentMap = this.getComponentMap();
4038
let Component = null;
4139
if (schema.hasOwnProperty('component')) {
4240
if (schema.component === Object(schema.component)) {
4341
Component = schema.component;
44-
} else if (_componentMap && _componentMap[schema.component]) {
45-
Component = _componentMap[schema.component];
42+
} else if (componentMap && componentMap[schema.component]) {
43+
Component = componentMap[schema.component];
4644
} else if (DOM.hasOwnProperty(schema.component)) {
4745
Component = schema.component;
4846
}
@@ -58,10 +56,10 @@ export default class ReactJsonSchema {
5856
}
5957

6058
getComponentMap() {
61-
return this._componentMap;
59+
return _componentMap.get(this);
6260
}
6361

6462
setComponentMap(componentMap) {
65-
this._componentMap = componentMap;
63+
_componentMap.set(this, componentMap);
6664
}
6765
}

0 commit comments

Comments
 (0)